设为首页 收藏本站
查看: 1585|回复: 0

[经验分享] 自动化运维工具之Zabbix触发器_action动作及模板应用(二)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-27 11:02:10 | 显示全部楼层 |阅读模式
一个完善的监控系统需要一定的报警机制,什么时候告警警需要触发器,怎么告警,在什么情况下如何告警取决于action动作:创建触发器(trigger)
  **"监控项"仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,"触发器"正是用于为监控项所收集的数据定义阈值。

  **每个触发器仅能关联至一个监控项,但可以为一个监控项或同时使用多个触发器:
    事实上,为一个监控项定义多个具有不用阈值的触发器,可以实现不用级别的报警功能

  **一个触发器由一个表达式构成,它定义监控项所采取的数据的一个阈值。

  **一旦某次采集的数据超出了此触发器定义的阈值,触发器状态将会转换为"Problem";而当采取的数据再次回归至合理范围内时,其状态将重新返回到"OK"

触发器表达式
**触发器表达式高度灵活,可以创建出非常复杂的测试条件
**基本的触发器表达式如下所示:
1
{<server>:<key>.<function>(<parameter>)}<operator><constant>



-->server : 主机名称

-->key : 主机上关系的相应监控项的key;
-->funtion:评估采集到的数据是否合理范围内时所使用的函数,其评估过程可以根据采集的数据、当前时间及其它因素进行;
-->目前,触发器所支持的函数有avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等
-->parameter:函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用"#"作为前缀,则表示为最近几次的取值,如果sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;
-->此外,avg、count、last、min和max还支持使用第二个参数,用于完成时间限定;例如,max(1h,7d)将返回一周之前的最大值;

operator:表达式所支持的运算符及其功能如下所示:
PRIORITY
OPERATOR
DEFINITION
1
/
Division
2
*
Multiplication
3
-
Arithmetical minus
4
+
Arithmetical plus
5
<
Less than. The operator is defined as: A<B <=> (A<=B-0.000001)
6
>
More than. The operator is defined as: A>B <=> (A<=B+0.000001)
7
#
Not equal. The operator is defined as:A#B <=>(A<=B-0.000001)|(A>=B+0.000001)
8
=
Is equal. The operator is defined as:A=B <=>(A<=B-0.000001)|(A>=B+0.000001)
9
&
Logical AND
10
|
Logical OR

触发器表达式例子:
1
{www.samlee.com:system.cpu.load[all,avg1].last(0)}>3



