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

2023-11-08

一、环境配置

1、配置zabbix服务端

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

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

二、触发器

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

触发器(trigger):

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

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

动作 (action):

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

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

1、创建触发器

2、触发器表达式

表达式格式:

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

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

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

3、表达式函数

  • 大多数函数使用秒作为参数,使用#代表不同含义
  • avg,count,last,min and max 函数支持额外的第二个参数time_shift(时间偏移量)这个参数允许从过去一段时间内引用数据

三、配置报警媒介

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

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

1、媒介之邮件

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

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

脚本参数参考如下:

{ALERT.SENDTO}        消息的接收者

{ALERT.SUBJECT}      消息主题  

{ALERT.MESSAGE}        告警信息

四、告警信息模板

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

1、配置模板

 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、用户群组

2、用户

六、配置动作

1、动作

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服务、微信告警服务等,直接使用脚本是不成功的。

[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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板) 的相关文章

  • zabbix 监控Linux TCP/UDP端口流量

    zabbix agent客户端在Linux服务器安装之后 服务器端配置上Template OS Linux这个模板 就会自动搜索该服务器上的所有网卡 然后实时记录income流量和outcome流量 并绘制成图标显示 如下 有这个粗略的统计
  • zabbix详解(十二)——zabbix监控MySQL主从状态实战

    今天继续给大家介绍Linux运维相关知识 本文主要内容是zabbix监控MySQL主从同步状态 本文旨在配置实现zabbix对MySQL主从同步状态的监控 并且当MySQL主从同步状态宕机后 进行邮件报警 一 MySQL主从配置 关于MyS
  • CentOS7.6 编译安装LNMP+Zabbix5.0

    一 服务器信息 操作系统 CentOS Linux release 7 6 1810 Core 环境 内网环境 无公网出口 YUM源 本地yum MySQL版本 5 7 32 Nginx版本 nginx 1 22 0 PHP版本 php 7
  • zabbix监控实战示例

    1 监控TCP 连接数 1 创建conf文件引用脚本 vim usr local zabbix etc zabbix agentd conf d all conf 或者 vim usr local zabbix etc zabbix age
  • zabbix服务器监控

    zabbix服务器监控 文章目录 zabbix服务器监控 一 zabbix服务器监控 概念 1 服务器上安装zabbix agent 2 启动zabbix agent服务 二 监控远程linux服务器 1 将server的hosts文件复制
  • Zabbix的聚合图形配置

    Zabbix的聚合图形配置 一 查看现有的聚合图形 二 编辑聚合图形 三 查看编辑好的聚合图形 一 查看现有的聚合图形 二 编辑聚合图形 三 查看编辑好的聚合图形
  • zabbix配置微信报警

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 6 1 注册企业微信 企业微信注册地址 https work weixin qq com 设置总部门名称添加成员 也可以成员扫码加入 点击 成员加入 过程略 6
  • 【Zabbix实战之部署篇】docker部署Zabbix+grafana监控平台

    Zabbix实战之部署篇 docker部署Zabbix grafana监控平台 一 Zabbix介绍 1 Zabbix简介 2 Zabbix的优点 3 Zabbix各组件介绍 4 Zabbix架构图 二 grafana介绍 1 grafan
  • Linux 下安装zabbix

    一 下载安装zabbix 1 下载zabbix root localhost wget https mirrors tuna tsinghua edu cn zabbix zabbix 4 0 rhel 7 x86 64 zabbix re
  • (centos7-x86)编译安装zabbix6.0LTS+Mariadb10.5+Apache+php7.4【安装完整版】

    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix能监视各种网络参数 保证服务器系统的安全运营 并提供灵活的通知机制以让系统管理员快速定位 解决存在的各种问题 zabbix由2部分构成
  • 企业级zabbix监控服务搭建

    一 什么是zabbix zabbix可以干什么的 为什么我们要使用zabbix 什么是zabbix zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix由2部分构成 zabbix serv
  • 【Zabbix实战之运维篇】Zabbix监控平台的简单性能调优

    Zabbix实战之运维篇 Zabbix监控平台的简单性能调优 一 Zabbix性能优化介绍 1 造成Zabbix服务器变慢原因 2 Zabbix性能调优的方法 二 检查Zabbix服务器的资源占用情况 1 检查Zabbix各组件容器的资源占
  • Zabbix5.0设置模板 (超详细解析)

    zabbix部署请见上一篇文章 http t csdn cn yF1JG 一 zabbix模板 模板概述 Zabbix为用户提供了很多开箱即用的模板 具体模板可通过配置 模板查看 模板大概分类如下 网络设备的标准化模板 对交换机和路由器等网
  • 使用zabbix监控avamar【一】

    1 介绍 avamar是dell的一款数据备份产品 用于公司私有云平台虚拟机备份 虽然不是与业务直接相关 关注度不是特别高 也正因为如此偶尔出现备份失败问题不能及时发现 所以要加入公司的智慧运维系统 以zabbix为底层开发 2 选择模式
  • 在Linux系统中部署zabbix监控服务

    今天学习安装zabbix 以下参考网上各种安装方法及自己做实验 一 zabbix简介 zabbix z biks 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix能监视各种网络参数 保证服务器系统
  • zabbix配置文件(zabbix_agentd.conf、zabbix_server.conf)

    文章目录 一 etc zabbix zabbix server conf 二 etc zabbix zabbix agentd conf 一 etc zabbix zabbix server conf 基本配置段 ListenPort 10
  • 部署篇-Zabbix中文乱码字符集的修正

    部署zabbix监控后默认是英文 默认不支持中文字符集 切换成中文后会出现以下情况 解决方案 从Window服务器找到相应的字休复制到zabbix Server服务器上 控制面板 字体 选择一种中文字体 建议simkai ttf root
  • Zabbix配置SNMP trap告警的例子

    官方文档 3 SNMP 陷阱 1 安装Trap组件包 yum install y net snmp utils net snmp perl net snmp 2 下载并复制接收Trap脚本 wget https sourceforge ne
  • Zabbix的模板管理与配置

    Zabbix的模板管理与配置 一 查看默认模板的配置项 1 打开客户端信息配置界面 2 选择默认模板的监控项 二 服务端获取客户端的监控项 1 获取客户端系统相关监控项 2 获取客户端硬盘信息等相关监控项 三 创建自定义监控项的key 1
  • Zabbix 服务器未运行:显示的信息可能不是最新的

    所以突然之间 在使用它一周后 我在我的电脑上收到一条错误消息zabbix server gui http localhost zabbix http localhost zabbix 错误说 Zabbix server is not run

