1. 關聯mysql模版
步驟:配置 > 主機 > 點擊主機的主機 > 模版
點擊那個模版進去看看模版的描述
Requirements for template operation:
1.Install Zabbix agent and MySQL client.
2.Copy Template_DB_MySQL.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don't forget restart zabbix-agent.
3.Create MySQL user for monitoring. For example:
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
For more information read the MYSQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html , please.
4.Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. For example:
[client]
user=zbx_monitor
password=<password>
2. 設置模版mysql端
因為機器上(Zabbix server)找不到Template_DB_MySQL.conf,所以查找zabbix自帶的模板userparameter_mysql.conf
1)查看zabbix中的mysql監控模板,find / -name userparameter_mysql.conf
[root@ ~]# find / -name userparameter_mysql.conf /usr/share/doc/zabbix-agent-5.0.4/userparameter_mysql.conf
打開看到這個文件的第一句話
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
2)拷貝到zabbix_agentd.conf.d/目錄下
cp /usr/share/doc/zabbix-agent-5.0.4/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
3)測試模版是否有效
# zabbix_agentd -t mysql.ping -c /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
mysql.ping [t|mysqladmin: connect to server at '-P' failed error: 'Unknown MySQL server host '-P' (2)'
4) 模版修改
# vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
把原來的
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
改為
UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], HOME=/etc/zabbix mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
其實只多了一個 HOME=/etc/zabbix (要相信原生的模版寫法)
5)mysql下新增一個監控用戶zbx_monitor
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '123456';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
6)/etc/zabbix下新增一個文件 .my.cnf (隱藏文件查看需要 ls -al)
[mysql] user=zbx_monitor password=123456 [mysqladmin] user=zbx_monitor password=123456
7)重啟動zabbix_agentd
# systemctl restart zabbix-agent
這一步結束后,要等,等5分鍾,10分鍾的,不要着急。
8)看 監測 > 最新數據
點右邊的“圖形”可以看圖表