当前位置:   article > 正文

zabbix邮件报警及钉钉报警(二)_zabbix钉钉告警

zabbix钉钉告警

功能概况:

        通过访问前端页面,添加不同类型的主机,如linux设备,windows设备,云服务器,路由设备,实现对主机cpu,内存,服务等进行监控。通过配置报警媒介绑定用户,依赖动作及监控模板实现邮件报警及钉钉机器人报警。通过配置监控项实现对日志内容的实时监控。

zabbix功能分析:

        在Zabbix部署完成之后,访问web页面,通过在客户端部署zabbix-agent添加监控主机,实现对主机cpu,网络等资源监控;通过配置监控项实现对zabbix日志的监控;配置脚本报警实现邮件及钉钉自动报警;

        接下来还会涉及到连接zabbix与grafana实现数据可视化监控,可自定义设置监控模板;连接zabbix与zbxtable实现对监控主机信息,流量的报表及告警信息导出功能。各服务访问地址及功能介绍如表2-1:

表2-1 服务访问地址

访问地址

服务

功能

192.168.221.34:80

zabbix

日常监控及脚本报警

192.168.221.34:3000

grafana

监控数据可视化

192.168.221.33:8088

zbxtable

监控信息报表导出

  zabbix-agent的部署:

        关于zabbix客户端的部署,需要在客户端通过使用二进制包安装或通过yum来安装,本文监控主机设备有云服务器ECS,网络设备华为路由器,虚拟机zabbix-server,zabbix-agent及宿主机windows。

        在ECS中使用yum的安装方式,对配置文件进行修改,实现对其监控;在虚拟机中,通过下载脚本安装包,一键安装并对配置文件进行修改;在windows设备中下载zabbix-agent软件包,安装并配置;在网络设备华为路由器中,由于条件有限,使用仿真软件ensp,配置snmp服务成功被zabbix服务端监控。

 脚本报警:

        Zabbix报警类型有webhook,电子邮件,短信及脚本;本文主要研究脚本报警,配置了邮件自动告警及钉钉机器人自动告警;zabbix agent采集数据发送给服务端,服务端依靠监控模板判断是否有异常,通过触发动作匹配条件及相关操作实现脚本运行自动报警   

        采用脚本方式来进行zabbix报警,需要将宿主机zabbix脚本目录与容器脚本目录绑定挂载,并配置其权限为777,并且按照本文所配置的报警方式。

        邮件自动报警需要下载mailx邮件服务;并对mailx配置文件进行修改,添加报警人邮箱,授权码等。钉钉机器人报警方式需要通过python脚本,且需获取钉钉机器人URL,而zabbix是通过容器来进行部署的,zabbix官方不会在容器中内置python环境,所以需要给容器添加python环境,为了使安装python方法简便,使用centos镜像构建容器,直接使用yum install安装。

        脚本配置完成后,需要在zabbix页面中配置报警媒介类型,添加脚本参数,此时可在页面中进行报警测试。然后绑定用户,创建触发动作添加操作。当所监控的某一服务出现异常,会自动将报警内容发送至邮箱及钉钉。

部署流程介绍:

        在zabbix前端页面中,进行添加主机设备操作,验证zabbix监控功能广泛,本系统监控多种设备,如虚拟机,windows主机,云服务器ECS,网络设备路由器;并配置好对zabbix server主机/var/log/message日志文件的监控,配置脚本报警,完成邮件报警及钉钉告警功能

 

 

 

部署zabbix-agent

        通过在被监控端安装zabbix-agent,并配置server ip为192.168.221.34;linux设备和windows设备都如此,对于网络设备交换机路由器等,通过snmp服务监控,当服务端与被监控端能互ping时即可监控成功;在zabbix前端页面配置--主机--创建主机;配置名称,选择模板群组及配置客户端接口ip;
        本文通过脚本安装agent监控linux设备,通过二级制包下载安装agent监控windows设备,并配合ensp启用snmp服务监控网络设备;各配置命令如下:

  1. #通过脚本安装Agent2(支持CentOS7、Centos8)用于监控linux设备
  2. wget --no-check-certificate https://drive.yangwn.top/d/AliDrive/Shell/install-agent2.sh
  3. sh install-agent2.sh
  4. ---------------------------------------------------------------------------------
  5. #通过二级制包安装agent用于监控windows设备
  6. agent二级制包下载地址:https://www.zabbix.com/download_agents
  7. ---------------------------------------------------------------------------------
  8. 对于网络设备路由器交换机,在其上进行相关网络配置,
  9. #可结合zabbix监控网络三层架构,连接出口路由器,通过vtysh与出口路由器及核心交换机运行ospf;
  10. #在交换机上配置vlanif口ip,通过静态路由实现与接入交换机通信,
  11. 并开启snmp服务,在仿真软件ensp上添加路由器与cloud设备,绑定至虚拟机vm net8 网卡,
  12. 配置路由器接口ip为192.168.221.66,与zabbix-server处于同一网段;
  13. 交换机开启snmp:
  14. [Switch]snmp-agent
  15. [Switch]snmp-agent community read zabbix #zabbix前端页面添加主机时,SNMP community的值应为zabbix,版本为v2
  16. [Switch]snmp-agent sys-info version v2c
  17. [Switch]snmp-agent target-host trap address udp-domain 192.168.201.128 params securityna
  18. me zabbix
  19. [Switch]snmp-agent trap enable
  20. Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y
  21. 路由器开启snmp:
  22. [Router]snmp-agent
  23. [Router]snmp-agent community read zabbix #zabbix前端页面添加主机时,SNMP community的值应为zabbix,版本为v2
  24. [Router]snmp-agent sys-info version v2c
  25. [Router]snmp-agent target-host trap-hostname zabbix-server address 192.168.201.128 u
  26. dp-port 161 trap-paramsname zabbix
  27. [Router]snmp-agent trap enable
  28. Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y

 监控拓扑图如下:


