技术标签: Zabbix & Promethues 运维
原创作者:运维工程师 谢晋
Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。
取消注释AlertScriptsPath
# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A
AlertScriptsPath=/usr/lib/zabbix/alertscripts
创建脚本,定义的脚本存放路径下创建用来推送告警消息的脚本,使用自己的webhook
# cd /usr/lib/zabbix/alertscripts
# vim 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 = " https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=73fa9ce4-d341-46aa-896b-87681af91673" #这个是企业微信机器人生成的webhook地址,修改为你的即可。
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[1]
msg(text)
赋予脚本执行权限,因为调用必须有写权限
# chmod +x wechat.py
在linux测试脚本
# python wechat.py 测试
【企业微信反馈测试成功】
-=【告警啦】=-
告警主机:{
HOSTNAME1}
主机名称:{
HOST.NAME}
主机地址:{
HOST.IP}
告警时间:{
EVENT.DATE} {
EVENT.TIME}
告警等级:{
TRIGGER.SEVERITY}
告警信息:{
TRIGGER.NAME}
问题详情:{
ITEM.NAME}:{
ITEM.VALUE}
当前状态:{
TRIGGER.STATUS}:{
ITEM.VALUE1}
事件ID:{
EVENT.ID}
Problem recovery内容:
-=【告警取消啦】=-
恢复主机:{
HOSTNAME1}
主机名称:{
HOST.NAME}
主机地址:{
HOST.IP}
恢复时间:{
EVENT.DATE} {
EVENT.TIME}
问题详情:{
ITEM.NAME}:{
ITEM.VALUE}
当前状态:{
TRIGGER.STATUS}:{
ITEM.VALUE1}
事件ID:{
EVENT.ID}
设置动作:
设置操作:
第一项操作
第二项操作:
第三项更新操作(可忽略)
启用媒体报警用户
【选择用户-账户】
【报警媒介-参数-更新】
测试告警推送结果
【测试成功】
问题汇总
1.测试微信脚本提示Requests报错:
注意:提示Requests报错,请安装相关模块
安装Requests
1、安装epel扩展源:“sudo yum install epel-release”
2、安装python-pip:“sudo yum install python-pip”
3、升级pip:“sudo pip install --upgrade pip”
4、安装requests包:“sudo pip install requests”
2.执行python解释器报错:
sh: /usr/lib/zabbix/alertscripts/dingding.py: /usr/bin/python: 解释器错误: 没有那个文件或目录装了Python3但是不需要输入python就指向python2.7,也就是没有改变python的指向
进入/usr/bin目录,查看目录下的python链接(我这儿python3的软连接是红色,说明软连接没有建成功,不管)发现,python2指向python2.7,然后打开/usr/bin/yum(yum的配置文件)文件,命令:vim /usr/bin/yum
可以看到首行的注释,是/usr/bin/python,但是现在/usr/bin目录下没有python,所以我们要将/usr/bin下的python2重命名为python,这样这个yum的文件就可以找到了。但是要注意,在重命名python2的时候,应该先备份一下,使用命令:
mv python2 python2.bak
然后再将python2重命名为python正常。
文章浏览阅读1.2k次,点赞2次,收藏2次。梦开始的地方!补之前答应的Python环境配置,在Gitbook上进行修改了一下。当成自己的小笔记趴,侵权即删!安装Python想要进行Python开发,首先需要下载和配置Python解释器。下载Python访问Python官网: https://www.python.org/点击downloads按钮,在下拉框中选择系统类型(windows/Mac OS/Linux等)选择下载最新版本的Python安装Python双击下载好的Python安装包勾选左下角Add Python 3_pycharm需要的环境配置
文章浏览阅读1k次,点赞2次,收藏11次。随着社会的发展,计算机的优势和普及使得音乐播放器管理系统的开发成为必需。音乐播放器管理系统主要是借助计算机,通过对首页、音乐推荐、付费音乐、论坛信息、个人中心、后台管理等信息进行管理。减少管理员的工作,同时也方便广大用户对个人所需音乐的及时查询以及管理。音乐播放器管理系统的开发过程中,采用B / S架构,主要使用Java技术进行开发,结合最新流行的SpringMVC和Mybatis的SSM框架。中间件服务器是Tomcat服务器,使用Mysql数据库和Eclipse开发环境。该音乐播放器管理系统包括用户、会_本实验以“音乐点播管理系统”为例,针对用户的特点,确定系统的功能: (1)用户管理:
文章浏览阅读773次,点赞9次,收藏10次。每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)[外链图片转存中…(img-YSVRtu3l-1712091133557)]
文章浏览阅读98次。1. Slice order为[1:2:number_of_slices 2:2:number_of_slices],所以这里填入1:2:35 2:2:35。2. number of slices从radiant里面自己数。_slice timing
文章浏览阅读4.1k次,点赞6次,收藏8次。今天主要介绍一下通过HttpURLConnection获取网络图片。通过点击button来获取图片内容。→布局文件:
文章浏览阅读153次。Oracle启动服务、启动监听。_oracle11g 启动服务
文章浏览阅读4k次,点赞2次,收藏6次。valueOf() 方法有以下几种不同形式:valueOf(boolean b):返回 boolean 参数的字符串表示形式。.valueOf(char c):返回 char 参数的字符串表示形式。valueOf(char[] data):返回 char 数组参数的字符串表示形式。valueOf(char[] data, int offset, int count):返回 char 数组参..._java valueof
文章浏览阅读1.4w次。装黑苹果_惠普g4 远景论坛
文章浏览阅读3.8k次。电梯直达huafen799504432新学乍练发表于 2020-12-18 14:24:39来自:HUAWEI Mate 30 5G最新回复 2020-12-19 09:36:25Screenshot_20201218_142336_com.huawei.allianceapp.jpg (149.85 KB, 下载次数: 1)2020-12-18 14:24 上传孤乃江东九牧渐入佳境发表于 202..._华为鸿蒙系统内测审核要多少天
文章浏览阅读1.3k次。sudo -imv /etc/apt/sources.list /etc/apt/sources.list_bak1vim /etc/apt/sources.list写入## Uncomment the following two lines to fetch updated software from the networkdeb http://old-releases.ubuntu.com/ubuntu lucid main restricteddeb-src http://old-rel_e: package 'flex' has no installation candidate
文章浏览阅读1.7k次。顾名思义,Web Server 就是提供 Web 服务的 Server。比如我们访问 http://,其实就是在使用百度的 Server 提供的服务。一般来说, Web Server 对外提供的是 HTTP 服务(也可以是其他服务),这就是为什么我们的网址都以「http://」开头。_web服务器
文章浏览阅读1.1w次,点赞4次,收藏9次。Android Seekbar的onProgressChanged监听回调之fromUser参数解析(源码层次)在Android开发中,Seekbar是我们高频率使用的几个控件之一,不管是使用原生系统的样式,还是根据各种五花八门的需求来定制自己项目中的SeekBar(在这里吐槽下项目经理),相信大家都做过,那么闲话不说进入正题。 SeekBar的继承关系为: 有些相对比较麻烦的需求要重写Se_onprogresschanged