1.在被監控主機安裝好MySQL
相關步驟省略。
2.創建監控所需要的MySQL賬戶(MySQL服務器端)
MariaDB [(none)]>grant usage on *.* to zabbix@192.168.10.100 identified by '123456'; MariaDB [(none)]>flush privileges;
3.修改MySQL服務器主機配置文件(my.cnf)
[root@ansible-control etc]# vim my.cnf
[mysql] host=192.168.10.100 #IP地址為MySQL服務器端地址 user=zabbix password=123456 [mysqladmin] host=192.168.10.100 user=zabbix password=123456
4.zabbix服務器端驗證zabbix代理服務端是否正常返回數據
如果可以正常返回數字信息,則說明服務器端可以正確獲取客戶端信息。
[root@zabbix-server-center /]# zabbix_get -s 192.168.10.100 -p 10050 -k "mysql.status[Uptime]" 11027
5.添加MySQL監控腳本
注意監控腳本都必須放在/etc/zabbix/zabbix_agentd.d目錄(存放配置文件的目錄)中,因為在zabbix-agent配置文件中已經規定了,除非人為更改:
【監控腳本】
[root@ansible-control zabbix_agentd.d]# cat userparameter_mysql.conf # 連接數 UserParameter=mysql.max_connections,echo "show variables where Variable_name='max_connections';" | mysql -N | awk '{print $2}' UserParameter=mysql.current_connections,echo "show global status where Variable_name='Threads_connected';" | mysql -N | awk '{print $2}' # 緩沖池 UserParameter=mysql.buffer_pool_size,echo "show variables where Variable_name='innodb_buffer_pool_size';" | mysql -N |awk '{printf "%.2f",$2/1024/1024/1024}' UserParameter=mysql.buffer_pool_usage_percent,echo "show global status where Variable_name='Innodb_buffer_pool_pages_free' or Variable_name='Innodb_buffer_pool_pages_total';" | mysql -N | awk '{a[NR]=$2}END{printf "%.1f",100-((a[1]/a[2])*100)}' # 增刪改查 UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -N | awk '{print $$2}' # 實例狀態 UserParameter=mysql.ping,mysqladmin ping | grep -c alive UserParameter=mysql.version,mysql -V
6.重啟zabbix-agent客戶端
[root@ansible-control zabbix]# systemctl restart zabbix-agent.service
7.使用系統自帶Template DB MySQL模板進行監控
8.查看監控圖形
(1)MySQL bandwidth
(2)MySQL operations
9.導入預制模板進行監控