zabbix 告警小试
zabbix 告警小试
1. 实验内容简述
本次实验,旨在通过zabbix监控,实现对告警信息的实时通知,主要用到了zabbix中的item、trigger、action、user、user group、media等内容,通过item监控特定的对象,当item返回值满足一定条件的时候,触发触发器的action动作,通知相关的用户。实现的功能有以下几点:
- 监控的内容是什么
- 在什么样的情况下属于异常,需要通知
- 以什么样的方式通知用户,怎么通知
- 通知用户的内容是什么
2. 实验步骤
2.1 创建触发器
在之前创建的item上,直接创建一个触发器,使用的item是nginx.active,当该item获取的最后的值,大于1时,就产生trigger,所以条件就是大于1或者是大于等于2.
在这里选择的是configuration-template-trigger,直接在模板里面创建触发器,关联该模板的所有主机就都会有这个触发器了。输入触发器的名称、该触发器触发之后的服务级别(未定义、information、warnning、average、high、disater),输入触发器的表达式,可以直接通过表达式向导编写,选择所需要的item,然后获取该item的指定规则的值,条件是该值大于1即可。生成的结果就是:
{Template Nginx Status:nginx.status[8080,active].last()}>=2
添加完成后就可以开始添加action了。
2.2 创建告警介质media
默认的告警介质有Email、jabber和SMS,实际上还可以通过脚本的形式,生成告警介质,在这里为了模拟介质,我们选择将告警内容输入到一个文本文件中,假装是通过短信接口发送出去了。首先是要找到zabbix-server上关于告警脚本的配置路径,也就是alertscripts的路径,在zabbix-server的配置文件中:
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
所以我们需要将编写的发送脚本,放在该目录下,而且还是能有可执行权限的shell脚本,这里我们写的很简单,对于发送短信,一般都是有三个参数,收件人、收件主题和收件内容。所以我们这里面模拟的时候也是需要三个参数,然后将内容写入到一个临时文件中。具体脚本如下:
#/bin/bash
ALERT_TO=$1
ALERT_TITLE=$2
ALERT_MESSAGE_BODY=$3
echo "-------A NEW MESSAGE-------">> /tmp/sms.log
echo "$ALERT_TO" >> /tmp/sms.log
echo "$ALERT_TITLE" >> /tmp/sms.log
echo "$ALERT_MESSAGE_BODY" >> /tmp/sms.log
在这脚本中,先获取三个变量参数值,然后将对应的内容写入到临时文件中。在这个地方有个小坑,就是message字段是换行的多个字段,如果直接用变量写入文件,只写入了最后一行,其他的内容内容都丢了,这是shell脚本应该注意的地方。其中这三个参数分别代表着收件人联系方式、收件主题和收件内容。
脚本编写完成之后,要添加可执行权限,一会是zabbix用户去调用该脚本写入,所以这涉及到权限问题,如果是先执行了脚本,生成了/tmp/sms.log文件,则当出现告警的时候,zabbix用户是无法写入的,因为该文件的属主是root,其他用户无法写入,需要重新修改权限。所以建议是删除该文件,由zabbix用户去创建。
脚本编写完成之后,就需要去web页面上进行配置了,主要是配置告警媒介media,在administration-media type中,我们选择新建,然后选择scripts,输入不带路径的脚本名称,因为脚本就存放在默认路径下。在这里,升级改版之后,需要输入参数,因为我们的脚本有三个参数,所以我们在这里也需要输入三个参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE}.这三个参数,分别对应的内容是这样的:
{ALERT.SENDTO}:对应的是在user中用户的联系方式,可以是电话号码、Email-address等
{ALERT.SUBJECT}:对应的是在action中的subject主题
{ALERT.MESSAGE}:对应的是在action中的message信息,包含operation和recovery operation
2.3 创建用户和用户组
用户和用户组,是用来接收告警信息的,所以需要创建,在trigger触发器中,可以选择将告警信息内容,发送给用户组或单独用户,比较关键的一点时,对于主机或主机组的权限,只能授权给用户组,不能单独授权给某一个用户,所以需要创建用户组。在这里我们创建的用户组是test,用户是zhangsan。在用户的media配置中,可以选择刚刚创建的sms媒介media。然后就完成用户和用户组的创建了。
2.4 创建action
创建action,就是将之前创建的触发器,和用户关联起来,并设置通知用户的内容,配置路径在configuration-action,选择新建action。
创建action的时候,需要选定条件,也就是触发器的名称。这里我们选择的是刚才创建的触发器,Template Nginx Status: Nginx Active link overload
创建了action之后,需要在operation中进行操作了,编写告警内容信息,以及发送对象。对于告警信息,默认给了一个模板,如果技术比较好,完全可以自己写,这里我就完全是照搬了。选择operation的操作内容,选择操作方式和发送方式,send message。
配置完成之后,就可以通过来模拟触发器告警,来收信息了。
2.5 模拟告警
在这里,通过对nginx的多次访问,就能触发告警,在出发告警之后,在monitor中的problem,就能直接看到告警的概要,包含告警内容、操作action方式,是否发送成功等,点击前面的时间,可以看到详细的事件信息。
同时,通过查看记录文件,可以发现,已经有了告警通知消息。
以上就完成了告警的简单配置。
zabbix 告警小试的更多相关文章
- CMDB机柜平台结合zabbix告警展示
前段时间看了刘天斯老师的机柜展示平台,非常绚丽,而且有大屏显示的话也是能够体现运维价值的.刚好最近自己也在协助朋友做一个开源的CMDB平台,这里就说下我们CMDB平台的一些数据: 开源项目地址:Git ...
- 通过微信服务号推送Zabbix告警
近期看到一篇通过微信实现Zabbix告警的文章,但实践时发现,无法成功发送消息. 分析原因,应该是微信公众平台加强了登录验证,在登录时会需要管理员进行扫描二维码操作才能成功登陆后台: 而之前文章中的A ...
- 一个简单好用的zabbix告警信息发送工具
之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛 ...
- [置顶]
个人微信号发送zabbix告警信息
之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛 ...
- [置顶]
一个简单好用的zabbix告警信息发送工具
之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛 ...
- zabbix告警邮件美化
为了更好的用户体验,我们需要尽量美化我们的输出内容,尽量做到整齐划一,让人看了会有很舒服的感觉, 这个好像和苹果的产品一样,给人一种美感让人感觉非常享受. 一般我们的zabbix告警邮件就是纯文字,建 ...
- zabbix告警邮件、短信发送错误快速排查方法
zabbix告警邮件.短信发送错误快速排查方法 背景 zabbix告警邮件.短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢? 在我看来,最快的角度就是判断这个告警邮 ...
- zabbix告警模板
邮件 webhook模板 ZABBIX告警通知 告警状态:[{TRIGGER.STATUS}] 告警主机:[{HOST.NAME}] 主机地址:[{HOST.IP}] 告警时间:[{EVENT.DAT ...
- zabbix 告警实践分享 一键实现zabbix 电话、邮件、微信告警
众所周知Zabbix 是一款用来监控IT基础设施的监控套件,同时也具有很多方便运维人员使用的优秀功能,如:支持多条件告警,支持多种告警方式,支持多组模板.支持模板继承,因此在众多的开源运维监控软件中独 ...
随机推荐
- 学习笔记—XML
XML XML简介 XML指可扩展标记语言(EXtensible Markup Language),是一种标记语言. XML是一种灵活的语言,标签没有被预定义,需要自行定义标签. 通常,XML被用于信 ...
- SAP MM '独立/集中'等于1的MTS物料MRP运行后合并需求触发PR
SAP MM '独立/集中'等于1的MTS物料MRP运行后合并需求触发PR Test data 独立与集中: 1 (仅个别需求) STO 1, 这是一个公司间STO,从国内生产基本转入香港贸易公司, ...
- NextCloud前端支持播放mov文件
默认情况下,NextCloud网盘是不支持播放 .mov文件的. 通过修改前端代码就可以实现. 如下 1 找到 apps/files_videoplayer/js/viewer.js 文件 2 搜索 ...
- SQL 获取时间段内日期列表
declare @start date,@end date; set @start='2010-01-01'; set @end='2010-02-01'; --获取时间段内日期列表 select [ ...
- Windows Cluster 在群集管理器下 集群或可用性组 都不显示的问题
作为一个IT成员,特别是偏支持的.很多时候就是和各种异常打交道,总会碰到一些奇奇怪怪的问题.很多时候,可能是一个小小的异常都需要花费很长时间去解决. SQL Server AlwaysOn 是建立在W ...
- mysql字段约束
为了确保数据的完整性和唯⼀性,关系型数 据库通过约束机制来实现目. 一. unique 唯一性约束 : 值不可重复: 二. not null 非空约束 : 值不可为空: 三. def ...
- jQuery列表选择美化插件uichoose
项目主页:http://www.jq22.com/jquery-info12073 演示地址:http://www.jq22.com/yanshi12073
- windows10滑轮bug
今天我突然发现我一点也忍受不了在UWP应用.wi10窗口.设置等界面无法使用鼠标滑轮了.这个bug已经困扰了我差不多一年了,从买了这台笔记本就开始了.而且这个问题在中间的某一次升级系统后,也修复了,但 ...
- 在Windows 10 x64 编译ReactOS-0.4.5源码并在VMare中运行
1.首先下载ReactOS源码(版本是0.4.5,最新版本0.4.9暂没有编译),然后下载RosBe(版本是2.1.6) 2.将下载好的ReactOS源码包放到指定磁盘的文件夹中,目录路径为英文(重要 ...
- 【MySQL大系】《Mysql集群架构》
原文地址(微信):[技术文章]<Mysql集群架构> 本文地址:http://www.cnblogs.com/aiweixiao/p/7258444.html 点击关注微信公众号 1.主要 ...