实现zabbix的报警功能--触发器---报警动作
报警的方式:
- 页面提示信息报警
- 页面声音提示报警
- 邮件信息报警
- 微信报警
- 电话报警
触发器是通过表达式来实现报警的
页面信息提示报警,和声音报警示例:
这里我就自定义一个检查nginx进 程的key进行设置。详细步骤在zabbix自定义监控,这里我就直接写
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf UserParameter=ps_status[*],ps -ef|grep -c $1 [root@web01 ~]# systemctl restart zabbix-agent.service 去zabbix服务端检查 [root@zabbix ~]# zabbix_get -s 172.16.1.7 -p10050 -k ps_status[nginx] 4
报警提示音设置:
邮件信息报警示例:
添加键值和监控项触发器,图形都是一样的,这里就直接写报警的实现方法
先将配置,动作,默认的动作开启
二:其次管理---报警媒介--进行创建报警媒介
这里就用qq邮箱来收邮件。要先开通好
剩下就是把该配置的地方配置好
可以添加多个报警人
看看成效
------------------------------------------------------------------------------------
特别强调关于报警功能相关动作:
如果不使用默认动作,如何创建动作?
配置动作前要先配置好操作
消息内容如何换成中文显示:这里面要加入宏,去zabbix官网找相关信息,(一般不改)
比如:都换成
报警主机: {HOST.NAME1}
报警服务: {ITEM.NAME1}
报警键值: {ITEM.KEY1}:{KEY1.VALUE1}
报警级别: {TRIGGER.SEVERITY}
新的触发条件这里不要选,新的触发条件这里不要选,新的触发条件这里不要选
-------------------------------------------------------------------------------------
微信报警示例:
定义发微信的配置:
要求一:需要企业微信
要求二:获取企业ID
要求三:自建小程序
- AgentID:xxx
- secret:xxxx
要求四:别写python脚本(微信报警脚本)
- 脚本放置位置
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts
weixin.py(文章下方可以下载)
#!/usr/bin/env python # -*- coding: utf-8 -*- # date: 2020-01-24 # comment: zabbix接入微信报警脚本 import requests import sys import os import json import logging logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s', datefmt = '%a, %d %b %Y %H:%M:%S', filename = os.path.join('/data/zabbix','weixin.log'), filemode = 'a') corpid = 'xx' # 企业ID appsecret = 'xx' # secret agentid = 1000002 # AgentID # 获取accesstoken token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret req = requests.get(token_url) accesstoken = req.json()['access_token'] # 发送消息 msgsend_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken touser = sys.argv[1] subject = sys.argv[2] # toparty='3|4|5|6' message = sys.argv[2] + "\n\n" +sys.argv[3] params = { "touser": touser, # "toparty": toparty, "msgtype": "text", "agentid": agentid, "text": { "content": message }, "safe": 0 } req = requests.post(msgsend_url, data=json.dumps(params)) logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
给脚本添加x权限
[root@Kk weixin]# ll total 4 -rw-r--r-- 1 root root 1328 Jan 24 12:51 weixin.py [root@Kk weixin]# chmod +x weixin.py [root@Kk weixin]# ll total 4 -rwxr-xr-x 1 root root 1328 Jan 24 12:51 weixin.py
- 执行脚本报错问题:
- 01.问题:No module named requests
- 安装python程序不能用yum要用pip
[root@Kk weixin]# yum -y install python-pip [root@Kk weixin]# pip -y install requests
传参的三个宏:
- {ALERT.SENDTO}----代表信息给谁
- {ALERT.SUBJECT}----表示标题
- {ALERT.MESSAGE}----信息
定义收微信的配置:
给脚本里写的日志文件的目录修改属主为zabbix用户,不然收不到微信
电话报警,需要收费的第三方软件,以后遇到在研究
报警信息处理思路:
- 看到报警信息定位主机信息
- 找到主机信息定位报警原因
- 查看对应键值解决相应问题

评论