1
2
-->表示主机
-->对last函数来说,last(0)相当于last(#1)




创建触发器:
创建触发器各种可用的属性说明:
-->Name: 触发器名称,可以使用宏,如$1、$2、....、$9等;
-->Expression:逻辑表达式,用于评估触发器状态;

-->Multiple PROBLEM events generation:依赖于当前触发器的"Problem"状态生成其他事件;
-->Description: 当前触发器的描述信息;
-->URL:在screen的"Status of Trigger"中显示的内容的链接;
-->Severity: 当前触发器的严重级别;
-->Enabled:是否启用当前触发器;



下面我们通过实例演示应用Zabbix触发器:
(1)创建触发器trigger:入站流量过大
wKioL1gPBWmBpXmqAAFInueuGUI180.jpg

(2)触发器触发后执行动作(action)及媒介定义
-->在配置好监控项和触发器之后,一旦正常工作中的某触发器状态发生改变,一般意味着有异常情况发生,此时通常需要采取一定动作(action),如告警或者执行远程命令等。
-->并非所有的触发器状态发生改变的场景都需要对其进行干预,如转变为"OK"状态时,相应地,如果触发器的状态转变为"Problem",就需要告知所有关心其相关监控指标的人员了。
-->"通知(notification)"是zabbix中最常用的"动作"之一。

实现zabbix通知功能,一般需要两个步骤:
-->定义所需的"媒介(media)": 通常指发送信息的途径,如邮件、Jabber和SMS等;
-->配置一个"动作(action)": 发送信息至某"媒介";
动作由"条件"和"操作"组成,它的逻辑为当"条件"满足时,就执行相应的"操作"
"发送通知"和"执行远程命令"是两个最基本的操作

zabbix事件(event)
Zabbix的时间是基于时间戳进行标记,它们是采取动作(action)如发送邮件通知的基础,其主要来源于三种途径:
-->触发器(trigger)事件:触发器状态每次发生改变,都会生成相应"事件",且通常包含详细信息,如发生的时间及新的状态等;

-->发现(discovery)事件: zabbix会周期期性扫描"网络发现规则"中指定的IP范围,一旦发现主机或服务,就会生成一个或几个发现时间;

-->发现事件有8类: Service Up、Service Down、Host Up、Host Down、Service Discovered、Service Lost、Host Discovered和Host Lost;

-->主动agent自动发现事件(也称为"自动注册事件"): 当一个此前状态未知的主动agent发起检测请求时会生成此举事件;

因此,在Zabbix的通知机制也称做基于事件的通知机制,也只有理解了事件本身,才能定制符合需求的通知系统。

告警媒介类型(Media type)
在zabbix中,媒介指发送通知信息的通道,其通常有以下几种类型:
-->E-mail: 电子邮件,即通知邮件的方式传送通知信息;
-->SMS: 手机短信,即通过连接至zabbix服务器GSM Modem发送通知;
-->Jabber: jabber消息;Jabber是一个开发的、基于XML的协议,能够实现基于Internet或LAN的即时通讯服务;
-->自定义的通知脚本:以上方式不能满足需求时,Zabbix可以调用位于其配置文件"AlertScriptPath"变量所定义的脚本查找目录中的脚本来完成通知功能;

自定义媒介类型,如下所示: wKioL1gPElCz7YeCAAB-9ks6ohw122.jpg


创建zabbix用户组及用户:
(1)创建组:Managers CTOs zabbix_user
wKiom1gPF3rDu0LrAABof9iSYEg550.jpg
wKioL1gPF3uDatk1AABkqZ8eX0E754.jpg
wKiom1gPF3vQu2h8AACBDib6xQA777.jpg

(2)创建用户:tom隶属CTOs 修改Admin媒介为loclhost_mailservice

wKioL1gPKJjz4I2IAACref2w9Tg025.jpg
wKiom1gPKJiRtXQEAAC4EoW9b8M933.jpg
wKioL1gPKJiT36vKAADXdYAV2po549.jpg
wKiom1gPKJnDdzceAACw1B4YKpc680.jpg

定义动作action,实现第1步和第2步实现先远程执行命令重启服务,第3步至最后一步发送信息至相关人员通知:
wKioL1gPNqrD9cfMAADXOro-8yA842.jpg
wKiom1gPNqujvMmYAADN767oZEQ310.jpg
wKiom1gPNqzRwQ6HAADnqnvHMU4064.jpg
wKioL1gPNq3xJ3M_AADrpAD61cs631.jpg
wKioL1gPNq6ygImlAACUVfC3tCM210.jpg
wKiom1gPNq-z9uaFAACF-itNf9A600.jpg
以上图为测试条件

最后测试如下:
启动postfix服务然后就是等待那个阈值出现,你可以在shell里面watch -n 1 'ifconfig eth0',如果想快点直接测试lo,通过ab压力测试,那个流量刚刚的,或者直接看screen,当我们定义了阈值,阈值设定较低 虚实线图下面:
wKioL1gP-fmCStbHAACRv9Je8Lk552.jpg

首先zabbix主页会有action成功,在命令行就可以看到自己的mail了

wKiom1gP-v_BKZ5YAADRz7Wyoyc328.jpg


定义Zabbix模板快速部署主机监控
(1)定义zabbix模板:
wKiom1gQFUKCMFO3AACddRyDHMY859.jpg
wKioL1gQFUKR-QzfAABxAsgwbe0022.jpg

(2)定义监控项item及Graph
wKioL1gQGLXwqitEAADT2ajHciA670.jpg
wKiom1gQGLXwzbAhAADU02KEJMk874.jpg
wKioL1gQGLWRqEOHAAC4x-lDEoQ785.jpg
wKiom1gQG13giq0UAADW0SHCEdc210.jpg
wKioL1gQG12AFvC3AADXLyidpNo081.jpg
wKiom1gQG12T4p6oAAC0eOt8z6I895.jpg

(3)定义监控Screens

wKiom1gQHJKx6dx-AABfoAoXEoc376.jpg
wKiom1gQHJTTKRJlAACfltofzBc382.jpg
(4)定义模板触发器

wKioL1gQIBvh4RT4AACsrrvPnnM345.jpg

(5)定义动作action指定触发器都执行
wKiom1gQII6wugxuAACZy7vIWkM376.jpg
实现一个action为多个触发器报警。
zabbix模板定义完成。

最后添加监控主机,调用模板快速部署:
wKiom1gQJJGjwLaSAADYw2rpAvY371.jpg
wKioL1gQJJKhoXmSAABdPv5gaHs540.jpg
使用模板快速部署完成。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-292001-1-1.html 上篇帖子: 自动化运维工具之Zabbix服务器监控基本应用详解(一) 下篇帖子: zabbix3.x监控windows主机简单笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表