zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)

这篇具有很好参考价值的文章主要介绍了zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境配置

1、配置zabbix服务端

2、配置监控主机&监控项&监控模板

zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客

二、触发器

触发器的本质就是一个条件判断,对于不同的监控数据来说,我们要设置不同的触发器。如一个监控项不关联触发器,将不会提示错误,也不会触发告警动作。

触发器(trigger):

        触发器实际是一个条件判断表达式,如判断硬盘使用率超过80%

        当触发条件发生后,会触发事件,用于某个动作

动作 (action):

        触发器的条件被触发时候的具体操作

        可以是发送邮件、执行远程命令。可以单独设置,也可以相互配合。

1、创建触发器

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

2、触发器表达式

表达式格式:

{<server>:<key>.<function>(<parameter>)}<operator><constant>

{主机名:监控key.函数(参数)}<表达式>常数

 这个表达式在zabbix中是不需要手动编写的,可以在zabbix配置页面选择

3、表达式函数

  • 大多数函数使用秒作为参数,使用#代表不同含义
  • avg,count,last,min and max 函数支持额外的第二个参数time_shift(时间偏移量)这个参数允许从过去一段时间内引用数据
  • zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

三、配置报警媒介

发送通知有多种方式:邮件、短信、钉钉、微信、企微、飞书等。

发送通知就是发送消息,消息的载体我们称为媒介,所以要执行发送通知动作,需要先创建一个报警媒介(当现有媒介不能满足需求的时候)。

1、媒介之邮件

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

2、媒介之钉钉告警&微信等

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

钉钉&微信&飞书等都是通过 类型为脚本 的方式设置媒介类型

脚本参数参考如下:

{ALERT.SENDTO}        消息的接收者

{ALERT.SUBJECT}      消息主题  

{ALERT.MESSAGE}        告警信息

四、告警信息模板

信息模板,根据不同的消息类型信息模板的内容也有不同。

1、配置模板

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

 2、内容参数说明

故障信息参数:

#####默认标题

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

#####消息内容

告警主机: {HOSTNAME1}

主机IP: {HOST.IP}

告警时间: {EVENT.DATE} {EVENT.TIME}

