zabbix 使用 dataease 做数据大屏

1、环境介绍
操作系统:龙蜥os 7.9
软件:dataease v1.18.18
zabbix: 6.0

2、软件下载
https://community.fit2cloud.com/#/products/dataease/downloads
在这里插入图片描述
3、将软件包上传到服务器并解压缩

tar -xvf dataease-v1.18.18-offline.tar.gz

在这里插入图片描述
4、修改安装配置
在这里插入图片描述
根据自己需求修改配置

5、执行安装脚本
在这里插入图片描述

sh install.sh

在这里插入图片描述
6、登录web ui并修改登录密码
注意:上一步安装成功后会输出默认用户名密码admin dataease
在这里插入图片描述
在这里插入图片描述
登录成功后这样(这是1.0版本,2.0版本整洁比较,但是模版不如1.0版本多)
在这里插入图片描述
7、添加zabbix数据源(以下 数据源、模版、官方展示数据屏全部删除了)
在这里插入图片描述
这里根据自己的zabbix 数据库版本选择,我这里是mysql
在这里插入图片描述
填写数据库信息,验证成功后保存
在这里插入图片描述
8、创建zabbix仪表盘目录
在这里插入图片描述

9、选择zabbix模版
在这里插入图片描述
在这里插入图片描述
选择上一步建立的目录zabbix
在这里插入图片描述
10、创建数据集(这里只写一个示例,最后我将记录全部使用的数据集,sql如果有出入自行修改,没啥字段说明,只能自己看数据库)
在这里插入图片描述
提示建立一个文件夹
在这里插入图片描述
点加号建立数据集,这里选择sql
在这里插入图片描述

SELECT
    CASE
        WHEN p.severity = '0' THEN '未分类'
        WHEN p.severity = '1' THEN '信息'
        WHEN p.severity = '2' THEN '警告'
        WHEN p.severity = '3' THEN '一般严重'
        WHEN p.severity = '4' THEN '严重'
        WHEN p.severity = '5' THEN '灾难级'
    END AS severity_name,
    COUNT(*) AS num
FROM problem p
JOIN (
    SELECT triggerid, MIN(itemid) AS itemid
    FROM functions
    GROUP BY triggerid
) f ON p.objectid=f.triggerid
JOIN items i ON f.itemid=i.itemid
JOIN hosts h ON i.hostid=h.hostid
LEFT JOIN interface inf ON inf.hostid=h.hostid AND inf.main=1
WHERE p.r_clock=0
  AND h.status IN (0,1)
  AND i.status=0
  AND (inf.ip IS NULL OR inf.ip <> '127.0.0.1')
GROUP BY
    CASE
        WHEN p.severity = '0' THEN '未分类'
        WHEN p.severity = '1' THEN '信息'
        WHEN p.severity = '2' THEN '警告'
        WHEN p.severity = '3' THEN '一般严重'
        WHEN p.severity = '4' THEN '严重'
        WHEN p.severity = '5' THEN '灾难级'
    END,
    p.severity
ORDER BY CAST(p.severity AS SIGNED) DESC;

点击运行检查 成功出数据后,保存
在这里插入图片描述
在这里插入图片描述
11、将数据集应用到模版
在这里插入图片描述

在这里插入图片描述
点击更换数据集,拖动数据到维度和指标(维度就是表头,指标就是数,如果维度和指标不对就在数据集中更改,或者转换)
在这里插入图片描述
填好后这里数据就变了 这就是一个区域弄好了,按照这个思路完善其他区域即可(如有需求这里可以编辑图标的样式)
在这里插入图片描述
12、补充数据集(自行调整,有不对的欢迎留言)
主机组数量统计

SELECT COUNT(*) as 主机组数量
FROM hstgrp;

主机数量统计

SELECT
    COUNT(DISTINCT h.hostid) AS 主机数量
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
WHERE
    h.status = 0;

可监控主机数量统计

SELECT
    COUNT(DISTINCT h.hostid) AS 可监控主机
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
JOIN
    interface i ON h.hostid = i.hostid
WHERE
    h.status = 0
    AND i.available = 1;

不可监控主机数量统计

SELECT
    COUNT(DISTINCT h.hostid) AS 不可监控主机
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
JOIN
    interface i ON h.hostid = i.hostid
WHERE
    h.status = 0
    AND i.available = 2;

未知监控主机数量统计

SELECT
    COUNT(DISTINCT h.hostid) AS 未知监控主机
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
JOIN
    interface i ON h.hostid = i.hostid
WHERE
    h.status = 0
    AND i.available = 0;

告警主机数量统计

SELECT
    COUNT(DISTINCT h.hostid) AS 告警主机数量
FROM
    triggers t
