Zabbix 通過 Agent 主動采集 MySQL 狀態變量,繪製性能趨勢圖。本文覆蓋 Zabbix Server/Agent 編譯安裝、數據庫初始化、MySQL 監控腳本編寫、自定義 Key 配置、模板綁定全流程。
yum -y install mysql-devel libcurl-devel net-snmp-develgroupadd zabbix; useradd -g zabbix zabbix,CREATE DATABASE zabbix CHARSET utf8; GRANT ALL ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl && make installmysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql 等三個文件。/var/www/html/zabbix)。核心狀態變量:Com_update、Com_select、Com_insert、Com_delete、Com_rollback、Bytes_received、Bytes_sent、Slow_queries 等。
編寫 Shell 腳本 checkmysqlperformance.sh,參數化獲取單個指標:
#!/bin/bash
MYSQL_DIR=/usr/local/mysql
MYSQLADMIN=${MYSQL_DIR}/bin/mysqladmin
MYSQL_SOCK="/tmp/mysql.sock"
MYSQL_USER=root
MYSQL_PWD=root
case $1 in
Com_select) ${MYSQLADMIN} -u$MYSQL_USER -p$MYSQL_PWD -S $MYSQL_SOCK extended-status | grep -w "Com_select" | cut -d"|" -f3 ;;
Slow_queries) ${MYSQLADMIN} -u$MYSQL_USER -p$MYSQL_PWD -S $MYSQL_SOCK status | cut -f5 -d":" | cut -f1 -d"O" ;;
... 其他指標類似 ...
esac
啟用 UnsafeUserParameters=1,添加:
UserParameter=mysql.status[*],/usr/local/zabbix_agent/bin/checkmysqlperformance.sh $1 $2
重啟 Agent,驗證:zabbix_get -s 127.0.0.1 -k mysql.status[Com_update] 返回數值。
使用自帶「Template App MySQL」模板,綁定到目標主機,自動創建監控項、觸發器、圖表。
