zabbix自定义监控

文章目录

  • zabbix自定义监控
    • 自定义监控进程
    • 自定义监控日志文件
    • mysql主从监控
    • mysql主从延迟监控

zabbix自定义监控

自定义监控:自定义场景监控

自定义监控进程

1.在客户端写一个通用脚本

2.在客户端打开自定义监控项

3.在客户端添加监控配置

4.在web界面配置监控项和触发器

//在根下面创建一个放脚本的文件夹,并写一个通用脚本
[root@localhost ~]# mkdir /shell
[root@localhost ~]# vim /shell/process.sh
[root@localhost ~]# cat /shell/process.sh 
#!/bin/bash

process=$(ps -ef |grep "$1" |grep -Ev "grep | $0"|wc -l)

if [ $process -eq 0 ];then
        echo "1"
else
        echo "0"
fi
[root@localhost ~]# chmod a+x /shell/process.sh

//打开自定义监控项
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /shell/process.sh $1

//然后在server端验证,0为服务开启,1为服务未开启
[root@zabbixserver ~]# zabbix_get -s 192.168.37.100 -k check_process[httpd]
1
[root@zabbixserver ~]# zabbix_get -s 192.168.37.100 -k check_process[sshd]
0

添加监控项

zabbix自定义监控_第1张图片

添加触发器

zabbix自定义监控_第2张图片

zabbix自定义监控_第3张图片

zabbix自定义监控_第4张图片

自定义监控日志文件

流程和监控进程一样,只不过使用的脚本不一样,监控日志文件不能使用shell脚本完成

//在受控机上安装一个python3
[root@localhost ~]# yum -y install python3
//创建一个测试日志文件
[root@localhost tmp]# touch /tmp/ceshi.log  //随便往里面加点东西

//获取python代码,我这边使用的我同事的代码,可以检索日志文件中的Error关键字,第二次检索的时候会从上一次检索的位置开始检索
[root@localhost ~]# ls /shell/
log.py  process.sh

//修改受控主机上的配置文件
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_logs[*],python3 /shell/log.py $1 $2 $3 //改完记得重启

//在控制机上测试
[root@zabbixserver ~]# zabbix_get -s 192.168.37.100 -k check_logs[/tmp/ceshi.log]
1
[root@zabbixserver ~]# zabbix_get -s 192.168.37.100 -k check_logs[/tmp/ceshi.log]
0    //记得把受控主机上的logseek属主和属组改成zabbix用户和组,不然没有权限读取该文件

添加监控项

zabbix自定义监控_第5张图片

添加触发器

zabbix自定义监控_第6张图片

zabbix自定义监控_第7张图片

我们手动触发一次

[root@localhost ~]# echo 'Error' >> /tmp/ceshi.log

zabbix自定义监控_第8张图片

mysql主从监控

主从监控里监控的是从库的Slave_IO线程和Slave_SQL线程是否开启

主从配置可以看我之前的文章

博客地址

写一个检测mysql线程状态的脚本

[root@localhost shell]# cat mysql_slave.sh 
#!/bin/bash

mysql=$(mysql -uroot -payachinene -e 'show slave status\G'|grep  -E 'IO_Running:|SQL_Running:'|grep -c 'Yes')
if [ $mysql -ne 2 ];then
     echo '1'
else
     echo '0'
fi
//查看状态为两个YES的时候为正常,其余的状态都是异常
//修改受控主机上的配置文件
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=mysql_slave,/bin/bash /shell/mysql_slave.sh
//配置完记得重启

//在控制机上验证
[root@zabbixserver ~]# zabbix_get -s 192.168.37.100 -k mysql_slave
0

添加监控项

zabbix自定义监控_第9张图片

zabbix自定义监控_第10张图片

zabbix自定义监控_第11张图片

我们手动触发一次,打开主库的防火墙

zabbix自定义监控_第12张图片

mysql主从延迟监控

监控mysql的主从延迟查看Seconds_Behind_Master参数

//编写脚本
[root@localhost shell]# cat mysql_delay.sh 
#!/bin/bash

mysql -uroot -payachinene -e'show slave status \G' | grep 'Seconds_Behind_Master' | awk '{print $NF}'

//修改受控主机上的配置文件
[root@localhost shell]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=mysql_delay,/bin/bash /shell/mysql_delay.sh
重启服务

//在控制机上测试
[root@zabbixserver ~]# zabbix_get -s 192.168.37.100 -k mysql_delay
0

添加监控项

zabbix自定义监控_第13张图片

添加触发器

zabbix自定义监控_第14张图片

zabbix自定义监控_第15张图片

触发报警

zabbix自定义监控_第16张图片

你可能感兴趣的:(zabbix,centos)