JOIN
    problem p ON t.triggerid = p.objectid
JOIN
    functions f ON t.triggerid = f.triggerid
JOIN
    items it ON f.itemid = it.itemid
JOIN
    hosts h ON it.hostid = h.hostid
WHERE
    p.r_eventid IS NULL
    AND h.status = 0;

待处理警告数量统计

SELECT COUNT(DISTINCT p.eventid) AS 待处理警告数
FROM problem p
JOIN triggers t ON p.objectid = t.triggerid
JOIN functions f ON t.triggerid = f.triggerid
JOIN items i ON f.itemid = i.itemid
JOIN hosts h ON i.hostid = h.hostid
WHERE p.r_eventid IS NULL
AND p.acknowledged = 0;

已处理警告数量统计

SELECT COUNT(*) AS 已处理警告数量
FROM (
    SELECT eventid
    FROM problem
    WHERE acknowledged = 1
    UNION ALL
    SELECT eventid
    FROM events
    WHERE severity = 0
) AS resolved_warnings;

主机状态数量统计

SELECT
    '可监控主机' AS 主机状态,
    COUNT(DISTINCT CASE WHEN i.available = 1 THEN h.hostid END) AS 数量
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
JOIN
    interface i ON h.hostid = i.hostid
WHERE
    h.status = 0

UNION ALL

SELECT
    '不可监控主机' AS 主机状态,
    COUNT(DISTINCT CASE WHEN i.available = 2 THEN h.hostid END) AS 数量
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
JOIN
    interface i ON h.hostid = i.hostid
WHERE
    h.status = 0

UNION ALL

SELECT
    '未知监控主机' AS 主机状态,
    COUNT(DISTINCT CASE WHEN i.available = 0 THEN h.hostid END) AS 数量
FROM
    hstgrp hg
JOIN
    hosts_groups hgh ON hg.groupid = hgh.groupid
JOIN
    hosts h ON hgh.hostid = h.hostid
JOIN
    interface i ON h.hostid = i.hostid
WHERE
    h.status = 0;

top 10 待处理问题数

SELECT
    h.name AS 主机名称,
    COUNT(p.eventid) AS 问题数
FROM
    problem p
LEFT JOIN (
    SELECT
        s1.triggerid,
        (
            SELECT
                s2.itemid
            FROM
                functions s2
            WHERE
                s2.triggerid = s1.triggerid
            LIMIT 1
        ) AS itemid
    FROM
        functions s1
    GROUP BY
        s1.triggerid
) AS f ON f.triggerid = p.objectid
LEFT JOIN `items` AS i ON i.itemid = f.itemid
LEFT JOIN `hosts` AS h ON h.hostid = i.hostid
LEFT JOIN `interface` AS inf ON inf.hostid = h.hostid
WHERE
    p.r_eventid IS NULL
    AND h.status = 0
    AND i.status = 0
GROUP BY
    h.hostid, h.host
ORDER BY
    问题数 DESC
LIMIT 10;

top 10 主机组告警数

SELECT
    total_problems.主机组名,
    SUM(total_problems.num_problems) AS 问题数
FROM (
    SELECT
        hs.NAME AS 主机组名,
        COUNT(DISTINCT p.eventid) AS num_problems
    FROM
        problem p
    LEFT JOIN (
        SELECT
            s1.triggerid,
            (
                SELECT
                    s2.itemid
                FROM
                    functions s2
                WHERE
                    s2.triggerid = s1.triggerid
                LIMIT 1
            ) AS itemid
        FROM
            functions s1
        GROUP BY
            s1.triggerid
    ) AS f ON f.triggerid = p.objectid
    LEFT JOIN `items` AS i ON i.itemid = f.itemid
    LEFT JOIN `hosts` AS h ON h.hostid = i.hostid
    LEFT JOIN hosts_groups AS hg ON hg.hostid = h.hostid
    LEFT JOIN hstgrp AS hs ON hs.groupid = hg.groupid
    WHERE
        ISNULL(p.r_eventid)
        AND h.STATUS = 0
        AND i.`status` = 0
    GROUP BY
        hs.NAME
) AS total_problems
GROUP BY
    total_problems.主机组名
ORDER BY
    问题数 DESC
LIMIT 10;

主机组异常设备占比

SELECT
    hg.groupid AS '组ID',
    COALESCE(hs.name, '无') AS '组名',
    COUNT(DISTINCT CASE WHEN p.eventid IS NOT NULL THEN h.hostid END) AS '异常主机数量',
    COUNT(DISTINCT h.hostid) AS '总主机数量',
    CONCAT(ROUND(COUNT(DISTINCT CASE WHEN p.eventid IS NOT NULL THEN h.hostid END) / COUNT(DISTINCT h.hostid) * 100, 2), '%') AS '异常主机占比'
