1. 修改zabbix配置文件

#取消注释或添加一行
cat -n /etc/zabbix/zabbix_server.conf |grep --color=auto "AlertScriptsPath"
484 ### Option: AlertScriptsPath
490 # AlertScriptsPath=${datadir}/zabbix/alertscripts
492 AlertScriptsPath=/usr/lib/zabbix/alertscripts

2. 编写邮件脚本

[root@db01 ~]# cd /usr/lib/zabbix/alertscripts/
[root@db01 alertscripts]# ll
total 16
-rwxr-xr-x. 1 root root 1113 May 17 13:59 email_monitor.py
-rwxr-xr-x. 1 zabbix zabbix 1586 May 13 23:41 send_mail.py
-rwxr-xr-x. 1 root root 1307 May 14 04:54 send_mail.py.bak
-rw-r--r--. 1 root root 186 May 14 07:02 test.py

由于国外邮件测试过程颇为坎坷,就用到万能的outlook做为报警邮件

[root@db01 alertscripts]# cat email_monitor.py
#!/bin/env python
# coding:utf-8 import sys
from smtplib import SMTP as SMTP
from email.mime.text import MIMEText Email_sender = 'monxxx@outlook.com' # 发送方邮箱
Sender_passwd = 'rxxx6' # 填入发送方邮箱的授权码
Send_to = '158xxx3@163.com' # 收件人邮箱 #这个可以通过zabbix传参进来,不过考虑到以后如果有多人写列表池比较方便就没有用zabbix传邮箱地址方式
SMTP_HOST = "smtp-mail.outlook.com"
SMTP_PORT = 587 def Email_monitor(subject,content):
msg_from = Email_sender
passwd = Sender_passwd
msg_to = Send_to
#print(type(content),content,'#######')
msg = MIMEText(content) # 正文
msg['Subject'] = subject # 主题
msg['From'] = msg_from
msg['To'] = msg_to s = SMTP(host=SMTP_HOST, port=SMTP_PORT) # 邮件服务器及端口号
s.starttls()
s.login(msg_from, passwd)
s.sendmail(msg_from, msg_to, msg.as_string())
s.quit() if __name__ == '__main__':
try:
mailto_list = sys.argv[1].split(';') # 第一个参数是zabbix传的发送给谁(接受邮箱账号),上面说了这个没有用到,写死了邮件接收账号
sub = sys.argv[2] # 第二个参数是zabbix传的主题信息
content = sys.argv[3] # 第三个参数是zabbix传的报警内容(后面会贴上报警内容,及恢复内容)
Email_monitor(sub, content)
print("发送成功".decode('utf-8')) # python2版本打印会出现乱码
except Exception as e:
print("发送失败".decode('utf-8')) [root@db01 alertscripts]#

3. 测试脚本

python email_monitor.py  bc  python邮件测试发送-003 邮件内容233333

4. 微信报警脚本

[root@db01 alertscripts]# cat send_mail.py
#!/bin/env python
# coding:utf-8 import requests
import json
import sys def get_access_token():
"""
获取微信全局接口的凭证(默认有效期俩个小时)
如果不每天请求次数过多, 通过设置缓存即可
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
"""
result = requests.get(
url="https://api.weixin.qq.com/cgi-bin/token",
params={
"grant_type": "client_credential",
"appid": "wx2499da7621f818e8",
"secret": "6239e3dfc5af686777ea40b9f3df5f48",
}
).json() if result.get("access_token"):
access_token = result.get('access_token')
else:
access_token = None
return access_token def sendmsg(openid, msg):
# openid: 关注者的微信号
access_token = get_access_token() body = {
"touser": openid,
"msgtype": "text",
"text": {
"content": msg
}
}
response = requests.post(
url="https://api.weixin.qq.com/cgi-bin/message/custom/send",
params={
'access_token': access_token
},
data=bytes(json.dumps(body, ensure_ascii=False))
)
# 这里可根据回执code进行判定是否发送成功(也可以根据code根据错误信息)
result = response.json()
print(result) if __name__ == '__main__': try:
mailto_list = sys.argv[1].split(';')
sub = sys.argv[2]
content = sys.argv[3]
print(mailto_list,sub,content)
sendmsg('oYm3A06plEcQCItTxAFgoh18E-7M', content)
except:
pass
[root@db01 alertscripts]#

#晚上再登录已经登录不上去163了就不截图了

5. Zabbix上配置

这里笔者就不读写了,直接传送门:http://blog.51cto.com/jinlong/2051106

6. 报警操作及恢复操作(记得再动作里配置)

接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}

报警操作

接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}

恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}

恢复操作

