1、 设置mysql 环境变量
a) echo “PATH=/home/mysql-8.0.25/bin:$PATH” >> /etc/profile
b) source /etc/profile
2、 设置mysql用户密码等配置
cat > /etc/zabbix/.my.cnf <<EOF
[mysql]
host=localhost
user=xxx
password=xxx
socket=/home/mysql-8.0.25/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=zabbix
socket=/home/mysql-8.0.25/mysql.sock
EOF
3、 复制mysql parameter 配置文件并修改
a) cp /usr/share/doc/zabbix-agent-5.0.12/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d
b) 修改userparameter配置文件HOME=/etc/zabbix/ 填的是.my.cnf的配置文件的路径;另外补齐command参数中mysql 和mysqladmin的全路径
sed -i 's@, mysqladmin@,HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/mysqladmin@g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
sed -i 's@, mysql@,HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/mysql@g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
附上zabbix agent的配置信息:
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UserParameter=mysql.ping[*],HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*],HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*],HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*],HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*],HOME=/etc/zabbix/ /home/mysql-8.0.25/bin/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/ /home/mysql-8.0.25/bin/mysql -h"$1" -P"$2" -sNX -e "show slave status"
4、 修改zabbix-agent.conf,设置UnsafeUserParameters=1 启用特殊字符
5、 重启zabbix-agent
配置完配置信息,web页面使用模板
Template DB MySQL by Zabbix agent
释疑:zabbix监控mysql模板中,取各个变量值的时候,在监控项-进程中进行过滤,无需再userparameter中添加过多选项