FROM
    hosts_groups hg
LEFT JOIN hosts h ON hg.hostid = h.hostid
LEFT JOIN hstgrp hs ON hg.groupid = hs.groupid
LEFT JOIN (
    SELECT
        i.hostid,
        p.eventid
    FROM
        problem p
    JOIN functions f ON p.objectid = f.triggerid
    JOIN items i ON f.itemid = i.itemid
    WHERE
        p.r_eventid IS NULL
) AS p ON h.hostid = p.hostid
WHERE
    h.status = 0
GROUP BY
    hg.groupid, hs.name
ORDER BY
    hg.groupid;

告警信息详细

SELECT DISTINCT
    e.clock,
    FROM_UNIXTIME(e.clock) AS '告警时间',
    e.name AS '告警名称',
    e.severity AS '严重程度',
    CASE e.severity
        WHEN '0' THEN '未定义'
        WHEN '1' THEN '信息'
        WHEN '2' THEN '警告'
        WHEN '3' THEN '一般严重'
        WHEN '4' THEN '严重'
        WHEN '5' THEN '灾难'
        ELSE '未知'
    END AS '严重程度名称',
    h.host AS '主机名',
    h.name_upper AS '主机名显示',
    i.ip AS 'IP地址'
FROM
    events e
LEFT JOIN
    triggers t ON e.objectid = t.triggerid
LEFT JOIN
    functions f ON t.triggerid = f.triggerid
LEFT JOIN
    items it ON f.itemid = it.itemid
LEFT JOIN
    hosts h ON it.hostid = h.hostid
LEFT JOIN
    interface i ON h.hostid = i.hostid
WHERE
    e.source = 0
    AND e.value = 1
ORDER BY
    e.clock DESC;

最终效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/544499.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙端云一体化开发--开发云函数--适合小白体制

开发云函数 那什么是云函数&#xff1f;我们将来又怎么去使用这个云函数呢&#xff1f; 答&#xff1a;我们之前要编写一些服务端的业务逻辑代码&#xff0c;那现在&#xff0c;在这种端云一体化的开发模式下&#xff0c;我们是把服务端的业务逻辑代码&#xff0c;通过云函数来…

Mybatis中SqlSession接口中的selectList方法

1、SqlSession SqlSession是Mybatis持久层框架提供的接口&#xff0c;该接口中包含了大量的CRUD操作方法&#xff08;既增删改查方法&#xff09;。 2、selectList方法 selectList方法是用于查询的方法&#xff0c;该方法具有多态性&#xff0c;如图所示&#xff08;打开myb…

qemu源码解析一

基于qemu9.0.0 简介 QEMU是一个开源的虚拟化软件&#xff0c;它能够模拟各种硬件设备&#xff0c;支持多种虚拟化技术&#xff0c;如TCG、Xen、KVM等 TCG 是 QEMU 中的一个组件&#xff0c;它可以将高级语言编写的代码&#xff08;例如 C 代码&#xff09;转换为可在虚拟机中…

51单片机-独立按键模块

1. 独立按键控制LED状态 轻触按键实现原理&#xff1a;按下时&#xff0c;接通&#xff0c;通过金属弹片受力弹动来实现接通和断开。 松开按键 按下之后&#xff1a;就会被连接 同时按下K1和K2时&#xff0c;P2_0,接口所连LED灯才亮。 #include <REGX52.H> void ma…

python-numpy(3)-线性代数

一、方程求解 参考资料 对于Ax b 这种方程&#xff1a; np.linalg.inv(A).dot(B)np.linalg.solve(A,b) 1.1 求解多元一次方程一个直观的例子 # AXB # X A^(-1)*B A np.array([[7, 3, 0, 1], [0, 1, 0, -1], [1, 0, 6, -3], [1, 1, -1, -1]]) B np.array([8, 6, -3, 1]…

Vue - 6( 13000 字 Vue3 入门级教程)

一 &#xff1a;Vue3 1.1 Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff09;耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址&#xff1a;https://github.com/vuejs/vue-ne…

Android ParcelFileDescriptor实现进程间通信

需求 一个通信通道&#xff0c;实现跨进程的的Socket网络通信。 具体的通信通道的图如下。 需求分析 我们需要一个进程一直做通信通道的事情&#xff0c;业务进程把数据通过进程间通信交给通信进程。通信进程通过Socket通道将数据发给网络另外一端的通信进程。接收端的通信进…

RedisTemplate

3.3.RedisTemplate 在Sentinel集群监管下的Redis主从集群&#xff0c;其节点会因为自动故障转移而发生变化&#xff0c;Redis的客户端必须感知这种变化&#xff0c;及时更新连接信息。Spring的RedisTemplate底层利用lettuce实现了节点的感知和自动切换。 下面&#xff0c;我们…

