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服务监控网络设备;各配置命令如下:

#通过脚本安装Agent2(支持CentOS7、Centos8)用于监控linux设备
wget --no-check-certificate https://drive.yangwn.top/d/AliDrive/Shell/install-agent2.sh

sh install-agent2.sh
---------------------------------------------------------------------------------

#通过二级制包安装agent用于监控windows设备

agent二级制包下载地址:https://www.zabbix.com/download_agents

---------------------------------------------------------------------------------
对于网络设备路由器交换机,在其上进行相关网络配置, 

#可结合zabbix监控网络三层架构,连接出口路由器,通过vtysh与出口路由器及核心交换机运行ospf;
#在交换机上配置vlanif口ip,通过静态路由实现与接入交换机通信,

并开启snmp服务,在仿真软件ensp上添加路由器与cloud设备,绑定至虚拟机vm net8 网卡,

配置路由器接口ip为192.168.221.66,与zabbix-server处于同一网段;

交换机开启snmp:
[Switch]snmp-agent
[Switch]snmp-agent community read  zabbix  #zabbix前端页面添加主机时,SNMP community的值应为zabbix,版本为v2
[Switch]snmp-agent sys-info version v2c
[Switch]snmp-agent target-host trap address udp-domain 192.168.201.128 params securityna
me zabbix
[Switch]snmp-agent trap enable
Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y

路由器开启snmp:
[Router]snmp-agent
[Router]snmp-agent community read zabbix  #zabbix前端页面添加主机时,SNMP community的值应为zabbix,版本为v2
[Router]snmp-agent sys-info version v2c
[Router]snmp-agent target-host trap-hostname zabbix-server address 192.168.201.128 u
dp-port 161 trap-paramsname zabbix
[Router]snmp-agent trap enable
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前端页面需创建报警媒介类型(钉钉需配置消息模板,如下),绑定用户,添加动作;

 

 

 

 

 部分内容配置如下:

#配置脚本报警需注意脚本是否有执行权限及zabbix用户是否有执行权,
#邮件功能是否设置完成,日志文件也需具备权限

1.进入容器zabbix-server内部署email服务,配置相关内容

2.在zabbix脚本默认路径下创建mailx.sh邮件报警脚本文件,内容如下:

#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

3.在zabbix脚本默认路径下创建dingding.py钉钉报警脚本文件,内容如下:
#部署钉钉报警需要在钉钉中创建群聊以及添加自定义钉钉机器人,
#设置关键词为“告警”和“恢复”,并获取其webhook添加至脚本中,
#Zabbix页面配置不过多描述,与邮件告警一致,创建报警媒介,绑定用户及创建动作。


!/usr/bin/python3
#-*- coding: utf-8 -*-
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=86d6f07eab410798bb5a6a1e170d1e630e70f83d680491054e110497a850c7a1"
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/lib/zabbix/alertscripts/dingding.log"):
    f=open("/usr/lib/zabbix/alertscripts/dingding.log","a+")
else:
    f=open("/usr/lib/zabbix/alertscripts/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"�~O~Q�~@~A�~H~P�~J~_"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "�~O~Q�~@~A失败" + "\n" + str(text))
    f.close()

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值