zabbix自定义监控
zabbix自定义监控进程
在客户端创建存放脚本的目录
[root@client ~]# mkdir /scripts/
[root@client ~]# cd /scripts/
[root@client scripts]#
编写监控进程的脚本
[root@client scripts]# vim check_process.sh
#!/bin/bash
count=$(ps -ef | grep -Ev "grep|$0" | grep -c "$1")
if [ $count -eq 0 ];then
echo 1
else
echo 0
fi
这个脚本执行后可以指定各种服务的进程,如果该进程正常运行则会输出0,当该进程出现问题或者被停止则会输出1.
去客户端agent配置文件里进行配置
[root@client ~]# vim /usr/local/etc/zabbix_agentd.conf
##将原本的0改成1并将#去掉
UnsafeUserParameters=1
##在最后一排添加
UserParameter=check_process[*],/scripts/check_process.sh $1
在服务端检验设置的键值是否可以获取
[root@localhost ~]# zabbix_get -s 192.168.101.110 -k check_process[sshd]
0
[root@localhost ~]# zabbix_get -s 192.168.101.110 -k check_process[httpd]
去图形化界面添加监控项
键值要与配置文件中设置的相同
创建触发器
测试
[root@client ~]# systemctl stop httpd
zabbix自定义监控日志文件
准备好监控日志的脚本
root@client scripts]# ls
log.py
改脚本当指定日志中出现error则会打印出0,但在出现问题出现error后则会打印出1
去客户端agent配置文件里进行配置
[root@client ~]# vim /usr/local/etc/zabbix_agentd.conf
##在末端添加
UserParameter=check_log[*],/scripts/log.py $1 $2 $3
去图形化界面添加监控项
添加触发器
测试
[root@client log]# echo "Error" >> httpd/error_log
zabbix自定义监控主从复制
编写监控进程的脚本
[root@localhost scripts]# vim check_state.sh
#!/bin/bash
export MYSQL_PWD=123456
count=$(mysql -uroot -e 'show slave status\G'|grep -c Yes)
if [ $count -eq 2 ];then
echo 0
else
echo 1
去客户端agent配置文件里进行配置
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=checkstate,/scripts/check_state.sh
去图形化界面添加监控项
添加触发器
结果