监控效果如下:

 

邮件报警/钉钉报警

        Zabbix脚本默认路径为/usr/lib/zabbix/alertscripts/,本文为容器部署,已将宿主机脚本目录挂载至容器内,在相应目录下进行脚本的创建,配合zabbix页面中的报警媒介及动作发送报警信息  

        部署脚本告警,在容器内将脚本内容完善,并部署email服务,在zabbix前端页面创建报警媒介email和钉钉;绑定用户,可通过测试进行验证脚本告警部署成功; 

        需注意:

        1.邮件报警需在容器内或服务端部署邮件服务,可自行百度;

        2.主意脚本及zabbix用户是否有执行脚本权限,即将脚本权限设为777;

        3.钉钉报警需自行在钉钉中创建群聊(有人数要求)及自定义机器人,并设置关键词为“告警”和“恢复”,并获取其webhook(自己的,记得替换)添加至脚本中;

        4.zabbix前端页面需创建报警媒介类型(钉钉需配置消息模板,如下),绑定用户,添加动作;

 

 

 

 

 部分内容配置如下:

  1. #配置脚本报警需注意脚本是否有执行权限及zabbix用户是否有执行权,
  2. #邮件功能是否设置完成,日志文件也需具备权限
  3. 1.进入容器zabbix-server内部署email服务,配置相关内容
  4. 2.在zabbix脚本默认路径下创建mailx.sh邮件报警脚本文件,内容如下:
  5. #!/bin/bash
  6. #send mail
  7. messages=`echo $3 | tr '\r\n' '\n'`
  8. subject=`echo $2 | tr '\r\n' '\n'`
  9. echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
  10. 3.在zabbix脚本默认路径下创建dingding.py钉钉报警脚本文件,内容如下:
  11. #部署钉钉报警需要在钉钉中创建群聊以及添加自定义钉钉机器人,
  12. #设置关键词为“告警”和“恢复”,并获取其webhook添加至脚本中,
  13. #Zabbix页面配置不过多描述,与邮件告警一致,创建报警媒介,绑定用户及创建动作。
  14. !/usr/bin/python3
  15. #-*- coding: utf-8 -*-
  16. import requests,json,sys,os,datetime
  17. webhook="https://oapi.dingtalk.com/robot/send?access_token=86d6f07eab410798bb5a6a1e170d1e630e70f83d680491054e110497a850c7a1"
  18. user=sys.argv[1]
  19. text=sys.argv[3]
  20. data={
  21. "msgtype": "text",
  22. "text": {
  23. "content": text
  24. },
  25. "at": {
  26. "atMobiles": [
  27. user
  28. ],
  29. "isAtAll": False
  30. }
  31. }
  32. headers = {'Content-Type': 'application/json'}
  33. x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
  34. if os.path.exists("/usr/lib/zabbix/alertscripts/dingding.log"):
  35. f=open("/usr/lib/zabbix/alertscripts/dingding.log","a+")
  36. else:
  37. f=open("/usr/lib/zabbix/alertscripts/dingding.log","w+")
  38. f.write("\n"+"--"*30)
  39. if x.json()["errcode"] == 0:
  40. f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"�~O~Q�~@~A�~H~P�~J~_"+"\n"+str(text))
  41. f.close()
  42. else:
  43. f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "�~O~Q�~@~A失败" + "\n" + str(text))
  44. f.close()

 最后:本文仅介绍部分配置内容,配置过程中有疑问可在评论区留言~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/898472
推荐阅读
相关标签
  

闽ICP备14008679号