首页 > 代码库 > Zabbix(二)--第一台主机监控及触发器

Zabbix(二)--第一台主机监控及触发器

0x01 Create Host

安装完zabbix后从哪里入手?无非就是要添加监控目标,那本文就从添加监控一个主机入手,了解zabbix的各个基本功能

添加主机在“Configuration”选项卡上的“Hosts”,可以看到下图默认已经有一个监控目标了,接下来就从这里展开,描述item,trigger,graphs等使用

技术分享

首先,要先了解item是监控目标主机上的各个小项目(比如内存、cpu的使用率),多个item可以分组归类成application。当item超出设定的阈值就要做出某种行动(告警通知),trigger(触发器)定义当item超出范围时,要采取什么行动。

1、新增一台被监控主机。

        configuration—>Hosts—>Create host(右上角)

        技术分享

        完成添加后,可以发现新增的host各个指标(application/items/triggers/graphs)都显示为0

        技术分享

2、Items

       点击“items”进入新的界面中右上角可以创建新的item,item定义了单个主机中具体的监控对象。

       技术分享

补充:key可以接受一个或多个参数,zabbix有很多内置预设的key
        上述页面可以创建新的Application(作为item的分组归类)

        出现如下问题检查Hostname是否一致,当不是监控本机时IP地址,agent配置文件是否为默认的127.0.0.1

        技术分享

3、Graphs

        针对刚刚添加的item设置图像属性,描述如何展示数据。可以将多个item显示在同一张图上

        技术分享

       

        如果有一个场景,我们将CPU相关的几个item显示在一张图上,将Memory相关的显示在另一张图上,如何才能同时查看两张图片呢。

        这时候Configuration—>Screens新建即可。先定义好几行几列的一个布局。       

        技术分享

        插入要显示的图片(Graph name),并调整相关的属性,如高度宽度、对齐等

        技术分享

 

0x02  触发器

        当完成一个主机的某项监控之后,可以对这个监控功能进行扩展,定义一个范围,当超过这个范围的时候视为异常,给予警示。触发器能产生事件,每一个触发器仅能关联一个监控对象,但一个监控对象可以使用多个触发器(定义不同阈值,实现不同级别的报警)

        触发器表达式形式如下:

        {<server>:<key>.<function>(<parameter>)}<operator><constant>

        {主机:key.函数(参数)}<表达式>常数

        zabbix触发器表达式详解

zabbix仅支持触发器间的依赖关系。比如一个网络设备下接许多主机,如果这个网络设备故障,会导致所有主机都视为异常而报警,但真实情况可能仅仅是这个父节点的问题。

技术分享

触发器产生事件(触发器可以产生事件,也可以产生发现事件),产生了事件通常要做出响应,一般是在满足特定条件下通过各种途径(媒介)进行发送消息或者执行远程命令的操作。

        zabbix action报警配置

触发器使用示例(假设场景:对内存的使用率监控,当到达一定阈值的时候触发)

1、新增item

        技术分享

2、新增graph

        技术分享

3、新增触发器

        按照上面的描述,先写一个触发器的表达式,其实就是将key获取到的数据,再用function处理一下,然后经过操作符的比较,看看是否能够达到。触发器仅仅是引起一个事件,没有进行任何动作。新建动作在configuration->action。

        技术分享

4、新增Action

        前面说到,通知首先要满足条件,然后再进行操作。在Action的页面上可以看到Conditions(条件)和Operations(操作)

        技术分享

        条件里面可以定义多个条件ABC……,然后通过逻辑运算,比如:条件A或(与)条件B,满足条件之后再执行操作。默认的是当不在维修状态并且触发器的事件为“PROBLEM”时作为可执行操作的条件。

        这里对三个选项卡的相关属性进行定义

         1、Action 只需要填写名称
         2、Conditions 保持默认
         3、Operations定义远程执行命令

        技术分享

        除了所执行命令是否有权限外,在zabbix客户配置文件需要开启对远程命令的支持,编辑 zabbix_agentd.conf 修改 EnableRemoteCommands = 1

5、模拟触发条件

        正常情况下所绘制的统计图如下:

        技术分享

        只要内存使用率高于1.5G就满足触发条件了,这里用到一个简单易用的内存压力测试工具memtester。

        [root@localhost ~]# memtester 400M  #给内存增加400M,可以看到效果,Monitoring里面的Triggers和Events都有警告提示,图像上的实时显示也已经到达了触发阈值。在Events的状态里面还可以看到Action是否执行OK。

        技术分享

最后检验下命令是否执行成功,我们是输出执行命令的当前时间(请忽略那个warning错别字)

[root@localhost ~]# cat /tmp/zabbixtestmem
Thu Sep 15 00:45:09 CST 2016 : warming
Thu Sep 15 00:46:09 CST 2016 : warming
Thu Sep 15 00:47:09 CST 2016 : warming
Thu Sep 15 00:48:09 CST 2016 : warming
Thu Sep 15 00:49:09 CST 2016 : warming
[root@localhost ~]# date
Thu Sep 15 00:53:34 CST 2016

可以看到,上述的命令只执行了五次,每60s一次,五次过后不再执行操作。

既然命令都能够正常执行了,那还有什么触发操作是不能完成的。

Zabbix(二)--第一台主机监控及触发器