Zabbix定义报警机制

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. 编写邮件脚本

[[email protected] ~]# cd /usr/lib/zabbix/alertscripts/
[[email protected] 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做为报警邮件

[[email protected] 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 = ‘[email protected]‘  # 发送方邮箱
Sender_passwd = ‘rxxx6‘  # 填入发送方邮箱的授权码
Send_to = ‘[email protected]‘  # 收件人邮箱               #这个可以通过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‘))

[[email protected] alertscripts]# 

3. 测试脚本

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

4. 微信报警脚本

[[email protected] 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
[[email protected] 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}

恢复操作

原文地址:https://www.cnblogs.com/supery007/p/9054018.html

时间: 2024-08-09 08:52:01

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

在LAMP架构中部署zabbix监控系统及邮件报警机制

初步了解zabbix: Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.被监控对象只要支持SNMP协议或者运行zabbix_agents代理程序即可.agent端:主机通过安装agent方式采集数据.server端:通过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再通过php+apache在web前端展示. SNMP:

监控软件Zabbix之配置QQ邮箱报警机制

上篇讲解了Zabbix的安装与配置,本篇继续讲解如何配置邮件报警机制:本篇我就在此前zabbix服务端和客户端都已经配置好的基础上进行试验:在监控主机上进行配置: 1.使用yum安装mailx邮箱服务: * yum install mailx -y 2.安装完后在末行加入以下配置: * vim /etc/mail.rc #注意网易,QQ邮箱需要开启客户端授权码进行第三方登录 set [email protected] set smtp=smtp.qq.com set [email protect

Zabbix部署、监测及邮件报警机制(实战!)

Zabbix部署 实验环境: CentOS 7-2:192.168.18.147(监测端:部署安装zabbix) CentOS 7-3:192.168.18.128(被监测端) 监测端操作: [[email protected] ~]# systemctl stop firewalld.service #关闭防火墙功能 [[email protected] ~]# systemctl disable firewalld.service #开机禁用防火墙功能 Removed symlink /et

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

触发器可根据监控项获取到的值来进行一些操作,如监控项获取到的values为0,触发器可判断为正常,如果获取到了1,就触发报警. 定义报警方式比较简单,但是用shell脚本实现起来,总是有格式问题,所以我用python语言写了简单的程序[发邮件,发到微信号上],zabbix运行python程序时,传入几个参数,即可根据参数内容定义发送的介质. 定义监控项参考,此文使用上篇文章环境来做操作:https://www.cnblogs.com/xiaodai12138/p/10159217.html 对目

zabbix监控——zabbix邮件报警配置

前面带着大家从搭建zabbix服务器开始一直到触发器设计完毕,这一系统本身已经可以运作起来了,只是需要有一个便捷的渠道及时告诉我们运维人员去处理一些存在问题,这里就需要我们去配置一下zabbix所提供的报警机制,zabbix的报警支持报警升级机制,这对我们运维人员来说是非常有用的,我们在让zabbix通知我们相关人员的时候就可以做一个简单的规划了,比如说前5次报警直接通知运维工程师,如果5次报警后报警问题没有得到修复,第6次报警就直接通知运维主管:或者我们可以让zabbix第一步执行对应脚本进行

监控报警开发之zabbix语音电话报警方案联想

前言: 我相信大家的公司都是有noc的成员,noc是在做什么的,现在基本定义为盯着监控,严重的告警会给你打电话,催你解决,并把这些事情定期做总结. 一般这种的工作都是指派外包人员做的. 我现在已经开发了一套报警的平台接口,供应公司api层面的邮件接口调用,其实他现在面向的最大的客户还是zabbix,不知道最近抽什么风,邮件的接收量比上个月都了2w封,现在已经到9w了. 有朋友说,为何不做一些修剪,因公司现在用的zabbix1.8 ,而且二次开发的度有些大,避免不必要的错误,尽量都是在外围层面逛游

zabbix 邮件报警 -- sendmail

用了几个邮件报警软件,感觉还是sendmail及时.稳定. 一.zabbix server服务器上配置: 1.1 发送邮件脚本的存放路径: 1 2 3 [[email protected]_server etc]# cat zabbix_server.conf | grep alertscripts  # AlertScriptsPath=${datadir}/zabbix/alertscripts  AlertScriptsPath=/usr/local/zabbix/share/zabbix

Zabbix邮件报警配置

一.安装sendmail或者postfix(安装一种即可) yum install sendmail                #安装 service sendmail start              #启动 chkconfig sendmail on                #设置开机启动 或者 yum install postfix service postfix start chkconfig postfix on 二.安装邮件发送工具mailx yum install m

zabbix 邮件报警的配置

一.安装以及配置邮件服务 1.查看是否已经安装该服务 rpm -qa | grep mailx    //如果已经安装则无需再安装 2.安装 yum install mailx 3.修改以下配置文件 vim /etc/mail.rc 添加如下内容: set [email protected] smtp=smtp.qq.com               //填写自己邮箱的地址 set smtp-auth-user=用户名  smtp-auth-password=密码     //邮箱的用户名以及