Zabbix自动化监控——监控MySQL
前面我们已经把监控端和被监控端都安装了zabbix3.4,今天我们进行个实战,监控数据库MySQL的运行。
被监控端安装MySQL5.7,前面的文章中有教程,小伙伴们找一下。
1、设置授权用户和密码,这样zabbix-server才能用这个身份登录数据库监听数据。
[root@zabbix-agent-none1 ~]# vim /etc/my.cnf
在末行插入以下内容:
[client]
default-character-set=utf8
host=localhost
user='zabbix'
password='Yuanwei@123'
2、进入数据库授权用户和密码
[root@zabbix-agent-none1 ~]# mysql -uroot -p
Enter password: //密码为Yuanwei@123
mysql> grant all privileges on *.* to zabbix@localhost identified by 'Yuanwei@123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Bye
3、定义MySQL监控变量
[root@zabbix-agent-none1 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
末行添加如下内容:
#监控MySQL运行状态
UserParameter=mysql.ping,/usr/bin/mysqladmin ping|grep alive|wc -l
重启zabbix-agent
[root@zabbix-agent-none1 ~]# systemctl restart zabbix-agent
4、在被监控端上进行定义参数的测试
[root@zabbix-server ~]# zabbix_get -s 10.8.165.27 -p 10050 -k "mysql.ping"
1 //测试是否能取到数值
5、来到监控端的WEB界面,创建模板
6、在刚添加的模板中添加监控项
7、将模板关联到被监控端的主机上
8、点击检测中,最新数据,应用被监控的主机
9、此时监测的数据已经出现了。
10、试着将其他的监控参数定义好,并实行监控
#监控MySQL版本
UserParameter=mysql.version,mysql -V | cut -f6 -d" " | sed 's/,//'
#监控MySQL进程数
UserParameter=mysql.process,ps -ef|grep "mysql"|grep -v "grep"|wc -l
#监控MySQL运行状态
UserParameter=mysql.ping,/usr/bin/mysqladmin ping|grep alive|wc -l
#监控MySQL运行时间
UserParameter=mysql.uptime,/usr/bin/mysqladmin extended-status|grep Uptime|head -1|cut -f3 -d"|"
#监控MySQL的连接数
UserParameter=mysql.Threads.connected,/usr/bin/mysqladmin extended-status|grep Threads_connected|head -1|cut -f3 -d"|"
#监控MySQL活动状态的连接数
UserParameter=mysql.Threads.running,/usr/bin/mysqladmin extended-status|grep Threads_running|head -1|cut -f3 -d"|"
#监控MySQL客户端异常中断的数值
UserParameter=mysql.aborted.clients,/usr/bin/mysqladmin extended-status|grep Aborted_clients|head -1|cut -f3 -d"|"
#监控MySQL主从状态
UserParameter=mysql.Slave.status,/usr/bin/mysqladmin extended-status|grep Slave_runnin | grep -o ON |wc -l
#监控MySQL每秒钟获得的查询量
UserParameter=mysql.questions,/usr/bin/mysqladmin extended-status | grep Questions | head -1 | cut -f3 -d"|"
#监控MySQL从数据文件里取数据的次数
UserParameter=mysql.read.rnd,/usr/bin/mysqladmin extended-status|grep Handler_read_rnd_next|head -1 | cut -f3 -d"|"
#监控MySQL往数据文件里写数据的次数
UserParameter=mysql.write.rnd,/usr/bin/mysqladmin extended-status|grep Handler_write|head -1|cut -f3 -d"|"
#监控MySQL内部COMMIT命令的个数
UserParameter=mysql.commit,/usr/bin/mysqladmin extended-status|grep Handler_commit| head -1 | cut -f3 -d"|"
#监控MySQL请求从一张表中删除行的次数。
UserParameter=mysql.delete,/usr/bin/mysqladmin extended-status|grep Handler_delete| head -1 | cut -f3 -d"|"
#监控MySQL表缓存没有命中的数量
UserParameter=mysql.Opened.tables,/usr/bin/mysqladmin extended-status|grep Opened_tables| head -1 | cut -f3 -d"|"
#监控MySQL没有使用索引查询数量
UserParameter=mysql.slowqueries,/usr/bin/mysqladmin extended-status|grep Slow_queries|cut -f3 -d"|"
#监控MySQL执行全表搜索查询的数量
UserParameter=mysql.select.scan,/usr/bin/mysqladmin extended-status|grep Select_scan|cut -f3 -d"|"
11、达到如下效果即可
各位小伙伴们,今天的学习就分享到这里咯,你学废了吗?欢迎大家留言评论呦。