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()

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,, slack等。 5.Grafana:监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲
你可以通过以下步骤将 Zabbix 配置为使用进行报警: 1. 在开放平台创建一个自定义机器人,并获取到机器人的 Webhook 地址。 2. 登录到 Zabbix 管理界面,导航到 Administration > Media types,并创建一个新的媒介类型。 3. 在媒介类型设置中,选择 "Script" 类型,并配置以下参数: - Type: Script - Script name or path: 这里可以填写一个用于发送消息的脚本的路径(例如:/usr/local/bin/send_dingtalk.sh) - Script parameters: 这里可以填写一些脚本参数,例如:{ALERT.MESSAGE}、{ALERT.SUBJECT} 等 4. 创建一个新的用户,并将该用户关联到刚创建的媒介类型中。 5. 在用户设置中,确保已经添加了用户的手机号或者邮箱地址。 6. 在触发器的设置中,将报警媒介设置为刚刚创建的媒介类型。 7. 创建一个用于发送消息的脚本(例如 send_dingtalk.sh),并将脚本中的 Webhook 地址替换为刚刚获取到的机器人的 Webhook 地址。脚本的内容可以参考以下示例: ```bash #!/bin/bash MESSAGE="$1" SUBJECT="$2" WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN" curl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"${SUBJECT}\n\n${MESSAGE}\"}}" "${WEBHOOK_URL}" ``` 记得将 `YOUR_ACCESS_TOKEN` 替换为你的机器人的 Access Token。 完成以上步骤后,当 Zabbix 触发报警时,会通过机器人发送相应的报警通知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值