告警等级: {TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

监控取值: {ITEM.LASTVALUE}

告警项目: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID: {EVENT.ID}

故障恢复信息参数:

#####默认标题

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 已恢复 !

#####消息内容

告警主机: {HOSTNAME1}

主机IP: {HOST.IP}

恢复时间: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

持续时间: {EVENT.AGE}

告警等级: {TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

监控取值: {ITEM.LASTVALUE}

告警项目: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID: {EVENT.ID}

五、配置用户群组及用户

用户与报警媒介相关联,只有用户对服务器群组有读取权限才能发送告警通知。

通过用户群组配置相关服务器群组读、写权限,用户继承群组权限。

1、用户群组

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbixzabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

2、用户

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbixzabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

六、配置动作

1、动作

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板),zabbix

2、动作步骤配置说明

默认的步骤是1-3,也即是从1开始到3结束。一旦故障发生,就执行脚本,发送给群组成员的用户。即使是故障持续1小时,也只发送3此告警,时间间隔为0秒

如果改成1-0  , 0表示无限制, 无限制发送告警

间隔时间是默认持续时间60秒,也就是1分钟1次,如持续1小时发送60次告警。

如设置成3-5,也就是持续3次也就是默认3*60=180秒后才发送告警给用户。

七、脚本

1、钉钉脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests      
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
#api_url = "https://oapi.dingtalk.com/robot/send?access_token= 这里填写钉钉机器人地址"          #填入刚刚复制的webhook
api_url = sys.argv[1]
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
        "at": {
            "atMobiles": [
                "15901402212"       #填入号码会@相应号码的人
            ],
            "isAtAll": True        # True会@所有人
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[2]
    msg(text)

2、企微脚本

[root@zabbix-server alertscripts]# cat EN-WeChat.py 
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
 
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = sys.argv[1]
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
 
if __name__ == '__main__':
    text = sys.argv[2]
    msg(text)

3、微信脚本

注:需要建立相关redis服务、微信告警服务等,直接使用脚本是不成功的。文章来源地址https://www.toymoban.com/news/detail-733508.html

[root@zabbix-server alertscripts]# cat weixin.sh 
#!/bin/bash
cd /etc/zabbix/alertscripts/
to=$1
str=$2
body=$3
host=`echo $str |awk -F [:]  '{print $2}'`
key=`cat /proc/sys/kernel/random/uuid`
echo $0 >> /etc/zabbix/alertscripts/1.log
echo $to >> /etc/zabbix/alertscripts/1.log
echo $str >> /etc/zabbix/alertscripts/1.log
echo $body >> /etc/zabbix/alertscripts/1.log
echo $host >> /etc/zabbix/alertscripts/1.log
echo $key >> /etc/zabbix/alertscripts/1.log
#/bin/sh /etc/zabbix/alertscripts/send-alarm.sh 2 "告警主机:$host\n告警主题: $str\n告警内容:$body" 'zabbix' $1 "$key" 0 "$str"
./send-alarm.sh 2 "告警主机:$host\n告警主题: $str\n告警内容:$body" 'yunwei-zabbix' $1 "$key" 0 "zabbix-test9" "告警内容:test-11199"


[root@zabbix-server alertscripts]# cat send-alarm.sh
#!/bin/sh

redisclient="/usr/bin/redis-cli"
#redisclient="/data/server/redis/bin/redis-cli"
#redisclient="/usr/bin/redis-cli"
redis_slave_server=""
redis_slave_port=""
redis_master_server=""
redis_master_port=""

function UpdateRedisSlaveAddr(){
  local s_addr=$1
  local s_port=$2
  for ser in "${sentinel_addr[@]}"
  do
    local info=`${redisclient} -h $s_addr -p $s_port SENTINEL slaves mymaster`
    redis_slave_server=`echo $info | awk -F" " '{print $4}'`
    redis_slave_port=`echo $info | awk -F" " '{print $6}'`
    if [ -n "$redis_slave_server" ]
    then
      break
    fi
  done
}

function UpdateRedisMasterAddr(){
  local s_addr=$1
  local s_port=$2

  for ser in "${sentinel_addr[@]}"
  do
    local info=`${redisclient} -h $s_addr -p $s_port SENTINEL get-master-addr-by-name mymaster`
    redis_master_server=`echo $info | awk -F" " '{print $1}'`
    redis_master_port=`echo $info | awk -F" " '{print $2}'`
    if [ -n "$redis_master_server" ]
    then
      break
    fi
  done
}

#{"notifyType":3,"level":1,"host":"10.0.333333333","subType":"cost","detail":"告警时间:2018-06-07 17:45:918\n广告主:测试更新流\n计划:测试审核Bann555554er\n订单:test\n告警内容:目标值已达到10.0%(7990)目标值已达到10.0%(7990)","department":1,"title":"order 190999 cost 告警","key":"20180621113123","status":0}
 
if [ $# != 8 ]
then
  echo "Parameter Erorr!"
  echo "eg: $0 NOTIFYTYPE  LEVEN SUBTYPE DEPARTMENT KEY STATE TITLE DETAIL"
  exit
fi

date=`date`

notify_type=$1
level=1
sub_type=$3
depart=$4
key=$5
state=$6
title=$7
detail=$2
host=`hostname`
echo $detail >> /data/z.log;
echo $detail > /etc/zabbix/alertscripts/detail.log
sed -i 's/\r//g' /etc/zabbix/alertscripts/detail.log
detail_file=/etc/zabbix/alertscripts/detail.log
#	keyword4=`ec | awk -F '告警内容:' '{print $2}' | awk -F '\\\r\\\n' '{print $1}' | awk -F ': ' '{print $2}'`
	keyword4="`cat $detail_file | awk -F '告警内容:' '{print $1}' |awk -F ':' '{print $3}'`"
	keyword3="`cat $detail_file | awk -F '告警时间:'  '{print $2}' | awk -F '告警' '{print $1}'`"
	keyword1="`cat $detail_file | awk -F '告警等级:' '{print $2}' | awk '{print $1}'`"
	keyword5="`cat $detail_file | awk -F '告警信息:'  '{print $2}' | awk -F '告警' '{print $1}'`"
	keyword2="`cat $detail_file | awk -F '当前状态:' '{print $2}' | awk '{print $1}' | awk -F ':' '{print $1}'`"
	
#detail_info="\"keyword1\":\"${keyword1}\",\"keyword2\":\"${keyword2}\",\"keyword3\":\"${keyword3}\",\"keyword4\":\"${keyword4}\",\"keyword5\":\"${keyword5}\""
detail_info="\"detailLevel\":\"${keyword1}\",\"detailType\":\"${keyword2}\",\"detailTime\":\"${keyword3}\",\"detailPostion\":\"${keyword4}\",\"detailBusiness\":\"${keyword5}\""
#detail="\"\""
####info####
#故障等级:{{keyword1.DATA}}
#故障类型:{{keyword2.DATA}}
#故障时间:{{keyword3.DATA}}
#故障定位:{{keyword4.DATA}}
#所属业务:{{keyword5.DATA}}
############	


#info="{\"notifyType\":$notify_type,\"level\":$level,\"host\":\"$host\",\"subType\":\"$sub_type\",\"detail\":\"$detail\",\"department\":$depart,\"title\":\"$title\",\"key\":\"$key\",\"status\":$state}"
info="{\"notifyType\":$notify_type,\"level\":$level,\"host\":\"$host\",\"subType\":\"$sub_type\",$detail_info,\"department\":$depart,\"title\":\"$title\",\"key\":\"$key\",\"status\":$state}"
#info="{\"notifyType\":$notify_type,\"level\":$level,\"host\":\"$host\",\"subType\":\"$sub_type\",\"detail\":$detail,$detail_info,\"department\":$depart,\"title\":\"$title\",\"key\":\"$key\",\"status\":$state}"
echo $info >> /data/z.log

sentinel_addr=(192.168.1.165 192.168.1.166 192.168.1.146)
UpdateRedisMasterAddr $sentinel_addr  26502
echo "Get Master: $redis_master_server $redis_master_port"

key="alarm:list"
echo "lpush $key $info"
result=`${redisclient} -h $redis_master_server -p $redis_master_port lpush $key  "$info"`
echo $result >> /data/z.log

到了这里,关于zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • zabbix配置钉钉机器人告警

    1.在钉钉上创建一个钉钉群组 2.在群组中添加一个机器人           3.配置zabbix server调用钉钉接口的代码( 使用python ) 查看是否有python环境 python --version  找到zabbix 的AlertScriptsPath目录路径  cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath 将调用钉钉接口的python文件放在AlertScripts

    2024年02月11日
    浏览(36)
  • linux系统zabbix监控配置钉钉告警

    配置钉钉告警 环境准备 配置钉钉脚本文件 钉钉日志目录 编写脚本 浏览器配置钉钉告警 中文消息告警模版 为用户添加报警媒介 添加监控项=》添加触发器=》 添加玩监控项和触发器后添加动作 至此,监控钉钉报警就配置完成了

    2024年02月22日
    浏览(32)
  • zabbix4.0配置钉钉机器人告警详细教程

            在钉钉中创建群聊,然后在设置中创建钉钉机器人。             机器人名字随便,安全设置我选择【自定义】,并设置内容为zabbix,即机器人收到的每条消息内容均需要带“zabbix”才可以发出。         复制保留Webhook的内容,以便后面使用。         在

    2024年02月11日
    浏览(34)
  • python调用钉钉发送告警消息

    zabbix和prometheus都能做监控告警调用企业微信和钉钉。那么问题来了做为一名合格的运维和开发人员,脚本发现故障告警,自动调用发送详细告警内容,这点儿东西得会。 效果图如下:  普通发送方式 dingtalkchatbot发送方式 

    2024年02月16日
    浏览(30)
  • JVS开源基础框架:用户管理介绍(支持同步钉钉、企微、微信等)

    在企业内部系统中,用户管理是指对系统内的用户进行管理、授权和权限管理的过程,这里主要介绍用户的创建与基本信息的管理,权限、登录等详细介绍请参考相关章节。 点击平台管理-用户管理,界面上展示了组织管理与组织对应的用户,如下图所示 新增创建用户时,点

    2024年02月16日
    浏览(30)
  • shell脚本实现告警消息推送钉钉机器人

    一、准备钉钉机器人         钉钉创建群聊                  群设置、智能群助手、添加机器人         机器人类型选择 自定义 (通过webhook接入自定义服务)         添加到刚才创建的群组、安全设置选择自定义 ( 将设置为告警二字,有用),配

    2024年02月14日
    浏览(39)
  • zabbix微信告警

    环境 :点击查看 注册一个企业微信 (官网) 进入后台管理 拉一个用户 创建一个应用 下载脚本(这步保留个人看法) 编写脚本(以下脚本仅供参考) 注意:以上脚本以及获取途径只供参考(无论如何,你获取到正确的脚本就可以了) 测试 定时推送状态(每分钟一次) 定

    2024年02月11日
    浏览(37)
  • zabbix企业微信告警

    目前,企业微信使用要设置可信域名 华为云搜索云函数 创建函数 选择http函数,随便输入函数名字 回到函数列表,选择刚创建的函数,创建触发器,安全模式选择none 点击右上角管理 选刚创建的api,右边操作点编辑,下一步,请求path 填 / ,点立即完成,点发布,再点发布

    2024年02月09日
    浏览(36)
  • 企业微信,阿里钉钉告警群机器人

    链接:如何通过企业微信群接收报警通知_云监控-阿里云帮助中心

    2024年02月15日
    浏览(25)
  • 数据分析:扩展企业微信、钉钉、飞书等告警通知渠道

    本章节主要讲述如何扩展告警的通知渠道,以便将告警发送到第三方应用中 实现目标 ●在鸿鹄中创建的告警被触发后,将告警通知发送至指定的企业微信群聊 配置步骤 1、打开“企业微信”,点击告警群右上角的“...”按钮 2、点击“群机器人” 3、点击“添加群机器人”

    2024年02月17日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包