zabbix监控进程及日志
监控进程
- 这里通过写shell脚本判断进程是否正在运行。
进入配置了zabbix agent的服务器,配置shell
[root@podman etc]# touch monitor.sh
[root@podman etc]# vim monitor.sh
[root@podman etc]# chmod +x monitor.sh
[root@podman etc]# cat monitor.sh
#!/bin/bash
command=$(ps -ef|grep -v "grep"|grep -Ev $0|grep $1|wc -l)
#筛选出有关$1的进程,然后统计行数,其中grep命令相关不显示,关于这个shell的不显示。
if [ $command = "0" ]
then
echo "1"
else
echo "0"
fi
#通过if语句判断,如若有$1相关的进程就输出0,反之输出1
#这样就可以通过这个脚本的输出值判断进程是否存在。
[root@podman etc]# ./monitor.sh zabbix
0
改配置文件:
[root@podman ~]# cd /usr/local/etc/
[root@podman etc]# vim zabbix_agentd.conf
[root@podman etc]# killall zabbix_agentd
[root@podman etc]# zabbix_agentd
在配置文件加入下面两行:
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /etc/monitor.sh $1
去服务端检测check是否可以使用
[root@localhost ~]# zabbix_get -s 192.168.245.132 -k check_process[podman]
0
进入web界面创建监控项:
如何创建主机可以去上篇文章看
可以看见监控项已经创建成功
创建了监控项,那想看到报警就得配置触发器
这里配置什么服务看自己,如果配置的是没进程的服务,例如podman那可能会一直报警。
如果想监控这种没有进程的服务可以换一种方法监控,有守护进程的监控守护进程,没有守护进程的可以监控该服务端口。
监控根据shell做出判断的基本操作在这,如何做,做什么都需要自己思考。
监控日志
首先得有脚本地址
[root@podman pyscripts-master]# ls
'#U5b9a#U65f6#U53d1#U5fae#U4fe1#U7fa4#U6d88#U606f.zip' dmp4.py mail_send.py
README.md log.py
[root@podman pyscripts-master]# mv log.py /etc/log.py
[root@podman pyscripts-master]# ls /etc|grep log
csh.login
log.py
login.defs
logrotate.conf
logrotate.d
rsyslog.conf
rsyslog.d
[root@podman etc]# chmod +x log.py
[root@podman etc]# ll |grep log.py
-rwxr-xr-x. 1 root root 1854 Mar 22 2020 log.py
[root@podman etc]# yum install -y httpd python3
[root@podman etc]# ./log.py /etc/httpd/logs/error_log
0
[root@podman etc]# cat /tmp/logseek
1045[root@podman etc]# ll /etc/ |grep httpd
drwxr-xr-x. 5 root root 105 Sep 6 16:12 httpd
[root@podman etc]# ./log.py /etc/httpd/logs/error_log
0
[root@podman etc]# echo "Error" >> /etc/httpd/logs/error_log
[root@podman etc]# ./log.py /etc/httpd/logs/error_log
1
[root@podman etc]# vim /usr/local/etc/zabbix_agentd.conf
#写个配置文件:监控进程的时候写过
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /etc/monitor.sh $1
UserParameter=check_logs[*]./etc/log.py $1 $2 $3
[root@podman log]# chmod +755 /var/log/httpd
#检验
[root@localhost tmp]# zabbix_get -s 192.168.245.132 -k check_logs[/etc/httpd/logs/error_log]
0
web配置:
添加监控项:
添加触发器:
触发报警:
[root@podman ~]# echo "Error" >> /etc/httpd/logs/error_log
报警: