当前位置: 首页 > news >正文

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

一、环境配置

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 osheaders = {'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).contentif __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 osheaders = {'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).contentif __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/shredisclient="/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=$1local s_port=$2for ser in "${sentinel_addr[@]}"dolocal 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" ]thenbreakfidone
}function UpdateRedisMasterAddr(){local s_addr=$1local s_port=$2for ser in "${sentinel_addr[@]}"dolocal 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" ]thenbreakfidone
}#{"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 ]
thenecho "Parameter Erorr!"echo "eg: $0 NOTIFYTYPE  LEVEN SUBTYPE DEPARTMENT KEY STATE TITLE DETAIL"exit
fidate=`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.logsentinel_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 钉钉微信企微告警(动作操作消息内容模板)

一、环境配置 1、配置zabbix服务端 2、配置监控主机&监控项&监控模板 zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客 二、触发器 触发器的本质就是一个条件判断&#xff0c;对于不同的监控数据来说&#xff0c;我…...

阿里云国际站云服务器数据备份方法有哪些?

阿里云国际站云服务器是一种根据云计算技术的虚拟服务器&#xff0c;它能够经过互联网提供计算资源和服务。在运用云服务器的过程中&#xff0c;数据备份是非常重要的一个环节。本文将介绍云服务器数据备份的办法&#xff0c;包含手动备份、主动备份和数据同步。 一、手动备份 …...

游戏笔记本电脑可以进行 3D 建模和渲染吗?有哪些优势与缺点?

3D 建模和渲染是创建令人惊叹的数字艺术、动画和游戏体验的最流行和最广泛使用的工具之一。随着技术的进步&#xff0c;对运行这些模型的强大计算机的需求呈指数级增长。对于那些寻求强大机器来处理 3D 建模任务的人来说&#xff0c;游戏笔记本电脑已成为一个可行的选择。 游戏…...

【AI】推理系统和推理引擎的整体架构

本文主要是对 B 站 Up 主 ZOMI酱 推理系统系列视频 的理解&#xff0c;可以认为是重点笔记。 一、深度学习模型的全生命周期 相信很多人和我一样&#xff0c;刚看到深度学习模型中的推理系统或推理引擎时是一头雾水&#xff0c;因为学习 DL 时通常关注于模型的设计和训练。下图…...

k8s集群中流水线部署微服务

k8s集群中流水线发布微服务 一、流水线部署微服务部署流程 二、微服务发布流程 pipeline {agent {node {label maven}}parameters {string(name: PROJECT_VERSION, defaultValue: v1.0, description: )string(name: PROJECT_NAME, defaultValue: , description: )}environment…...

Socks5代理与网络安全:保护您的隐私与数据

在今天数字化的世界中&#xff0c;隐私和网络安全已经成为至关重要的话题。Socks5代理作为一种强大的工具&#xff0c;不仅为用户提供了隐私保护&#xff0c;还在网络安全和爬虫领域发挥着关键作用。本文将深入探讨Socks5代理的工作原理、其在网络安全中的应用&#xff0c;以及…...

2024年山东高企申报注意事项

1、分析企业技术及财务报表 分析财务数据及企业主营产品和技术点。用以确定申报材料的撰写方向。一般耗时1周左右。&#xff08;纺织厂、服装厂等传统行业面临申报中的面临研发人员比例不达标&#xff0c;研发费用不达标&#xff0c;高新技术产品比例不达标等难题。&#xff09…...

npm publish包报404,is not in the npm registry错误

1. 指定发布目标2. 登录npm&#xff0c;使用登录名发布包&#xff0c;包名命名原则“登录名/包名”&#xff0c;或 “包名” 3. 删除某一个版本npm unpublish pvfhv/eslint-config-prettier1.0.1 --force 删除后的版本不能重复使用&#xff0c;正式解释&#xff1a; Unfortun…...

pytest-基础

一.使用pytest,默认的测试用例的规则以及基础应用 1.模块名字必须已test_开头或者_test结尾 2.测试类必须以Test开头,并且不能有init方法 3.测试方法必须以test开头 示例代码 test_001.py import pytest class TestCase:def test_case(self):print("执行测试用例&quo…...

在openSUSE上开启护眼模式

色温 色温是用来衡量光源色彩时所用到的一个概念&#xff0c;单位为开尔文。热黑体辐射体与光源温度相同时的温度&#xff0c;就是该光源的色温。 显而易见&#xff0c;色温越低时&#xff0c;光源看起来越黄&#xff1b;色温越高时&#xff0c;光源看起来越蓝。下面是一些常见…...

vue基础知识十:Vue中组件和插件有什么区别?

一、组件是什么 回顾以前对组件的定义&#xff1a; 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念&#xff08;组件&#xff09;来实现开发的模式&#xff0c;在Vue中每一个.vue文件都可以视为一个组件 组件的优势 降低整个系统的耦合度&#xff0c;在保持接口不…...

Arthas是一个Java诊断工具 的入门使用

Arthas是一个Java诊断工具&#xff0c;可以帮助开发人员在运行时快速诊断和解决线上应用故障。 以下是Arthas的入门步骤&#xff1a; 安装Arthas 你可以在Arthas Github页面中找到安装指南&#xff0c;根据操作系统选择相应的安装方式。 启动Arthas 在安装完成后&#xff…...

数据结构——排序算法——桶排序

桶排序的思想是&#xff1a; 1.将区间划分为 n 个相同大小的子区间&#xff0c;每个子区间称为一个桶 2.遍历数组&#xff0c;将每个数字装入桶中 3.对每个桶内的数字单独排序&#xff0c;这里需要采用其他排序算法&#xff0c;如插入、归并、快排等 4.最后按照顺序将所有桶内的…...

Kafka消息发送可靠性分析

Apache Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者和生产者之间的所有实时数据。Kafka的主要特性包括&#xff1a;高吞吐量、可扩展性、持久性、分布式、可容错等。这些特性使得Kafka成为大规模数据处理和实时数据分析的理想选择。然而&#xf…...

如何将一个字符串转换为驼峰命名法(camel case)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 思路⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领…...

牛客网项目-第一章-笔记

牛客网项目-第一章 环境配置 java maven idea Spring Intializr 搜索jar包的网站&#xff1a;https://mvnrepository.com/ https://start.spring.io/ 缺少的aop包&#xff0c;手动在pom.xml中加入依赖 <dependency><groupId>org.springframework.boot</gro…...

CISP汇总

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 本文用来整理相关CISP知识笔记 0x01 汇总...

KALILINUX MSF中kiwi(mimikatz)模块的使用

一、简介&#xff1a; kiwi模块&#xff1a;   mimikatz模块已经合并为kiwi模块&#xff1b;使用kiwi模块需要system权限&#xff0c;所以我们在使用该模块之前需要将当前MSF中的shell提升为system。 二、前权&#xff1a; 提权到system权限&#xff1a; 1.1 提到system有…...

hive 中正则表表达式使用

一 概念 概念&#xff1a;正则表达式&#xff08;Regular Expression&#xff09;&#xff0c;又称规则表达式&#xff0c;是记录文本规则的代码。通常被用来检索、替换那些符合某个模式(规则)的文本。 特性&#xff1a;最初是由Unix中的工具软件&#xff08;例如sed和grep&a…...

mssql ,数据库还原BAK命令行方式

如果数据库存在&#xff0c;离线断开 ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE --断开其他用户与数据库的连接正式开始还原数据库&#xff1a; USE MASTER --这里注意要使用MASTER&#xff0c;以免出现待还原库被占用的情况 RESTORE DATABASE [数据库名…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...