Zabbix容器使用触发器--动作--报警给邮箱等媒介

基本思路就是:

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

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

编写触发器

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


查看检测中的最新数据

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

添加动作
添加操作

操作内容信息

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

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


添加用户报警媒介
媒介类型编写
选项
开始测试

查看邮箱中的邮件

进入收件人邮箱里查看
正常邮件结果
有问题邮件结果

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

编写报警媒介


报警媒介编写

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)

设置步骤1操作

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

vi /etc/zabbix/zabbix_agentd.conf

EnableRemoteCommands=1
将这个注释打开并置为1  意思是允许执行远程命令 就可以执行远程命令
步骤2 操作
恢复操作

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

钉钉收到停掉信息

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


image.png

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

一会执行恢复操作

现在服务已经被恢复了


恢复后再次发送信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容