標籤:
本文主要介紹zabbix監控mysql的配置,包含使用zabbix內建模板監控mysql相關資訊及自訂key監控mysql同步情況。同時介紹了觸發器的建立及zabbix通過郵件方式警示配置。
一、配置內建模板監控mysql
1.提供設定檔範本
檔案位置在源碼包/usr/local/src/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf
| 1 |
#cp/usr/local/src/zabbix-3.0.4/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d |
2.修改模板檔案
| 1 |
#sed -i ‘[email protected]/var/lib/[email protected]/usr/local/zabbix/[email protected]‘ /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf |
修改後的檔案
UserParameter=mysql.status[*],echo "show global status where Variable_name=‘$1‘;" | HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N | awk ‘{print $$2}‘
UserParameter=mysql.size[*],bash -c ‘echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql -N‘
UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysqladmin ping | grep -c alive
UserParameter=mysql.version,/usr/local/mysql/bin/mysql -V
3.提供agent連資料庫的檔案
| 1234567891011 |
#vi /usr/local/zabbix/etc/.my.cnf[mysql]host=localhostuser=zabbixagentpassword=123456socket=/tmp/mysql.sock[mysqladmin]host=localhostuser=zabbixagentpassword=123456socket=/tmp/mysql.sock |
4.建立授權帳號
| 12 |
mysql> GRANT USAGE,PROCESS,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO ‘zabbixagent‘@‘localhost‘ IDENTIFIED BY ‘123456‘;mysql> flush privileges; |
5.修改zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
重啟服務
6.在web介面關聯mysql模板
7.最終效果
二、自訂key監控slave
1.提供監控slave的設定檔
#cat/usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_slave.conf
UserParameter=mysql.slave.Seconds_Behind_Master,echo "show slave status\G"| HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql |grep "Seconds_Behind_Master"|awk ‘{print $2}‘
UserParameter=mysql.slave.Slave_IO_Running,echo "show slave status\G"| HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql |grep "Slave_IO_Running"|awk ‘{print $2}‘
UserParameter=mysql.slave.Slave_SQL_Running,echo "show slave status\G"|HOME=/usr/local/zabbix/etc /usr/local/mysql/bin/mysql |grep "\<Slave_SQL_Running\>"|awk ‘{print $2}‘
2.重啟agent服務
# service zabbix_agentd restart
3.命令測試key擷取的值
# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.16 -k "mysql.slave.Seconds_Behind_Master"
# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.16 -k "mysql.slave.Slave_IO_Running"
# /usr/local/zabbix/bin/zabbix_get -s 192.168.1.16 -k "mysql.slave.Slave_SQL_Running"
以上命令均返回正常值說明自訂key成功
4.在web介面配置監控項
建立slave延遲items
建立slave io線程items
建立slave sql線程items
三、主從同步延遲警示配置
1.定義觸發器
建立主從延遲觸發器
2.定義action
3.定義郵件發送使用者
修改警示媒介類型的郵件伺服器地址
使用者關聯到警示媒介並設定郵件帳號
查看郵件
郵件具體內容
四、主從同步狀態警示配置
1.建立主從同步狀態觸發器
定義io thread狀態
定義sql thread狀態
2.測試
在slave上分別停止io線程和sql線程
類比停止io線程
mysql> stop slave io_thread;
同時警示郵件發出
恢複io線程
mysql> start slave io_thread;
故障恢複通知訊息
類比停止sql線程
mysql> stop slave sql_thread;
同時警示郵件發出
恢複sql線程
mysql> start slave sql_thread;
故障恢複通知訊息
http://hnr520.blog.51cto.com/4484939/1852838
Zabbix監控mysql配置及故障警示配置