Zabbix定义报警机制的更多相关文章

  1. zabbix添加邮件报警机制

    zabbix添加邮件报警机制 作者:尹正杰 还记得之前跟大家聊过的一个如何监控一个目录的话题吗?我们虽然监控出来数据了,也有数据了,但是,只是监控也没有用啊~因为我们不能24小时盯着屏幕然后 出了事情 ...

  2. zabbix 定义触发器,并使用邮件,微信消息报警。

    触发器可根据监控项获取到的值来进行一些操作,如监控项获取到的values为0,触发器可判断为正常,如果获取到了1,就触发报警. 定义报警方式比较简单,但是用shell脚本实现起来,总是有格式问题,所以 ...

  3. 02.Zabbix⾃定义监控项

    1.zabbix⾃定义监控初试 如何获取系统中想监控对象的值,获取后⼜如何将该值传递给Zabbix-Server 1.1.监控系统中的对象 #(系统监控命令 + awk + 筛选条件 = 监控的状态值 ...

  4. Zabbix邮件报警-->Script

    Version:3.0.1 邮件报警有两种media 1.Email zabbix发送报警邮件到指定smtp服务器(使用系统自带的sendmail,发送邮箱是zabbix服务器的本地邮箱账号) 再由s ...

  5. zabbix系列 ~ 报警模式

    一 简介:聊聊zabbix的报警方式二 报警方式 邮件,短信,钉钉,微信三 准备    需要预选准备好对应报警方式的脚本四 web端设置  1 设置报警方式 2 设置报警触发器    1 选择报警信息 ...

  6. zabbix发送报警的脚本

    zabbix报警媒介:自定义脚本Custom alertscripts 邮件报警准备工作:安装sendEmail zabbix-server 的 配置文件 /etc/zabbix/zabbix_ser ...

  7. Zabbix邮件报警-->Email

    Version:3.0.1 邮件报警有两种media 1.Email zabbix发送报警邮件到指定smtp服务器(使用系统自带的sendmail,发送邮箱是zabbix服务器的本地邮箱账号) 再由s ...

  8. linux中Zabbix邮件报警设置配置步骤

    使用外部邮箱账号发送报警邮件设置 配置Zabbix服务端外部邮箱 vi /etc/mail.rc #编辑,添加以下信息 set from=xxx@163.com smtp=smtp.163.com s ...

  9. zabbix邮箱报警设置&问题汇总

    zabbix邮件报警部署! Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常,通过查看Zabbix监控服务器,可以了解服务器的运行状态是否正常,运维人员不会时 ...

随机推荐

  1. NOIP2017 宝藏 题解报告【状压dp】

    题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是 ...

  2. windows2016上如何通过攻击ETERNALBLUE获得meterpreter反弹

    windows2016上如何通过攻击ETERNALBLUE获得meterpreter反弹 译:by  backlion 0x00前言 当微软发布MS17-010漏洞的补丁时,该漏洞影响的范围是从Win ...

  3. word----遇到问题-----word中插入的图片无法左对齐----格式按钮为灰色

    当我们在用word时,有时要插入图片,却发现,插入的图片只在中间位置,不能拖到左边,这时怎么办呢 主要是图层的高低原因导致的不能拖动. 这个时候我们只需要设置一下图片的图层类型即可. 对着图片右键在设 ...

  4. bzoj4010: [HNOI2015]菜肴制作(拓扑排序+贪心+堆)

    这题不是求最小字典序...撕烤了半个小时才发现不对劲T T 这题是能让小的尽量前就尽量前,无论字典序...比如1能在2前面就一定要在2前面... 显然是要先拓扑排序,让小的尽量前转化成让大的尽量往后丢 ...

  5. 解析C#彩色图像灰度化算法的实现代码详解

    http://www.jb51.net/article/37067.htm public static Bitmap MakeGrayscale(Bitmap original)        {   ...

  6. Spring MVC @PathVariable注解

    下面用代码来演示@PathVariable传参方式 @RequestMapping("/user/{id}") public String test(@PathVariable(& ...

  7. 2018-2019 ACM-ICPC 徐州区域赛 部分题解

    题目链接:2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest A. Rikka with Minimum Spanning Trees 题意: 给出一个随 ...

  8. php开启压缩gzip

    php服务的开启压缩,节省带宽 看是否开启压缩的网站 http://www.cnblogs.com/GaZeon/p/5421906.html 找到php.ini,修改下面的 ,重启php-fpm z ...

  9. array_diff、array_diff_key、array_diff_ukey、array_diff_assoc、array_diff_uassoc 的用法

    <?php // array_diff* 系列的函数都返回关联数组// array_diff* 系列函数返回数组的差集(返回在第一个参数中, 但不在其他参数中的元素) $array1 = [ ' ...

  10. JSP2 特性

    JSP2 新特性 1.直接配置 JSP 属性 2.表达式语言 3.简化的自定义标签 API 4.Tag 文件语法 如果要使用 JSP2 语法,web.xml 文件必须使用 Servlet2.4 以上版 ...