家庭网络防御系统搭建-虚拟机安装siem/securityonion网络连接问题汇总

由于我是在虚拟机中安装的security onion&#xff0c;在此过程中&#xff0c;遇到很多的网络访问不通的问题&#xff0c;通过该文章把网络连接问题做一下梳理。如果直接把securityonion 安装在物理机上&#xff0c;网络问题则会少很多。 NAT无法访问虚拟机 security onion虚拟…

ssm051网上医院预约挂号系统+jsp

网上医院预约挂号系统设计与实现 摘 要 如今的信息时代&#xff0c;对信息的共享性&#xff0c;信息的流通性有着较高要求&#xff0c;因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级&#xff0c;也为了更好的维护医院预约挂号信息&#xff0c;网上医院…

dbeaver数据库语言编辑器设置jdbc驱动

打开 dbeaver 软件 数据库 -> 驱动管理器 以mysql为例 双击 MySQL -> 库 -> 添加工件 然后 打开maven组件库 官网 找到mysql驱动对应的maven工件地址 复制进去然后确认就行了 参考 大神博客

<计算机网络自顶向下> TCPUDP套接字编程

应用实现&#xff1a;源端的应用进程交换报文实现应用协议&#xff0c;来实现各种各样的网络应用&#xff08;dash&#xff0c;email, etc&#xff09; 而应用层通信不可以直接通信&#xff0c;需要借助下层的服务才可以进行&#xff0c;通过层间接口交给下层&#xff0c;通过…

Hadoop概述及集群搭建

文章目录 一、Hadoop介绍二、Hadoop发展简史三、Hadoop核心组件四、Hadoop架构变迁1、Hadoop 1.02、Hadoop 2.03、Hadoop 3.0 五、Hadoop集群简介六、Hadoop部署模式七、Hadoop 集群搭建第一步&#xff1a;创建虚拟机第二步&#xff1a;安装Linux镜像第三步&#xff1a;网络配置…

Go微服务: go-micro集成consul的注册中心和配置中心

微服务与注册中心的关系图 这个图很好说明了微服务之间的关系&#xff0c;以及consul注册中心的重要性 环境准备 1 &#xff09;consul 集群 假设consul 集群已经搭建&#xff0c;已有5台server和2台client这里2台client被nginx做负载均衡&#xff0c;假设最终本地的访问地址…

了解 Vue 工程化开发中的组件通信

目录 1. 组件通信语法 1.1. 什么是组件通信&#xff1f; 1.2. 为什么要使用组件通信&#xff1f; 1.3. 组件之间有哪些关系&#xff08;组件关系分类&#xff09;&#xff1f; 1.4. 组件通信方案有哪几类 &#xff1f; 2. 父子通信流程图 3. 父传子 3.1. 父传子核心流程…

1. 信息存储

系列文章目录 信息的表示和处理 : Information Storage&#xff08;信息存储&#xff09;Integer Representation&#xff08;整数表示&#xff09;Integer Arithmetic&#xff08;整数运算&#xff09;Floating Point&#xff08;浮点数&#xff09; 文章目录 系列文章目录前…

网络网络层之(2)ARP协议

网络网络层之(2)ARP协议 Author&#xff1a;Once Day Date: 2024年4月1日 漫漫长路&#xff0c;有人对你笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的博客-CSDN博客。 参考文档: 《TCP/IP详解卷一》arp(8) - Linux manual page (man7.org)彻底搞懂系…

专业照片编辑软件ON1 Photo RAW 2024 mac/win

ON1 Photo RAW 2024 for Mac是一款集专业性与易用性于一体的照片编辑软件。它拥有简洁直观的用户界面&#xff0c;即便对于摄影新手&#xff0c;也能快速上手。软件支持RAW格式照片处理&#xff0c;能够完整保留照片原始信息&#xff0c;让后期调整更加灵活。 在功能方面&#…

利用Sentinel解决雪崩问题(一)流量控制

1、解决雪崩问题的常见方式有四种: 超时处理:设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等待;舱壁模式:限定每个业务能使用的线程数&#xff0c;避免耗尽整个tomcat的资源&#xff0c;因此也叫线程隔离;熔断降级:由断路器统计业务…

Textarea的常用属性thymeleaf

文章目录 textareathymeleaf1.基础使用2.代码块的切换3.链接表达式1&#xff09;范例 4.前后端5.遍历1.th:each2.th:switch3.添加属性 组件替换 每周总结 textarea -webkit-scrollbar&#xff1a;width&#xff1a;0&#xff1b;让滚动条隐藏&#xff0c;宽度为0 resize&#x…