Linux:Day47(下) zabbix配置入门

回顾: 

    zabbix组件:
    zabbix-server
    zabbix-database
    zabbix-web
    zabbix-agent
    zabbix-proxy
  zabbix逻辑组件:
    主机组、主机
    item(监控项)、appliction(应用)
    graph(图形)
    trigger(触发器)
      event(事件)
    action
      notice
      command
    media
    users(meida)
  监控系统:
    数据采集、数据存储、报警、数据可视化
  zabbix:
    database --> zabbix-server (zabbix_server.conf) --> zabbix-web(LAMP) --> http://zabbix-web-server/zabbix
    zabbix-agent (zabbix-agent)

  添加主机

    agent: 161
    nms: 162 (trap)  

  添加主机参数:

    Host name:与zabbix-agent配置文件中的主机名一致,不然当agent发送过来信息时无法识别是哪台agent。

    viaible name:显示在列表中的名字,直观好理解就可以。

    groups in groups:将主机添加至组;一个主机添加多个组。

    Agent interface:批定采集信息时Agent所在位置,可以使用IP也可使用域名。

    SNMP interface:通过snmp采集被监控主机数据;

    Description:描述信息;

  Linux主机想要支持snmp接口,需要安装net-snmp程序;

  

  添加item

    监控项(item)是Zabbix服务器用于监控一个特定对象上的一个特定指标,并负责针对其收集相关的监控数据。

    每一个Item都拥有相应的“类型(type)”

      如"zabbix agent"、"snmp"、"External check”、"IPMI agent"、"SSH agent"、"JMX agent”等

    Zabbix服务器会使用相应类型的协议或机制同被监控端通信

    item key

      每一个item都有其专用的“key”

      Zabbix服务器在与被监控端通信时就使用相应的协议或机制去询问被监控端这个Key的值,被监控端则调用此key对应的监控脚本获取数据并返回给服务器端;

      对于每一个item,Zabbix服务器还定义了怎么存储这个item的数据、数据采集的频率及历史数据的保存时长等;

      多个item还可归类为一个由“application”定义的逻辑组

    Octal:八进制

    Decimal:十进制

    Hexadecimal:十六进制

    历史数据:采样生成的数据
    历史趋势数据:每小时的最大值、最小值、平均值、统计

    As is: 不做任何处理
      Delta(speed per second): (value - prev_value)/(time - prev_time)
        10: 12000, 20: 13000
    Delta(simple change):(value - prev_value)

  添加Graphs 

    Graph type:

      Normal:线状图

      Stacked:面积图

      Pie:饼图

      Exploded:爆炸饼图

    Show legend:显示图例

    Show working time:显示工作时间,整个背景图白的是工作时间,灰的为非工作时间。

    Show triggers:显示触发器,在图例下面会显示触发器内容,在图上会有一条水平线。

    Y axis MIN value:Y轴最小值

      Calculated:自动计算

      Fixed:固定

      Item:最后一次获取值做为最小值

    Items:

      Draw style:定义图形类型,和Graph type效果一样,但种类更多,这是单独针对某一个items设定的;

        Line:线状图

        Filled region:面积图

        Bold line:精线图

        Dot:点状图

        Dashed line:虚线图

        Gradient line:渐近色面积图

      Y axis side:Y轴在哪一侧

        Right:右侧

        Left:左侧

  添加触发器

    触发器是用来定义合理阈值,定义阈值的主要作用的是产生事件,并在必要时执行报警操作。

    “监控项”仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送告警信息,“触发器”正是用于为监控项所收集的数据定义阈值;

    每一个触发器仅能关联至一个监控项,但可以为一个监控项同时使用多个触发器;

      事实上,为一个监控项定义多个具有不同阈值的触发器,可以实现不同级别的报警功能;

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

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

    触发器表达式高度灵活,可以以之创建出非常复杂的测试条件;

    基本的触发器表达式格式如下所示:

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

        server:主机名称;

        key:主机上关联的相应监控项的key;

        function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采集的数据、当前时间及其它因素进行;

          目前,触发器所支持的函数有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)将返回一周之前的最大值;

    在一个网络中,主机的可用性之间可能存在依赖关系:

      例如,当某网关主机不可用时,其背后的所有主机都无法正常访问;

      如果所有主机都配置了触发器并定义了相关的通知功能,相关人员将会接收到许多告警信息,这既不利于快速定位问题,也会浪费资源;

      正确定义的触发器依赖关系可以避免类似情况的发生,它将使用通知 机制仅发送最根本问题相关的告警;

    注意:目前zabbix不能够直接定义主机间的依赖关系,其依赖关系仅能通过触发器来定义;

    触发器等级用于标示事件的严重性:

      zabbix支持如下表所示的等级:

      

    Trigger:
      名称中可以使用宏:
        {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.CONN}, {HOST.DNS}

    Multiple PROBLEM events generation:产生多次事件,实现同一问题如果不处理的话将会产生多次告警;

    Severity:设置问题级别。

  Action有两类:
    send message
    command

  添加host group, host, item, graph, trigger, action

  总结:
    一次监控的配置过程:host groups --> host --> appliction --> item --> trigger (一个item可以多个trigger) --> action (send message, command)

    send message:
      media type
      zabbix user: 使用可用media type接收消息

  添加主机到Zabbix server:

    discovery,auto_registrion

    low level discovery

  模板:

    template:

      item,application,trigger,graph,action

  主机组:

    机器用途、系统版本、应用程序、地址位置、业务单元

  item:

    默认的items有多种类型:

      zabbix-agent:

        工作模式:passive,active

      网卡流量相关:

        net.if.in[if,<mode>]

          if:接口,如eth0

          mode:bytes,packets,errors,dropped

        net.if.out[if,<mode>]

        net.if.total[if.<mode>]

      端口相关:

        net.tcp.listen[port]

        net.tcp.port[<ip>,port]

        net.tcp.service[service,<ip>,<port>]

        net.udp.listen[port]

      进程相关:

        kernel.maxfiles

        kernel.maxproc

      CPU相关:

        system.cpu.intr

        system.cpu.load[<cpu>,<mode>]

        system.cpu.num[<type>]

        system.cpu.switches

        system.cpu.util[<cpu>,<type>,<mode>]

      磁盘IO或文件系统相关:

        vfs.dev.read[<device>,<type>,<mode>]

        vfs.dev.write[<device>,<type>,<mode>]

        vfs.fs.inode[fs,<mode>]

  用户自定义item:

    关键:选取一个惟一的key;

    命令:收集数据的命令或脚本;

  Trigger:

    状态:

      OK

      PROBLEM:有事件发生;

    zabbix server每次接收到Items的新数据时,就会对item当前采样值进行判断,即与gtriiger的表达式进行比较;

    一个trigger只能属于一个item,但一个item可以有多个trigger;

  Action:

    触发条件一般为事件:

      Trigger events:OK ---> PROBLEM

      Discovery events:zabbix的network discovery工作时发现主机; 

      Auto registration events:主动模式的agent注册时产生的事件;

      Internal events:item变成不再支持,或Trigger变成未知状态;

  Operations的功能:

    动作:

      send message

      Remote command

    配置send message:

      (1) 定义好Media;

      (2) 定义好用户;

      (3) 配置要发送的信息;

     

原文地址:https://www.cnblogs.com/sq5288/p/11531540.html