Zabbix实现邮件和钉钉实时告警(使用python脚本)

告警和通知

告警是监控的主要职能,是指将到达某一阈值事件的消息发送给用户,让用户在事件发生的时候即刻知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。
zabbix中,告警是由一系列的流程组成的,⾸首先是触发器到达阈值,接下是Active对事件信息进行处理,其中包括两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,到达对事件故障⾃动尝试恢复的结果。

告警流程

Host Groups(设备组)-> Hosts (设备)-> Applications(监控项组) -> Items(监控项) -> Trigger(触发器) -> Actives (告警动作) -> Medias(告警方式) -> User Groups(用户组) -> Users(用户)

1 系统告警

1.1 设置触发器

先配置一个监控项:

在这里插入图片描述

再配置触发器:

在这里插入图片描述

1.2 设置Action

如果想在产生事件后,即当触发器条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置Action。

创建一个新的Action,选择触发器:

在这里插入图片描述

设置两个条件之间的关系:

在这里插入图片描述

转到操作选项,添加一个发送消息的操作:

在这里插入图片描述

再添加一个操作,当出现问题时,尝试远程登录到服务器,重启httpd服务

在这里插入图片描述

查看所有的操作

在这里插入图片描述

调整恢复正常后的操作:

在这里插入图片描述

客户端需要允许服务器进行远程操作

[root@client2 ~]# vim /etc/zabbix/zabbix_agentd.conf 

UnsafeUserParameters=1

测试:

[root@client2 ~]# systemctl stop httpd
[root@client2 ~]# clock
2022年07月13日 星期三 16时46分07秒  -0.040396 秒
[root@client2 ~]# systemctl status httpd		# 关掉服务后,过一会儿zabbix将服务重启了
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2022-07-13 16:46:27 CST; 13s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 5169 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 5195 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
    Tasks: 6
   CGroup: /system.slice/httpd.service
           ├─5195 /usr/sbin/httpd -DFOREGROUND
           ├─5196 /usr/sbin/httpd -DFOREGROUND
           ├─5197 /usr/sbin/httpd -DFOREGROUND
           ├─5198 /usr/sbin/httpd -DFOREGROUND
           ├─5199 /usr/sbin/httpd -DFOREGROUND
           └─5200 /usr/sbin/httpd -DFOREGROUND

7月 13 16:46:27 client2.test.com systemd[1]: Starting The Apache HTTP Server...
7月 13 16:46:27 client2.test.com httpd[5195]: AH00558: httpd: Could not reliably de...ge
7月 13 16:46:27 client2.test.com systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@client2 ~]# clock
2022年07月13日 星期三 16时47分03秒  -0.993565 秒

如果觉得使用root权限太大,也可以给zabbix用户赋权限:

[root@client2 ~]# visudo
zabbix  ALL=(ALL)       NOPASSWORD: /etc/init.d/httpd restart

2 设置邮件告警

如果需要使用网络中的邮件服务器,需要先开启SMTP服务,并获取到密码:

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Zabbix 是一款开源的企业级监控软件。在 Zabbix 中,可以设置各种告警方式,其中包括钉钉告警。本文将介绍如何编写钉钉的 Shell 告警脚本。 首先,我们需要在钉钉中创建一个机器人。在钉钉群中,点击右上角的设置按钮,选择机器人管理,然后点击创建机器人。选择自定义机器人,设置机器人名称和头像,然后复制 Webhook 地址。 接下来,我们需要编写 Shell 脚本。可以使用任何编辑器,比如 vim,nano 或者 gedit。以下是一个简单的 Shell 脚本示例: ```bash #!/bin/bash # 钉钉机器人 webhook 地址 url="https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX" # 消息内容 message="$1" # 发送 POST 请求 curl -H "Content-Type: application/json" -X POST -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}" $url ``` 在脚本中,首先设置了钉钉机器人的 Webhook 地址。然后获取了消息内容,该内容作为脚本的第一个参数传入。最后,使用 curl 命令发送 POST 请求,将消息内容作为 JSON 格式发送给钉钉机器人。 现在,将脚本保存为 dingding.sh,并将其放置在 Zabbix 的 alertscripts 目录中。该目录通常位于 /usr/lib/zabbix/alertscripts。然后,将脚本的权限设置为可执行: ```bash chmod +x /usr/lib/zabbix/alertscripts/dingding.sh ``` 接下来,在 Zabbix 中创建一个新的媒介类型。在 Zabbix 管理界面中,选择 Administration -> Media types。然后点击 Create media type 按钮。 在弹出窗口中,输入以下信息: - Name: 钉钉告警 - Type: Script - Script name: dingding.sh - Script parameters: {ALERT.MESSAGE} 然后点击 Add 按钮进行保存。 最后,在 Zabbix告警动作中,选择钉钉告警媒介类型,并将钉钉机器人 Webhook 地址作为参数传入。现在,当 Zabbix 监控出现问题时,将会通过钉钉机器人发送告警消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-风中叮铃-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值