zabbix自定义监控

  • zabbix自定义监控已关闭评论
  • 140 次浏览
  • A+
所属分类:linux技术
摘要

测试监控httpd,需要在监控端部署httpd,以方便监控

查看监控数据


zabbix自定义监控

自定义监控进程

测试监控httpd,需要在监控端部署httpd,以方便监控
``

配置监控脚本

#在监控端 [root@localhost ~]# dnf -y install httpd [root@localhost ~]# systemctl start httpd [root@localhost ~]# ss -anlt | grep 80 LISTEN 0      128                *:80               *:*     #编写脚本 [root@localhost ~]# mkdir /scripts [root@localhost ~]# vim /scripts/check_process.sh #!/bin/bash  count=$(ps -ef|grep -Ev "grep|$0" | grep $1 | wc -l) if [  $count -eq 0 ];then         echo '1' else         echo '0' fi [root@localhost ~]# chmod +x /scripts/check_process.sh  [root@localhost ~]# ll /scripts/check_process.sh -rwxr-xr-x. 1 root root 119 Sep  6 21:09 /scripts/check_process.sh  #在监控端,修改配置文件 [root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf UnsafeUserParameters=1 UnsafeUserParameters=check_process[*],/bin/bash /scripts/check_process.sh $1  #服务端检查key是否可用 [root@zabbix ~]# zabbix_get -s 192.168.111.137 -k check_process[httpd] 0 [root@zabbix ~]# zabbix_get -s 192.168.111.137 -k check_process[mysql] 1 [root@zabbix ~]# zabbix_get -s 192.168.111.137 -k check_process[zabbix] 0 

添加监控项

zabbix自定义监控
zabbix自定义监控
zabbix自定义监控
查看监控数据
zabbix自定义监控

添加触发器

zabbix自定义监控
zabbix自定义监控
zabbix自定义监控
zabbix自定义监控

手动关闭httpd,进行测试触发报警

[root@localhost ~]# systemctl stop httpd 

查看报错
zabbix自定义监控

发送邮件
zabbix自定义监控

查看邮件
zabbix自定义监控

自定义监控日志

初学者复制的脚本
忘情的log脚本日志

#由于是python的脚本,需要在python环境中 [root@localhost ~]# dnf -y install python36  #编写脚本 [root@localhost ~]# cd /etc/scripts/ [root@localhost scripts]# vim log.py #!/usr/bin/env python3 import sys import re  def prePos(seekfile):     global curpos     global curpos     try:         cf = open(seekfile)     except IOError:         curpos = 0         return curpos     except FileNotFoundError:         curpos = 0         return curpos     else:         try:             curpos = int(cf.readline().strip())         except ValueError:             curpos = 0             cf.close()             return curpos         cf.close()     return curpos  def lastPos(filename):     with open(filename) as lfile:         if lfile.readline():             lfile.seek(0,2)         else:             return 0         lastPos = lfile.tell()     return lastPos  def getSeekFile():     try:         seekfile = sys.argv[2]     except IndexError:         seekfile = '/tmp/logseek'     return seekfile  def getKey():     try:         tagKey = str(sys.argv[3])     except IndexError:         tagKey = 'Error'      return tagKey   def getResult(filename,seekfile,tagkey):      destPos = prePos(seekfile)      curPos = lastPos(filename)       if curPos < destPos:          curpos = 0      try:         f = open(filename)     except IOError:         print('Could not open file: %s' % filename)     except FileNotFoundError:         print('Could not open file: %s' % filename)     else:         f.seek(destPos)          while curPos != 0 and f.tell() < curPos:             rresult = f.readline().strip()             global result             if re.search(tagkey, rresult):                 result = 1                 break             else:                 result = 0          with open(seekfile,'w') as sf:             sf.write(str(curPos))         finally:             f.close()         return result  if __name__ == "__main__":     result = 0     curpos = 0     tagkey = getKey()     seekfile = getSeekFile()     result = getResult(sys.argv[1],seekfile,tagkey)     print(result) [root@localhost scripts]# chmod +x log.py  [root@localhost scripts]# ll total 12 -rwxr-xr-x. 1 root root  128 Sep  6 21:53  check_process.sh -rwxr-xr-x. 1 root root 1890 Sep  6 22:49  log.py  #修改配置文件 [root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf UserParameter=check_logs[*],/etc/scripts/log.py $1 $2 $3 [root@localhost ~]# pkill zabbix [root@localhost ~]# zabbix_agentd   #需要给/var/log/httpd目录添加权限 [root@localhost ~]# chmod 755 /var/log/httpd/ [root@localhost ~]# ll /var/log/httpd/ total 8 -rw-r--r--. 1 root root  704 Sep  6 21:42 access_log -rw-r--r--. 1 root root 2635 Sep  6 22:12 error_log 
#给httpd的error日志,添加一个错误信息 [root@localhost ~]# echo "Error" >> /var/log/httpd/error_log #服务端测试 [root@zabbix ~]# zabbix_get -s 192.168.111.137 -k check_logs['/var/log/httpd/error_log'] 1 [root@zabbix ~]# zabbix_get -s 192.168.111.137 -k check_logs['/var/log/httpd/error_log'] 0 

添加监控项

zabbix自定义监控
zabbix自定义监控
zabbix自定义监控

添加触发器

zabbix自定义监控
zabbix自定义监控
zabbix自定义监控
zabbix自定义监控

手动添加错误日志,触发报警

[root@localhost httpd]# echo "Error123" >> /var/log/httpd/error_log  

zabbix自定义监控

zabbix自定义监控