Zabbix监控MySQL
-
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
MySQL监控项的含义解释
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