天天看点

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

1. zabbix中的各种报警媒介

文章目录

  • 1. zabbix中的各种报警媒介
      • 选择监控项
      • 添加监控项
      • 创建触发器
    • 1.2 自定义邮件报警
    • 1.2 自定义微信报警
    • 1.3 自定义钉钉报警
  • 2. 瑞象云平台
      • 2.1 配置瑞象云集成应用
      • 2.1 安装瑞象云 Agent (需要部署在server端)
      • 2.3 配置瑞象云团队管理:
      • 2.4 配置通知策略 :电话,短信
      • 2.5 配置 告警分派策略
      • 2.6 模拟报警:

选择监控项

监控主机登录用户数量, 当用户登录数量超过5个就进行报警 --system.users.num

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
zabbix-server可验证:
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

添加监控项

(可以把 历史数据保留时长设置的小一些,注意信息类型结合实际)

---- {web01:system.users.num.last()}>5

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

创建触发器

(你可以监控一段时间的平均值,或者最近时刻值)

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

查看监控有没有添加成功:

添加Xshell窗口数量,并验证

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

1.2 自定义邮件报警

创建媒介报警类型:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
这里需要注意的是163邮箱需要开启SMTP服务,才能拿到授权码。默认端口25。其他邮箱同理:

自定义邮件收件人

点击右上角用户头像,到 用户基本资料 下的 报警媒介 下添加Email类型的报警媒介:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

启用触发器的动作

到 配置 选项下的 动作 项中将状态修改为已启用的状态:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

当触发“当前系统用户的登录数”触发器的时候,会向接收邮箱发送消息。这里可以查看已经发送的报警邮件:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

邮箱也会接收到报警消息:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

自定义邮件 报警信息

默认的邮件报警信息除了宏部分,其它均为英文且比较乱。所以,为了方便查看,需要自定义邮件报警信息:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

自定义邮件报警信息模板:

服务器: {HOST.NAME}发生:{EVENT.NAME}故障!
{
告警主机: {HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
           

替换:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

当触发报警后,可以在 动作日志 中查看到发送给接收邮件的报警信息:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

检查邮箱后发现邮箱也收到了对应的报警信息:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

1.2 自定义微信报警

首先注册号企业微信:https://work.weixin.qq.com/

企业ID号码: xxxxxxx

AgentId: xxxxxxx

Secret: xxxxxxx

写一个微信发送消息的脚本,这里需要用到企业微信。

需要修改企业微信ID、机器人密码和应用ID,这些在企业微信管理都可以看到。

#导入相关模块
import requests, os, sys, logging, json
#定义日志的格式
logging.basicConfig(
    filename=os.path.join('/tmp', 'weixin.log'),
    format='%(asctime)s - %(name)s - %(levelname)s - %(module)s:%(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    level=logging.DEBUG,
)
#企业微信id
corpid = ''
#机器人密码
appsecret = ''
# 应用id
agentid = 1
# 获取accesstoken
token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettonken?corpid' + corpid + '&corpsecret=' + appsecret
req = requests.get(token_url)
accesstoken = req.json()['access_token']
# 发送消息
send_msg_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser = sys.argv[1]
subject = sys.argv[2]
message = subject + '\n\n' + sys.argv[3]
params = {
    'touser': touser,
    'msgtype': 'text',
    'agentid': agentid,
    'text': {
        'content': message
    },
    'safe': 0
}

req = requests.post(send_msg_url, data=json.dumps(params))
#把结果记录的日志中
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
           

#查看脚本应该放到哪个位置

[[email protected] ~]#

grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts

测试脚本开始向微信发送报警信息:

[[email protected] ~]#

cd /usr/lib/zabbix/alertscripts/

[[email protected] alertscripts]#

python weixin.py 用户名 标题 报警内容

------> 查看消息

报错:

NO module named requests

系统缺失python代码需要加载的模块信息

解决: 

yum install python pip

pip install requests==version (可以安装指定版本)

创建微信报警媒介(指定路径下的脚本名称要写对):

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

—>右上角---->报警媒介---->指定收件人:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

添加完成后启用微信报警媒介,可以暂时把Email报警媒介停用:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
多开几个窗口 出发报警 测试

1.3 自定义钉钉报警

自定义机器人----->添加工作群组

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
自定义机器人
关键字:zabbix
wehook:xxx
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

准备连dingding信平台实现报警脚本到该目录下

/usr/local/zabbix/lib/zabbix/alertscripts

进入到/usr/local/zabbix/alertscripts下编写dingding.py脚本(脚本中包含钉钉机器人的webhook值):

[[email protected] ~]#

cd /usr/local/zabbix/lib/zabbix/alertscripts

[[email protected] alertscripts]#

cat dingding.py

#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook=""      #这里改为自己创建的机器人的webhook的值
user=sys.argv[1]
text=sys.argv[3] + "\n\n" + sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/local/zabbix/log/dingding.log"):
    f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/log/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close() 
           
: set ff 查看脚本格式 (doc ./不能直接执行no such of dirctor 需要指定python解释器)

赋予脚本执行权限

[[email protected] alertscripts]#

chmod +x dingding.py

创建上面脚本中的日志路径(脚本日志属组可能是root,需要该为zabbix,不会报错)

[[email protected] alertscripts]#

mkdir /usr/local/zabbix/log/

[[email protected] alertscripts]# t

ouch /usr/local/zabbix/log/dingding.log

[[email protected] alertscripts]#

chown zabbix.zabbix /usr/local/zabbix/log/dingding.log

手动测试脚本是否可以正常发送消息

这个条文档记录的测试信息,忽略

[[email protected] alertscripts]#

./dingding.py 电话号码 zabbix_test "测试下"

(关键子一定要有)

1.管理—>报警媒介类型—>创建报警媒介:

脚本传参的信息: zabbix宏 — 内置变量

{ALERT.SENDTO}       接收信息人员地址
	{ALERT.SUBJECT}      发送信息标题情况
	{ALERT.MESSAGE}      发送消息内容情况
           
  1. 添加收件人

    小人头 — 报警媒介 — 添加邮件报警收件人信息

    79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

2. 瑞象云平台

https://newuser.aiops.com

2.1 配置瑞象云集成应用

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

2.1 安装瑞象云 Agent (需要部署在server端)

1、切换到zabbix脚本目录 (如何查看zabbix脚本目录):

cd /usr/lib/zabbix/alertscripts/

2、获取Cloud Alert Agent包:

wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz

3、解压、安装。

tar -xzf ca_zabbix_release-2.1.0.tar.gz

cd cloudalert/bin

bash install.sh d64977fe-d360-4244-a2fa-5d0361f642ea #执行自己的apikey

注:1、在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码。

  2、我这里的zabbix管理地址是: http://10.0.0.71/zabbix/

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
安装成功:
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

2.3 配置瑞象云团队管理:

需要先邀请成员才能给成员发送报警

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

2.4 配置通知策略 :电话,短信

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

2.5 配置 告警分派策略

指定报警信息给成员中的谁发送:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

2.6 模拟报警:

79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台
79. Zabbix4.0------ 邮箱报警 |微信报警 | 钉钉报警 | 第三方报警平台1. zabbix中的各种报警媒介2. 瑞象云平台

继续阅读