这里写目录标题
zabbix监控mysq且配置自动发送报警邮件zabbix监控mysql实验环境创建一个目录存放mysql用户的帐号密码将mysql用户密码配置在文件中(安全)安装percona-zabbix将conf文件复制到到/etc/zabbix/zabbix_agentd.d/编辑f然后重启zabbix-server主机上的zabbix-agent测试脚本导入模版:给zabbix-server主机添加导入的模版测试zabbix对mysql的监视配置zabbix自动发送报警邮件具体操作进行测试,我们将server3的agent停掉查看邮件日志zabbix监控mysq且配置自动发送报警邮件
zabbix监控mysql
实验环境
开启server1的zabbix-server,zabbix-agent,mariadb,httpd
开启server2的httpd和zabbix-agent
开启server3的nginx,zabbix-agent
Server1:
Server2:
Server3:
然后打开浏览器: http://172.25.21.1/zabbix
会发现监控中有警告,这里的zabbix-server,server2,server3都进行了重启
根据颜色来看这个是警告
现在要使用zabbix来监控mysql
这里监控本机的mysql
创建一个目录存放mysql用户的帐号密码
mkdir /var/lib/zabbixcat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
将mysql用户密码配置在文件中(安全)
在这个文件中我们可以看到一些mysql监控的信息:
Mysql默认使用mysqladmin命令来检测mysql是否存活
mysqladmin -uzabbix -predhat -h 127.0.0.1 ping | grep -c alive
只要这个ping返回的alive信息是1,就表示mysql正常,alive为0说明mysql挂了
我们可以通过这个参数来判断mysql否正常,
Mysql的帐号密码写在命令行里不安全,所以要把帐号和密码写到文件(隐藏文件)里面
我们把文件写在刚创建的/var/lib/zabbix目录
cd /var/lib/zabbixvim .f[mysql]host=localhostuser=rootpassword=redhatsocket=/var/lib/mysql/mysql.sock[mysqladmin]host=localhostuser=rootpassword=redhatsocket=/var/lib/mysql/mysql.sock
这时候我们不使用zabbix自带的mysql模版,
因为zabbix自带的mysql模版的信息太少了,
安装percona-zabbix
我们这里采用percona-zabbix模版,这时zabbix的一个外部的脚本模版(其他人二次开发的API)
Zabbix是支持二次开发的API,
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpmcd /var/lib/zabbix/percona/templates/
先查看一下这个xml文件(就是正常的xml文件格式)
然后看一下这个mysql模版的conf文件内容
将conf文件复制到到/etc/zabbix/zabbix_agentd.d/
可以看到这里190个对于mysql的监控项(这个第三方模版提供了190个监控项)
然后将这个conf文件复制到/etc/zabbix/zabbix_agentd.d/下:
然后进到/var/lib/zabbix/percona/scripts下,
编辑f
我们在这个cnf文件中写一个php页面
<?php$mysql_user = 'root';$mysql_pass = 'redhat';?>
然后重启zabbix-server主机上的zabbix-agent
测试脚本
这时运行脚本获取数据:
我们要获取gk(key),来获取gk的值
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gk
Key有值的话说明正常
我们可以查看所有的key
这时我们再在浏览器上可以看到没有警告了
导入模版:
选择导入:
我们把模版放在真机桌面
因为使用的是真机的浏览器,所以导入时从真机的文件中找模版;
选择后点击open
选择聚合图形,我们可以多组图形显示;
然后选择导入
导入成功后
就可以在模版中看到我们导入的percona模版:
我们使用Ctrl + f在三页模版中搜索percona
然后在第三页中找到了我们导入的第三方模块:
给zabbix-server主机添加导入的模版
我们选择zabbix-server主机,给我们的zabbix-server主机添加新导入的模版:
测试zabbix对mysql的监视
现在的监控中是没有数据的
我们在mysql中输入一些数据,
mysql -uroot -predhatshow databases;use mysql;show tables;select * from user;
这个监控不可能实时上传数据,
我们需要过好长一会儿才能看到图像;
随便选择一个percona的图像:
我们这里看的是InnoDB Buffer Pool:
配置zabbix自动发送报警邮件
我们运维人员不可能把电脑时时刻刻抱在身边,
如果我们管理的服务器出现了问题,但是我们没有在服务器前,
所以这里就使用zabbix结合QQ邮箱,
如果zabbix监控的服务器出现问题,就给我们发邮件,
在公司中邮件使用的比较多,
各个部门之间,或者跟领导之间发邮件,
具体操作
点击管理–> 报警媒介类型
可以看到这里支持Email和SMS
我们将SMS先禁用,只留一个Email
所以我们就要配置我们的虚拟机上网:
然后我们给server1安装一个邮件mailx软件发邮件
查看邮件服务的端口是否开启:
对mail进行测试:
按Ctrl + d结束
mailq #查看邮件队列中是否有我们刚才发的内容(因为已经发出去了,所以是空的)
我们查看邮件:
可以看到我们这里的域名是root@server1.localdomain
我们等会儿用的是zabbix用户,
所以在QQ邮箱中添加的是zabbix@server1.localdomain
然后进到我们的zabbix监控界面;
点击Email
然后点击配置–>动作
右上角选择触发器:
点击该处使其变为启用
查看
这时我们的zabbix@server1.localdomain邮箱地址就可以在互联网上进行访问了
然后我们设置我们的QQ邮箱:
登陆进QQ邮箱(https加密的)
我使用二维码登陆的(这样就防止了钓鱼网站)
我们来设置白名单
点开如下操作:
在手机上的QQ邮箱设置也可以,
点击右上角的加号 +
然后选择设置
然后选择白名单
然后进到QQ邮箱里面设置(跟上面操作一样);
zabbix@server1.localdomain
Zabbix: 用户
Server1:主机名字
白名单的作用:
只要zabbix-server检测我们添加进白名单主机的后端的服务有问题,
就会给我们发出邮件报警
进行测试,我们将server3的agent停掉
然后可以看到server3主机下线了(变红了)
点击左上角的zabbix标志进行监控:
我们然后我们就可以在监控页面看到报警信息:
如果这里没有发送成功(1.检查网络2.鼠标放在动作下面就会出来出错的具体情况)
如果成功如下:
这时我们再查看我们的邮箱的收键箱
查看邮件日志
在server1上我们可以查看邮件日志
vim /var/log/maillog
可以看到我们给自己的QQ邮箱发送邮件的日志记录