This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
postgresql_replication_monitor [2011/07/12 16:22] k2patel |
postgresql_replication_monitor [2020/08/10 02:35] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
+ | # --------------- | ||
+ | #< By k2patel > | ||
+ | # ---------------- | ||
+ | # \ ^__^ | ||
+ | # \ (oo)\_______ | ||
+ | # (__)\ )\/\ | ||
+ | # ||----w | | ||
+ | # || || | ||
+ | # | ||
############################# | ############################# | ||
# Requirement Specification | # Requirement Specification | ||
Line 34: | Line 43: | ||
## Psql / bc Location | ## Psql / bc Location | ||
- | export psql=/usr/local/pg-9.0.3/bin/psql | + | export psql=/usr/pgsql-9.0/bin/psql |
export bc=/usr/bin/bc | export bc=/usr/bin/bc | ||
## Delay Limit | ## Delay Limit | ||
- | export dlylmt=100000 | + | export dlylmt=1000000 |
+ | export wrnlmt=100000 | ||
+ | |||
+ | |||
+ | ########################### | ||
+ | ## Customization End here | ||
+ | ########################### | ||
## Results in codes | ## Results in codes | ||
- | prime_num=$($psql -t -c "SELECT pg_current_xlog_location()" -h$p_host -p$p_port) | + | prime_num=$($psql -U postgres -t -c "SELECT pg_current_xlog_location()" -h$p_host -p$p_port) |
- | sec_num=$($psql -t -c "select pg_last_xlog_receive_location()") | + | sec_num=$($psql -U postgres -t -c "select pg_last_xlog_receive_location()" -h$s_host -p$s_port) |
- | thr_num=$($psql -t -c "select pg_last_xlog_replay_location()") | + | thr_num=$($psql -U postgres -t -c "select pg_last_xlog_replay_location()" -h$s_host -p$s_port) |
pr_num=$(echo $prime_num | awk -F / '{print $2}') | pr_num=$(echo $prime_num | awk -F / '{print $2}') | ||
sr_num=$(echo $sec_num | awk -F / '{print $2}') | sr_num=$(echo $sec_num | awk -F / '{print $2}') | ||
tr_num=$(echo $thr_num | awk -F / '{print $2}') | tr_num=$(echo $thr_num | awk -F / '{print $2}') | ||
+ | #sr_num=7AE0EE48 | ||
pr_int_num=$(echo "ibase=16; $pr_num" | $bc) | pr_int_num=$(echo "ibase=16; $pr_num" | $bc) | ||
Line 54: | Line 70: | ||
tr_int_num=$(echo "ibase=16; $tr_num" | $bc) | tr_int_num=$(echo "ibase=16; $tr_num" | $bc) | ||
- | echo "Prime $pr_int_num" | ||
- | echo "Secon $sr_int_num" | ||
- | echo "thrir $tr_int_num" | ||
- | ########################### | + | #echo "Prime $pr_int_num" |
- | ## Customization End here | + | #echo "Secon $sr_int_num" |
- | ########################### | + | #echo "thrir $tr_int_num" |
+ | if [[ $pr_int_num -eq '' || $sr_int_num -eq '' || $tr_int_num -eq '' ]]; then | ||
+ | echo "Stream Has no Value to compare : CRITICAL" | ||
+ | exit $STATE_CRITICAL | ||
+ | else | ||
if [[ $pr_int_num -eq $sr_int_num && $pr_int_num -eq $tr_int_num && $sr_int_num -eq $tr_int_num ]] ; then | if [[ $pr_int_num -eq $sr_int_num && $pr_int_num -eq $tr_int_num && $sr_int_num -eq $tr_int_num ]] ; then | ||
echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : OK" | echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : OK" | ||
Line 69: | Line 86: | ||
if [[ $pr_int_num -eq $sr_int_num ]] ; then | if [[ $pr_int_num -eq $sr_int_num ]] ; then | ||
if [[ $pr_int_num -ne $tr_int_num ]] ; then | if [[ $pr_int_num -ne $tr_int_num ]] ; then | ||
+ | if [ $(bc <<< $pr_int_num-$sr_int_num) -lt $wrnlmt ]; then | ||
+ | echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : BEHIND : OK" | ||
+ | exit $STATE_OK | ||
+ | else | ||
echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : WARNING" | echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : WARNING" | ||
exit $STATE_WARNING | exit $STATE_WARNING | ||
+ | fi | ||
fi | fi | ||
else | else | ||
- | if [[ $(bc <<< $pr_int_num-$sr_int_num) -gt $dlylmt ]]; then | + | # echo $(bc <<< $pr_int_num-$sr_int_num) |
+ | if [ $(bc <<< $pr_int_num-$sr_int_num) -gt $dlylmt ]; then | ||
echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : CRITICAL" | echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : CRITICAL" | ||
exit $STATE_CRITICAL | exit $STATE_CRITICAL | ||
+ | else | ||
+ | if [ $(bc <<< $pr_int_num-$sr_int_num) -lt $wrnlmt ]; then | ||
+ | echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : BEHIND : OK" | ||
+ | exit $STATE_OK | ||
else | else | ||
echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : WARNING" | echo "Stream: Primary: $pr_int_num Secondary: $sr_int_num Import: $tr_int_num : WARNING" | ||
+ | #echo "pgprod2.mcfina.com;$pr_int_num;$sr_int_num;$tr_int_num;1;WARNING" | ||
+ | #echo "WARNING - Stream is behind" | ||
exit $STATE_WARNING | exit $STATE_WARNING | ||
+ | fi | ||
fi | fi | ||
fi | fi | ||
Line 84: | Line 114: | ||
exit $STATE_UNKNOWN | exit $STATE_UNKNOWN | ||
fi | fi | ||
+ | |||
+ | fi | ||
+ | |||
</code> | </code> |