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


    0x01 Create Host

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

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

    image

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

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

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

            无标题2

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

            image

    2、Items

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

           无标题2

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

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

            image

    3、Graphs

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

            image

           

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

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

            image

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

            image

    0x02  触发器

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

            触发器表达式形式如下:

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

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

            zabbix触发器表达式详解

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

    image

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

            zabbix action报警配置

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

    1、新增item

            image

    2、新增graph

            image

    3、新增触发器

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

            image

    4、新增Action

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

            image

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

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

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

            image

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

    5、模拟触发条件

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

            image

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

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

            image

    最后检验下命令是否执行成功,我们是输出执行命令的当前时间(请忽略那个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一次,五次过后不再执行操作。

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

  • 相关阅读:
    Codeforces Round #443 (Div. 2)
    Matplotlib学习---用seaborn画联合分布图(joint plot)
    Matplotlib学习---用matplotlib和sklearn画拟合线(line of best fit)
    Matplotlib学习---用mplot3d画莫比乌斯环(Mobius strip)
    Matplotlib学习---用matplotlib画误差线(errorbar)
    Matplotlib里颜色,标记,线条类型参数的选择(colors, markers, line styles)
    Matplotlib学习---用matplotlib画阶梯图(step plot)
    Matplotlib学习---用matplotlib画箱线图(boxplot)
    Matplotlib学习---用seaborn画相关矩阵图(pair plot)
    Matplotlib学习---用matplotlib画面积图(area chart)
  • 原文地址:https://www.cnblogs.com/otherside/p/5874157.html
Copyright © 2020-2023  润新知