美文网首页
zabbix 简介

zabbix 简介

作者: xyz098 | 来源:发表于2019-11-29 18:27 被阅读0次
    • 资料
    • 术语
    • 检测分类
    • 触发器表达式
    • 优化建议

    资料

    simple_check

    triggers-functions

    api-host-object

    术语

    • item: 监控项 , 如cpu1分钟的负载

    • application: 应用集,item的集合,如所有cpu相关指标

    • trigger: 触发器,创建item的触发条件,如{10.10.10.1:agent.ping.nodata(1m)}=0 主机1分钟内ping响应结果

    • action: 动作,trigger后操作,可以进行条件筛选发送告警

    • event: 事件,分四类(触发器事件、发现事件、内部事件、自动注册事件)

    • macros:自定义宏,等价于全局变量 Administration → General → Macros{HOST:HOST}

    • trapper:监控类型(item type) ,支持agent发送数据到server

    • aggregate checks: 聚合查询监控项

    • Queue: 队列,查看zabbix堆积情况 Administration → Queue

    • value mappings:值映射,item项返回数字结果人性化展示 (数据库保存还是数字)

      流程 host —— item(application)—— trigger ——action —— user(group) —— media

    zabbix告警流程

    检测分类

    • external checks 外部命令检测

    • simple checks 基本检测

      # 无需客户端,比如探测远程服务器的某些端口是否在监听
      icmpping[<target>,<packets>,<interval>,<size>,<timeout>]
      net.tcp.service[service,<ip>,<port>]
      
    • agent 检测

      # 用户可自定义 key与UserParameters
      # agent配置UserParameter,由agent执行,最大返回512KB
       UserParameter=key[*],command     # *为参数$0-$9
       UserParameter=ping[*],echo $1
       ping[0] – 将一直返回 0
      

    触发器表达式

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

      ⇒ avg(#5) → 五个最新值的平均值
      ⇒ avg(1h) → 一个小时的平均值
      ⇒ avg(1h,1d) → 一天前一个小时的平均值
      
      # 主机最近一分钟平均负载 last(0)当前值
      {192.168.1.11:system.cpu.load[all,avg1].last(0)} > 5
      
      # 同比趋势
      {server:system.cpu.load.avg(1h)}/{server:system.cpu.load.avg(1h,1d)}>2
      
      # Problem: 最近 5 分钟剩余磁盘空间小于 10GB。(异常)
      # Recovery: 最近 10 分钟磁盘空间大于 40GB。(恢复)
      ({TRIGGER.VALUE}=0&{server:vfs.fs.size[/,free].max(5m)}<10G) | ({TRIGGER.VALUE}=1&{server:vfs.fs.size[/,free].min(10m)}<40G)
      
      # 主机最近30分钟超过5次不可到达 
      {192.168.1.11:icmpping.count(30m,0)}>5
      
      # 主机1分钟内ping没响应
      {192.168.1.11:agent.ping.nodata(1m)}=0
      
    • 配置: Administration → General → Macros

      使用: 主机CPU负载触发器

      {192.168.1.11:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}

    • trapper

      配置:Configuration(配置) → Hosts(主机)–> 选择需要配置的 Host—> 点击右上角的”create item(创建监控项)–> 类型选择zabbix trapper

      # 服务端模拟发送
      ./bin/zabbix_sender -z 10.9.4.20 -p 10051 -s "test_01" -k trap -o   'test-trapper hello'
      info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000038"
      

    优化建议

    • 硬件层

      • 操作系统
      • 数据库优化、数据库分离、数据库引擎innodb
    • 维护层:

      • 减少 history 保存时间
      • 减少 item 获取间隔时间
      • 减少不必要的监控项
    • 定时清理

      • zabbix数据库根据时间清理

        # 根据时间戳
        date +%s -d "2019-01-01 00:00:01"
        date -d@1546272001
        
        # 统计某类库表的大小
        SELECT table_name AS "Tables",round(((data_length + index_length)/1024/1024), 2) as "Size in MB" FROM information_schema.TABLES WHERE table_schema = 'zabbix' ORDER BY (data_length + index_length) DESC;
        
        # 时间戳以日期显示
        select *,FROM_UNIXTIME(clock,'%Y-%m-%d %T') as clock from history limit 1\G;
        select *,FROM_UNIXTIME(clock,'%Y-%m-%d %T') as clock from history_uint limit 1\G;
        select *,FROM_UNIXTIME(clock,'%Y-%m-%d %T') as clock from trends limit 1\G;
        select *,FROM_UNIXTIME(clock,'%Y-%m-%d %T') as clock from trends_uint limit 1\G;
        select *,FROM_UNIXTIME(clock,'%Y-%m-%d %T') as clock from history_str limit 1\G;
        
        # 删除优化
        DELETE FROM `history_uint` WHERE `clock` < 1546272001;
        optimize table history_uint;
        delete from history where clock < 1546272001;
        optimize table history;
        DELETE FROM `trends_uint` WHERE `clock` < 1546272001;
        optimize table trends_uint;
        delete from trends where clock < 1546272001;
        optimize table trends;
        
        # 查看进程
        show processlist;
        

    相关文章

      网友评论

          本文标题:zabbix 简介

          本文链接:https://www.haomeiwen.com/subject/bhggwctx.html