1. 添加监控项
//在agent端的/opt/目录下,创建一个cc文件,利用zabbix来监控此文件
[root@agent ~]# ls /opt
bebejo cc messi xaii
[root@agent ~]# cat /opt/cc
hello worl
hello runtime
Name:监控项的名称
Type:监控项的类型,(此处为被监控)
Key:键,选择vfs.file.cksum[file],后面的file是所需监控的文件,需要传一个参数
Host interface:主机接口,IP套接字,填写所监控的主机的IP地址
Type of information:所监控的值的类型
Update interval:多久监控一次
Custom intervals:定制版的监控时间,例如:wd1-5h9-18表示,周一到周五的9点到18点
History storage period:监控的数据会存放在zabbix数据库中,此处表示数据在数据库中存放的时间
Trend storage period:365天
New application:自己添加一个application,也可以不添加,可以在下方自己选择
//监控项的状态:
2. 触发器
没有添加传感器,我们修改/etc/cc文件,是不会告警的!
//查看触发器的状态:
//在agent端修改/etc/cc文件的内容,来验证:
3. 自定义监控+监控进程(监控httpd服务)
//修改agent的zabbix配置文件
[root@agent ~]# vim /usr/local/etc/zabbix_agentd.conf
......
UnsafeUserParameters=1 (//将值改为1)
UserParameter=check_apache,/scripts/check_process.sh httpd (//在最后面添加此内容)
//自动化监控需要写脚本
[root@agent ~]# vim /scripts/check_process.sh
[root@agent ~]# cat /scripts/check_process.sh
#! /bin/bash
sum=`ps -ef|egrep -v "grep|$0"|grep $1|wc -l`
if [ $sum -eq 0 ];then
echo 1
else
echo 0
fi
//在服务端查看是否能够获取到agent端的值
[root@xaii ~]# zabbix_get -s 192.168.157.19 -k check_apache
0
0表示httpd服务正常,1表示服务不正常
//在zabbix中添加监控项和触发器
//正常情况下状态都应该是enable,那么我们在agent端关闭httpd服务,来验证:
//至此,自动化监控进程已经大概介绍完毕。
4. 监控日志(监控apache的错误日志)
//编辑agent端的配置文件,并重启服务:
[root@agent ~]# vim /usr/local/etc/zabbix_agentd.conf
[root@agent ~]# tail -1 /usr/local/etc/zabbix_agentd.conf
UserParameter=check_log_apache,python /scripts/log.py /var/log/httpd/error_log(跟之前的自动化监控内容不完全一样,以为是通过Python来控制的)
[root@agent scripts]# pkill zabbix
[root@agent scripts]# zabbix_agentd
//从 https://github.com/chendao2015/pyscripts 获取一个检测日志的脚本,并将其拷贝到agent端:
[root@agent scripts]# ls
check_process.sh inotify.sh log.py
[root@agent scripts]# chmod +x log.py (//加上执行权限)
[root@agent scripts]# chown zabbix.zabbix log.py )(//修改属主属组)
//创建新的监控项和触发器:
创建完成后,确保都是处于enable状态
//现在zabbix-server端,手动验证,查看是否能够获取到值:
[root@xaii ~]# zabbix_get -s 192.168.157.19 -k check_log_apache
0
[root@xaii ~]# zabbix_get -s 192.168.157.19 -k check_log_apache
0
[root@xaii ~]# zabbix_get -s 192.168.157.19 -k check_log_apache
0
//在agent端的error_log中添加一些不含Error字段的内容,查看Latest data值是否都为0:
[root@agent scripts]# cat >> /var/log/httpd/error_log <<EOF
> lizhao
> messi
> leo
> EOF
//再香/var/log/httpd/error_log文件中添加Error字段,检验Latest data是否有1:
[root@agent scripts]# cat >>/var/log/httpd/error_log <<EOF
> jahdskadhkaErrordasdas
> dkash
> EOF
至此,利用脚本监控日志就介绍完毕了。
注意:
log.py介绍
-
作用:检查日志文件中是否有指定的关键字
-
第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
-
第二个参数为seek position文件的路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
-
第三个参数为搜索关键字,默认为 Error