一直在研究使用zabbix監控mysql數據庫,由於zabbix官方的模板支持監控mysql,但是直接使用自帶的模板不可用的,需要做一些設置才能夠使用。如果你對mysql的監控需求比較簡單,那麼直接使用zabbix自帶的模板即可,如果你的監控需求較高那麼將自己編寫相關的腳本來實現。
以下乃使用zabbix自帶的模板監控mysql步驟:
環境如下:CentOS release 6.5 zabbix-2.2.9 mysql-5.1.73
1. 在zabbix的web訪問頁面中爲主機添加mysql監控模板(默認的MYSQL template name爲:Template App MySQL)。
2. 在abbix的客戶端配置文件(zabbix_agentd.cnf)中添加如下信息:(以下內容制定zabbix_agentd獲取mysql數據)
1. UnsafeUserParameters=1 #啓用自定義KEY 2. UserParameter=mysql.size[*],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 mysql -N 3. UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc mysqladmin ping | grep -c alive 4. UserParameter=mysql.version,mysql -V 5. UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/zabbix/etc mysql -N | awk '{print $$2}'
備註:以上代碼中的HOME=/usr/local/zabbix/etc/爲制定zabbix_agentd訪問數據庫的信息,不可出錯
3. 配置mysql數據庫創建一個用戶來獲取監控mysql的相關數據:
GRANT USAGE ON *.* TO 'mysql_data'@'localhost' IDENTIFIED BY 'p@ssw0rd'; Query OK, 0 rows affected (0.00 sec) flush privileges; Query OK, 0 rows affected (0.00 sec)
4. 添加完賬戶之後新建/usr/local/zabbix/etc/.my.cnf來提供zabbix agentd訪問數據庫,內容如下
# vim /usr/local/zabbix/etc/.my.cnf [mysql] host = localhost user = mysql_data password = p@ssw0rd socket = /var/lib/mysql/mysql.sock [mysqladmin] host = localhost user = mysql_data password = p@ssw0rd socket = /var/lib/mysql/mysql.sock
5. 修改完如上信息後即重啓zabbix_agentd即可。
6. 以上信息修改後,即可在監控頁面查看的mysql的監控信息圖形。
如何安裝zabbix及添加模板鏈接下一篇內容。