zabbix监控实现消息提醒(邮箱,钉钉机器人)

基本思路就是:

  • 1、先设置一个触发器
  • 2、在设置一个动作,发送到邮箱、钉钉、企业微信、短信
  • 2.1 设置一个动作,绑定一个监控项
  • 2.1 操作,收集那些监控项的服务的信息,发送给那些用户,然后执行另外的操作,比如尝试恢复服务,尝试三次失败后再次发送一个更加严重的信息给用户,使用户加快解决的脚步
  • 2.2 恢复操作,在收集到服务被恢复的信息后继续发一份服务运行正常的信息给用户
  • 3、设置一些报警媒介
  • 3.1 发送到邮箱 需要一个收件邮箱和这个邮箱的授权码
  • 3.2 编写一个脚本 发送给能够使用token的软件 比如钉钉、企业微信等
  • 3.3 发送短信给用户

设置触发器 配置--->主机--->触发器

image

查看设置完成后的信息 监测--->最新数据

image

添加动作 配置--->动作--->右上角创建动作

image
image

操作内容信息

告警主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME} : {ITEM.VALUE}
当前状态: {TRIGGER.STATUS} : {ITEM.VALUE1}
事件ID: {EVENT.ID}

image

添加用户报警媒介 管理--->用户--->右上角创建用户

image
image
image
image

查看邮箱中的邮件

image
image
image

设置可以在钉钉机器人和邮箱同时发送 并在报警后恢复服务

编写报警媒介

image

ding_msg.sh脚本详细

#!/bin/sh
if [ -z $1  ];then
    echo "ding_msg:
           $0 msg_content"
    exit
fi                      ----设置帮助信息

msg_content=$1    ---从外面获取变量

web_hook='https://oapi.dingtalk.com/robot/send?access_token=0bc28ec73b870e692e4e25384d55f3896c2a80e03461fc2d877ce7023d079522
curl "${web_hook}" \
   -H 'Content-Type: application/json' \
   -d "{'msgtype': 'text',
        'text': {
             'content': 'zabbix.........${msg_content}'
        }
       }"
---hook是在钉钉机器人中获取到的
---content的信息是从外面获取到的信息

ding_msg.py

import requests

import sys

try:
   msg_conment=sys.argv[1]
except Exception as e:
   sys.exit("bye")

content = {
    "msgtype": "text",
    "text": {
        "content": "zabbix...... {}".format(msg_conment)
    },
    "at": {
        "atMobiles": [
#
       ],
       "isAtAll": True     ----设置艾特所有人

    }
}

headers = {"Content-Type": "application/json;charset=utf-8"}

url="https://oapi.dingtalk.com/robot/send?access_token=0bc28ec73b870e692e4e25384d55f3896c2a80e03461fc2d877ce7023d079522"
r = requests.post(url=url,headers=headers,json=content)
print(r.content)

image

在这执行恢复操作时候需要将zabbix这个用户加入到sudo 容器中需要yum安装一个sudo
visudo进入后 将zabbix加进去
执行远程命令的时候需要在客户端修改一下配置文件

vi /etc/zabbix/zabbix_agentd.conf

EnableRemoteCommands=1
将这个注释打开并置为1  意思是允许执行远程命令 就可以执行远程命令

image
image

在客户端将服务给停掉会发触发发消息
首先钉钉会收到,其次是邮箱

image

查看发送信息 监测--->问题

image

会看到没有报红说明已经报警后执行恢复操作了 那么你就可以看一下钉钉和邮箱,但是邮箱有可能进去后看不到,别着急,邮箱会有个时间间隔才能够收到

image

现在服务已经被恢复了

image

你可能感兴趣的:(zabbix监控实现消息提醒(邮箱,钉钉机器人))