zabbix现存问题状态统计分析

背景:
1、公司已经对服务器加上了zabbix监控,后续将继续接入服务器进行监控
2、zabbix dashboard上问题太细,领导想做个汇总展示
3、zabbix接入服务器根据业务,由不同的同事负责

目标:
1、展示zabbix 现存问题的统计
2、按负责人分类展示zabbix 现存问题的统计
3、按问题严重性分类展示zabbix 现存问题的统计

探索:
1、对数据库进行厘清,理清楚各表之间的关系,关联字段等
2、接入数据库监控,进行zabbix可视化展示

准备:
1、数据库结构和关系
涉及的表很多,主要提一下
rights表关联主机和用户表rights.id=hstgrp.groupid,rights.groupid=usrgrp.usrgrpid
functions表关problem和items:functions.triggerid=problem.objectid
items关联主机items.hostid=hosts.hostid
problems表关联triggers表triggerid=problem.objectid
主要的表结构
2、大致厘清之后,写sql。
这里使用创建视图的方式,这样zabbix 执行sql的时候需要敲入一大串代码
本想视图中加入负责人,但是查询有点问题,所以分成两大sql
a:问题汇总.sql (也可以将下面的多个负责人的数据进行相加,不过笔者偷懒,不再测试方法了)
包含所有负责人的,所以此此处没有负责人这个字段

CREATE VIEW `zabbix`.`problems_all` AS
    SELECT DISTINCT
        MIN(`t`.`datetime2`) AS `alert_time`,
        `t`.`ip` AS `ip`,
        `t`.`hostname` AS `hostname`,
        GROUP_CONCAT(`t`.`groupname`
            SEPARATOR ',') AS `groupname`,
        `t`.`problem` AS `problem`,
        `t`.`severity` AS `severity`
    FROM
        (SELECT 
            `a`.`name` AS `problem`,
                `a`.`severity` AS `severity`,
                FROM_UNIXTIME(`a`.`clock`) AS `datetime2`,
                `a`.`objectid` AS `objectid`,
                `b`.`itemid` AS `itemid`,
                `c`.`hostid` AS `hostid`,
                `d`.`ip` AS `ip`,
                `e`.`name` AS `hostname`,
                `h`.`name` AS `groupname`
        FROM
            (((((((`zabbix`.`problem` `a`
        JOIN `zabbix`.`functions` `b`)
        JOIN `zabbix`.`items` `c`)
        JOIN `zabbix`.`interface` `d`)
        JOIN `zabbix`.`hosts` `e`)
        JOIN `zabbix`.`triggers` `f
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值