File manager - Edit - /usr/lib64/nagios/plugins/check_a2_mysql-replication.sh
Back
#!/bin/bash # # Icinga plugin for checking MySQL replication status # # Author: Refactored for Icinga # MYSQL_USER="root" MYSQL_PASS="" MYSQL_SOCKET="/var/lib/mysql/mysql.sock" # Performance thresholds DELAY_OK=600 DELAY_WARNING=43200 MYSQL_STATUS=$(mysql --defaults-extra-file="/root/.my.cnf" -u$MYSQL_USER -S $MYSQL_SOCKET -e "SHOW SLAVE STATUS\G" | grep -E 'Slave_.*_Running|Seconds_Behind_Master' | sed 's/^ *//') IO_RUNNING=$(echo "$MYSQL_STATUS" | grep "Slave_IO_Running:" | awk '{print $2}') SQL_RUNNING=$(echo "$MYSQL_STATUS" | grep "Slave_SQL_Running:" | awk '{print $2}') DELAY=$(echo "$MYSQL_STATUS" | grep "Seconds_Behind_Master:" | awk '{print $2}') EXIT_CODE=0 if [[ "$IO_RUNNING" != "Yes" ]]; then OUTPUT="CRITICAL - Replication IO Stopped" EXIT_CODE=2 elif [[ "$SQL_RUNNING" != "Yes" ]]; then OUTPUT="CRITICAL - Replication SQL Stopped" EXIT_CODE=2 elif [[ "$DELAY" == "NULL" ]]; then OUTPUT="CRITICAL - Replication delay is NULL" EXIT_CODE=2 elif (( DELAY < DELAY_OK )); then OUTPUT="OK - MySQL Replication is running with delay $DELAY seconds" elif (( DELAY < DELAY_WARNING )); then OUTPUT="WARNING - Replication delay $DELAY seconds" EXIT_CODE=1 else OUTPUT="CRITICAL - Replication delay $DELAY seconds" EXIT_CODE=2 fi # Print output for Icinga echo "$OUTPUT | delay=$DELAY;$DELAY_OK;$DELAY_WARNING;;" exit $EXIT_CODE
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings