配置监控系统zabbix——监控MySQL

2022-10-24 14:09:18

配置 zabbix 监控 MySQL

和监控nginx一样,寻找合适的脚本,不过,脚本并不是那么容易就可以找得到的! 要么自己手动去写,要么自己找到的拿来修改,都是需要花费代价的!

zabbix3.0 server已自带mysql的模板了,只需配置好agent客户端,然后在web端给主机增加模板就行了。

Zabbix_agent客户端操作:

安装zabbix_agent,配置监控远程主机,有MySQL的客户端

https://blog.csdn.net/w1206507055/article/details/125261714?spm=1001.2014.3001.5502

mysql> grant all on *.* to zabbix@'localhost' identified by "123456";

mysql> flush privileges;

cp模版到/usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@mysql-01 ~]# cp /root/zabbix-4.2.6/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@mysql-01 ~]#vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/  #启用引用此目录文件

建立数据库和 zabbix 的连接信息

在zabbix_agent服务目录下创建.my.cnf连接文件

[root@mysql-01 ~]# vim /usr/local/zabbix/etc/.my.cnf

	#Zabbix Agent 
	[mysql] 
	host=localhost 
	user=zabbix 
	password=123456
	socket=/usr/local/mysql/mysql.sock
	[mysqladmin] 
	host=localhost
	user=zabbix
	password=123456
	socket=/usr/local/mysql/mysql.sock

然后查看 userparameter_mysql.conf 文件,看到类似 HOME=/var/lib/zabbix 的路径设置,把路径全都替换为 /usr/local/zabbix/etc/,也就是上面的.my.cnf文件所在的目录路径。

[root@mysql-01 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf

将HOME=/var/lib/zabbix 全部改成 HOME=/usr/local/zabbix/etc/

一共是3处要替换

:%s-/var/lib/zabbix-/usr/local/zabbix/etc/

重启zabbix_agentd

[root@mysql-01 ~]# systemctl restart zabbix_agentd

测试

接着在zabbix_server服务端进行命令行测试

[root@zabbix_server ~]# zabbix_get -s 192.168.10.6 -p 10050 -k "mysql.status[Uptime]"

sh: mysql: command not found

解决方法:

在userparameter_mysql.conf中关于mysql命令前面添加绝对路径,然后在重启zabbix_agentd服务。先which mysql 把路径添加到mysql前面

[root@zabbix_server ~]# zabbix_get -s 192.168.10.6 -p 10050 -k "mysql.status[Uptime]"

 如果出现类似这一串key的数字,就说明配置ok,服务端能监控到客户端的mysql数据了!
成功啦,之后在监控界面增加主机对应的MySQL模板就ok了。

模板应用主机:

登录zabbix监控界面,在“配置”-“模板”里可以看到自带的mysql监控模板

在相应主机监控配置里添加mysql的监控模版(zabbix自带的)即可。

 下面是mysql监控项的效果图:

【1】监控mysql的带宽:在zabbix前端可以实时查看mysql发送接收的字节数。其中bytes received表示从所有客户端接收到的字节数,bytes sent表示发送给所有客户端的字节数。

 【2】监控mysql的操作状态:在zabbix前端可以实时查看各种SQL语句每秒钟的操作次数。

Zabbix邮件报警配置:

Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。

在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件

首先安装mailx组件并配置好能够通过第三方邮箱发送邮件

安装mailx

[root@zabbix_server ~]# yum -y install mailx

编辑mailx的配置文件

[root@zabbix_server ~]#vim /etc/mail.rc

在最末尾添加如下信息

set from=xxxxx@qq.com   #写个邮箱

set smtp=smtp.qq.com

set smtp-auth-user=xxxxxx@qq.com

set smtp-auth-password=xxxxx #你的密码 注意:此为qq邮箱设置的客户端授权码,授权码是用于登录第三方邮件客户端的专用密码。 #不知道授权码百度一下

set smtp-auth=login

 不管你使用的是163/126邮箱还是qq邮箱,你都必须开通pop3服务,而且163/126/qq邮箱还要求使用第三方客户端发送邮件时必须使用授权码验证。

测试邮件

[root@zabbix ~]# echo "zabbix test mail" |mailx -s "zabbix" XXXX@qq.com

在zabbix服务端写邮件发送脚本:

编写脚本

[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

[root@zabbix alertscripts]# vim sendmail.sh

	#!/bin/bash
	messages=`echo $3 | tr '\r\n' '\n'`
	subject=`echo $2 | tr '\r\n' '\n'`
	echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

授权:

[root@zabbix alertscripts]# touch /tmp/sendmail.log

[root@zabbix alertscripts]# chmod 777 /tmp/sendmail.log

[root@zabbix alertscripts]# chown zabbix:zabbix sendmail.sh

[root@zabbix alertscripts]# chmod +x sendmail.sh

修改主配置文件,让服务读取到这个脚本:

[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

添加一行:

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

测试发送脚本

/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh xxx@qq.com "测试邮件标题" "测试邮件内容"

页面添加报警媒介

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。

这是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。

在2.x版本不存在这个问题,默认会传3个参数。

指定报警用户

设置动作

新建动作:Action-Email

操作

说明:

默认操作步骤持续时间:重新发送报警的时间

操作细节:重复发几次,1-0次就是按照默认的时间重复发送

步骤持续时间:重发的时间,0为使用默认的时间

发送到用户群组:发送给哪个组(组里的用户都可以收到,前提是用户配置了media type的参数)

发送到用户:发送给那个用户

仅送到;使用那个media type来发送

这里可以配置升级报警,就是1-3次报警发给谁,4-6报警发给谁,间隔多长时间,就是在添加几个,用户或者组不一样,发送的media type也可以不一样。

恢复操作

测试

关闭 zabbix 客户端服务 zabbix_agentd

[root@mysql-01 ~]# /etc/init.d/zabbix_agentd stop

延迟比较大,大概要5分钟左右

可以在日志看送达状态:

  • 作者:未来的运维大牛
  • 原文链接:https://blog.csdn.net/w1206507055/article/details/125281543
    更新时间:2022-10-24 14:09:18