随机推荐

  • 如何用PHP解决高并发与大流量问题

    举个例子 高速路口 1秒钟来5部车 每秒通过5部车 高速路口运作正常 突然 这个路口1秒钟只能通过4部车 车流量仍然依旧 结果必定出现大塞车 5条车道忽然变成4条车道的感觉 同理 某一个秒内 20 500个可用连接进程都在满负荷工作中 却仍
  • StrangeIOC中Signal类使用详解

    在讲解Signal类之前 先复习一下dispatch的用法 1 View层调用自身的dispatch view 告知绑定的Mediator层也调用自身的dispatch mediator 2 Mediator层的dispatch media
  • 如何实现在的Windows上运行的Linux程序(附示例代码)

    而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器 这个运行器在用户层实现 原理和Bash On Windows不完全一样 比较接近Linux上的Wine 示例程序完整的代码在github上 地址是 https gith
  • SuperSocket教程六:配置文件启动后使用自己的请求处理

    上一教程虽然实现了配置文件启动 但是发送信息后返回的缺失AppServer的原始信息 而不是我在教程四锁自定义的信息回复 配置文件启动是实现了 接下来做什么修改可以实现自定义的请求处理呢 其实很简单 只是把原来的那些代码换了个位置罢了 这个
  • 机器学习案例3:基于逻辑回归的肿瘤预测

    案例3 基于逻辑回归的肿瘤预测 为什么写本博客 前人种树 后人乘凉 希望自己的学习笔记可以帮助到需要的人 需要的基础 懂不懂原理不重要 本系列的目标是使用python实现机器学习 必须会的东西 python基础 numpy pandas m
  • 阿里云上的gitlab不能使用ssh

    晚上突然发现ssh到gitlab的项目失败 提示 ssh exchange identification read Connection reset by peer fatal Could not read from remote repo
  • 【电路参考】缓启动电路

    一 外部供电直接上电可能导致的问题 1 在热拔插的过程中 两个连接器的机械接触 触点在瞬间会出现弹跳 电源不稳 发生震荡 这期间系统工作可能造成不稳定 2 由于电路中存在滤波或大电解电容 在上电瞬间 会产生较大的脉冲电流 有时候会看到DC接
  • react+antd修改主题色

    第一步 安装需要的插件 npm install react app rewired customize cra babel plugin import less less loader 第二步 修改package json文件 将原本 sc
  • 李沐老师 《动手学深度学习》笔记

    08 线性回归 基础优化算法 文章目录 前言 一 true w和w以及true b和b之间的关系 二 代码实现 前言 这个是我在B站上看李沐老师 动手学深度学习 之后 针对自己不懂和想记录的部分的一个记录 由于本人是刚接触深度学习的小白 所
  • C++基础语法1 break continue floor ceil 简析

    break 用于中断本层的整个循环 continue 用于中断本次循环 并不中断整个循环 而是继续下次循环 for x 0 x lt TEMPLATE X SIZE x for y 0 y lt TEMPLATE Y SIZE y sum
  • Java 中常用的转义字符

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 Java中常用的转义字符 看如下代码 public class ChangeChar public static void main S
  • Ubuntu装系统后重启卡死解决办法(超详细)

    笔者为了装这个Ubuntu可走了不少弯路 想必当你看到我这篇博客时你一定遇到了如下诸多问题的诸多个 笔者全部遇到了 1 Ubuntu装都装不了 第一步加载lougou下面有几个点 红了几个就停下了 从此一直如此 迫不得已强制关机 2 惊险度
  • 你要允许来自未知发布者的此应用对你的设备进行更改吗_物联网改变移动应用开发的4种方式...

    来源 物联之家网 iothome com 转载请注明来源 物联网改变了移动应用程序的开发格局 那么 为物联网开发移动应用程序有何不同 物联网与移动应用程序开发齐头并进 物联网改变了人类与机器的互动方式 甚至改变了机器之间的互动方式 而移动应
  • 【微分方程】微分算子法求微分方程特解

    文章目录 微分算子法 D 求特解 概述 f x f x f x 为
  • MMDetection自定义双主干Transformer模型(一)

    目录 1 添加自定义的主干网络 2 导入写好的主干网络 3 写配置文件来进行实验 基于自己的毕设想法 今天开始研究如何使用MMDetection构建自己的模型 今天的想法是构建如下的双主干网络 主干网络采用Swin Transformer
  • SQL注入类型已经一些小技巧

    目录 类型 1 联合注入 2 报错注入 2 1 floor 2 2 updatexml 2 3 extractvalue 3 bool注入 4 sleep注入 时间盲注 注入的一些小技巧 information schema过滤与无列名注入
  • 【Qt 6.2 参考手册】QT6.2所有模块

    Qt 6 2 所有模块 Qt 6 2 3 参考文档 内容 Qt基础模块 Qt扩展模块 接下来去哪里 所有模块 Qt基础模块 Qt基础模块在所有平台上定义了Qt的基础 它们可在所有受支持的开发平台和经过测试的目标平台上使用 除了测试模块将保持
  • Linux(centOS7)常用命令

    linux常用命令 监控linux系统情况 查看进程 查看占用的端口 服务状态 修改ip 临时修改ip 永久修改ip 查找文件 权限 包 安装图形界面 查看文件 防火墙 文件编辑 脚本 系统 scp传输 系统用户 修改文件sed i wc命
  • PHP问题:Deprecated: Function split() is deprecated in解决方法

    今天在测试php网站程序的时候 用 分割数组的时候突然出现Deprecated Function split is deprecated in 的错误提示 意思就是 函数方法split 已经被弃用了 然后查了下php文档 原来是随着版本的更
  • zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)

    一 环境配置 1 配置zabbix服务端 2 配置监控主机 监控项 监控模板 zabbix配置安装 this page is used to test the proper operation of 疯飙的蜗牛的博客 CSDN博客 二 触发