zabbix监控进程、日志文件
自定义监控进程
-
写脚本,脚本放统一位置
-
修改被监控端zabbix_agentd.conf配置文件
UnxsafeParameters=1 UnserParameter=<key>,<command>
-
重启zabbix agent
-
在web界面配置监控项和触发器
修改客户端的zabbix_agentd.conf文件
[root@agent etc]# pwd
/usr/local/etc
[root@agent etc]# vim zabbix_agentd.conf
UnsafeUserParameters=1 #默认为0。修改为1,打开自定义监控功能
······
UserParameter=check_process[*],/home/zabbix/check_process.sh $1
[root@agent etc]# pkill zabbix
[root@agent etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 5 [::1]:631 [::]:*
[root@agent etc]# cd
[root@agent ~]# cd /home/zabbix
[root@agent zabbix]# vim check_process.sh
[root@agent zabbix]# cat 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
[root@agent zabbix]# chmod +x check_process.sh
测试
[root@server ~]# zabbix_get -s 192.168.136.225 -k check_process[httpd]
0
在web界面配置监控项和触发器
测试
[root@agent etc]# systemctl stop httpd.service
效果图
自定义监控日志
写脚本
https://github.com/chendao2015/pyscripts 脚本连接
[root@agent zabbix]# chmod +x log.py
[root@agent zabbix]# ls
check_process.sh log.py
执行脚本前看客户端是否安装python 没有就安装一个python
[root@agent zabbix]# yum -y install python3
监控httpd的日志文件
[root@agent zabbix]# ./log.py /var/log/httpd/error_log
0 没有就是0 有内容就是1
[root@agent zabbix]# echo 'Error' >> /var/log/httpd/error_log 添加一个内容
[root@agent zabbix]# ./log.py /var/log/httpd/error_log
1
修改/usr/local/etc/zabbix_agentd.conf文件
[root@agent etc]# vim zabbix_agentd.conf
UserParameter=check_log[*],/home/zabbix/log.py $1 $2 $3 添加该内容
[root@agent etc]# pwd
/usr/local/etc
重启zabbix_agent服务
[root@agent etc]# pkill zabbix_agentd
[root@agent etc]# zabbix_agentd
测试
[root@server ~]# zabbix_get -s 192.168.136.225 -k check_log[/var/log/httpd/error_log]
0
[root@server ~]# zabbix_get -s 192.168.136.225 -k check_log[/var/log/httpd/error_log,/tmp/logseek,failed]
0
给文件一些内容
[root@agent etc]# echo 'tyftf' >> /var/log/httpd/error_log
[root@agent etc]# echo 'failed' >> /var/log/httpd/error_log
[root@server ~]# zabbix_get -s 192.168.136.225 -k check_log[/var/log/httpd/error_log,/tmp/logseek,failed]
1
配置web界面
测试
[root@agent tmp]# echo 'Error' >> /var/log/httpd/error_log