zabbix監控MySQL服務狀態
阿新 • • 發佈:2018-12-27
Mysql模板使用
在zabbix_agent配置檔案中加入監控配置
vim etc/zabbix_agentd.conf
...
UserParameter=mysql.version,mysqladmin -P3366 -hlocalhost version | grep mysqladmin
UserParameter=mysql.ping,mysqladmin -P3366 -hlocalhost ping | grep -c alive
UserParameter=mysql.status[*],/usr/local/zabbix/sh/chk_mysql.sh $1
在zabbix-web介面可以看到鍵值的設定 mysql.status[Com_begin]
因為在指令碼中出現數據庫密碼會有警告,所以我們直接將引數寫入mysql配置檔案my.cnf
中
[mysqladmin]
user=zabbix
password=zabbix
chk_mysql.sh
指令碼如下:
#!/bin/bash MYSQL_HOST='localhost' MYSQL_PORT='3366' MYSQL_CONN="/usr/local/mysql/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}" if [ $# -ne "1" ];then echo "error error!" fi case $1 in Uptime) result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` #mysql啟動時間累加,mysql工作時間 echo $result ;; Com_update) result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` #執行update 操作的次數 echo $result ;; Slow_queries) result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` #慢查詢的次數 echo $result ;; Com_select) result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` #執行select 操作的次數,一次查詢只累加1 echo $result ;; Com_rollback) result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` #事務回滾情況,對於回滾操作非常頻繁的資料庫,可能意味著應用編寫存在問題 echo $result ;; Questions) result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` #初始的查詢操作的總數 echo $result ;; Com_insert) result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` #執行insert 操作的次數,對於批量插入的insert 操作,只累加一次; echo $result ;; Com_delete) result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` #執行delete 操作的次數 echo $result ;; Com_commit) result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` #事務提交次數 echo $result ;; Bytes_sent) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` #請求流量頻寬,傳送 echo $result ;; Bytes_received) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` #響應流量頻寬,接收 echo $result ;; Com_begin) result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` echo $result ;; Innodb_rows_read) result=`${MYSQL_CONN} extended-status |grep -w "Innodb_rows_read"|cut -d"|" -f3` #Innodb中select 查詢返回的行數 echo $result ;; Innodb_rows_inserted) result=`${MYSQL_CONN} extended-status |grep -w "Innodb_rows_inserted"|cut -d"|" -f3` #執行Insert 操作插入的行數 echo $result ;; Innodb_rows_updated) result=`${MYSQL_CONN} extended-status |grep -w "Innodb_rows_updated"|cut -d"|" -f3` #執行update 操作更新的行數 echo $result ;; Innodb_rows_deleted) result=`${MYSQL_CONN} extended-status |grep -w "Innodb_rows_deleted"|cut -d"|" -f3` #執行update 操作更新的行數 echo $result ;; Qcache_free_memory) result=`${MYSQL_CONN} extended-status |grep -w "Qcache_free_memory"|cut -d"|" -f3` #快取中的空閒記憶體 echo $result ;; Qcache_hits) result=`${MYSQL_CONN} extended-status |grep -w "Qcache_hits"|cut -d"|" -f3` #每次查詢在快取中命中時就增大 echo $result ;; Qcache_inserts) result=`${MYSQL_CONN} extended-status |grep -w "Qcache_inserts"|cut -d"|" -f3` #每次插入一個查詢時就增大。命中次數除以插入次數就是不中比率 echo $result ;; Threads_connected) result=`${MYSQL_CONN} extended-status |grep -w "Threads_connected"|cut -d"|" -f3` #當前連線數 echo $result ;; *) echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin||Innodb_rows_read|Innodb_rows_inserted|Innodb_rows_updated|Innodb_rows_deleted|Qcache_free_memory|Qcache_hits|Qcache_inserts|Threads_connected)" ;; esac