agent端
$ vim /usr/local/zabbix/etc/zabbix_agentd.conf
# 添加自定义的目录
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
$ cp /usr/local/src/zabbix-3.4.15/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
$ cd /usr/local/zabbix/etc/
# mysql会去读取里面的配置,这样可以不用在配置中写上用户名和密码
$ vim .my.cnf
[mysql]
host=localhost
user=zabbix
password=123456789
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=123456789
socket=/var/lib/mysql/mysql.sock
socket可以通过find / -name mysql.sock去找 账号密码需要数据库授权
$ sed -i ‘s@/var/lib/zabbix@/usr/local/zabbix/etc@g‘ zabbix_agentd.conf.d/userparameter_mysql.conf
HOME目录为刚才
.mf.cnf的路径
$ vim zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
$ service zabbix_agentd restart
server端测试
$ /usr/local/zabbix/bin/zabbix_get -s IP -p 10050 -k mysql.ping 1
| Name | key | comment |
|---|---|---|
| MySQL bytes sent per second | mysql.status[Bytes_sent] | 每间隔时间发给所有客户端的字节数 |
| MySQL delete operations per second | mysql.status[Com_delete] | 执行delete操作的数量 |
| MySQL bytes received per second | mysql.status[Bytes_received] | 每间隔从所有客户端接收到的字节数 |
| MySQL queries per second | mysql.status[Questions] | 已经发送给服务器的查询 |
| MySQL slow queries | mysql.status[Slow_queries] | 查询时间操作 long_query_time 秒的查询个数 |
| MySQL begin operations per second | mysql.status[Com_begin] | 开启事务的次数 |
| MySQL commit operations per second | mysql.status[Com_commit] | 提交事务的次数 |
| MySQL insert operations per second | mysql.status[Com_insert] | 执行insert操作的数量 |
| MySQL uptime | mysql.status[Uptime] | 服务器已经运行的时间 |
| MySQL status | mysql.ping | mysql状态 |
| MySQL select operations per second | mysql.status[Com_select] | 执行select操作的数量 |
| MySQL update operations per second | mysql.status[Com_update] | 执行update操作的数量 |
| MySQL rollback operations per second | mysql.status[Com_rollback] | 回滚事务的次数 |
| MySQL version | mysql.version | mysql版本 |
在自带的监控MySQL的配置文件中,是没有监控MySQL主从状态的,所以需要自己去修改配置。
自定义监控项目
$ vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_status.conf
# Format: UserParameter=<key>,<shell command>
UserParameter=mysql.status.sql,,mysql -uzabbix -p‘12345678‘ -e "show slave status\G" 2>/dev/null | grep Slave_IO_Running | awk -F":" ‘{print $NF}‘ | grep Yes | wc -l
UserParameter=mysql.status.io,mysql -uzabbix -p‘12345678‘ -e "show slave status\G" 2>/dev/null | grep Slave_SQL_Running: | awk -F":" ‘{print $NF}‘ | grep Yes | wc -l
$ service zabbix_agentd restart
检测效果(server端操作)
$ /usr/local/zabbix/bin/zabbix_get -s 172.16.142.141 -k mysql.status.sql
1


设置触发器
多个表达式之间关系,如果是或 or 如果是和 and

根据上述的,我们可以更改我们的自定义,不在我们的配置中写上密码,增加安全性
HOME=/usr/local/zabbix/etc mysql -e "show slave status\G" 2>/dev/null | grep Slave_SQL_Running: | awk -F":" ‘{print $NF}‘ | grep Yes | wc -l
HOME=/usr/local/zabbix/etc mysql -e "show slave status\G" 2>/dev/null | grep Slave_SQL_Running: | awk -F":" ‘{print $NF}‘ | grep Yes | wc -l
原文:https://www.cnblogs.com/xll970105/p/11656185.html