DataEase开源数据可视化分析平台模板市场(
https://dataease.io/templates/)于2022年6月正式发布。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并在优质模板的基础上轻松制作自己的仪表板。
10月上新模板
DataEase模板市场定期进行模板上新,10月共上新8个模板,涉及通讯、零售、公有云、管理运维、电子银行、云服务等主题,应用软件大屏模板新增Zabbix监控告警大屏,欢迎大家在DataEase模板市场下载使用。
10月精选模板
本月为大家推荐的精选模板是Zabbix监控告警大屏。Zabbix是一个优秀的开源项目,它基于Web界面提供分布式系统监视以及网络监视的企业级解决方案。Zabbix能够监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制,以便于系统管理员快速定位并解决存在的各种问题。
■ 产品版本号:Zabbix基于v5.4.0版本,DataEase开源数据可视化分析平台基于v1.15版本。
■ 此次共统计15项指标,各指标项具情况体如下:
模板应用
接下来,为大家详细讲解如何应用Zabbix监控告警大屏。
1.1 内置模板市场
如果您使用的DataEase为v1.13.0及以上的版本,并且DataEase可直接访问到模板市场地址(
https://dataease.io/templates/),可通过内嵌的“模块市场”在线应用模板。
为仪表板命名并选择放置的目录。
添加成功后即会自动进入到该新建仪表板的编辑界面。
1.2 在线模板市场
您也可以访问DataEase模板市场主页,找到Zabbix监控告警大屏。模板市场地址为:
https://dataease.io/templates/。如需快速检索,可进行关键字搜索或分类切换,可以快速找到想要的大屏模板。
点击“Zabbix监控告警大屏”仪表板模板进入详情界面。点击“下载”按钮后可将模板下载至本地。
进入自己的DataEase系统的“仪表板”模块中,通过下图所示以“导入模板”的方式新建仪表板,点击“上传模板”按钮,选择使用“模板市场”下载的Zabbix监控告警大屏的模板文件。
当前数据为模板示例数据,需要进一步将数据来源替换为自己环境的Zabbix数据库,从而展示真实的实时数据。
2.1 新建数据源
首先新建数据源,配置Zabbix数据库的真实信息,搭建DataEase与Zabbix服务器之间的数据连接。
2.2 添加相关的数据集
分别创建我们本次演示中需要用到的各类数据集。如果需要展示一些非模板所展示的内容,也可以根据自己需要创建对应的数据集。
2.2.1 创建数据库数据集
主机组数量、主机数量、可监控主机、不可监控主机、未知监控主机等数据,直接根据数据库数据集制作。
本次用到以下SQL语句,分别以SQL数据集类型创建好即可。
■ 告警类别数量统计数据集
数据集说明:展示的数据是通过对Zabbix中问题的告警严重性级别进行统计分析,筛选出无恢复动作、主机状态为可用、监控项可用的问题。
SELECT
COUNT(p.severity) count,
p.severity,
(
CASE p.severity
WHEN '0' THEN
'未定义'
WHEN '1' THEN
'信息'
WHEN '2' THEN
'警告'
WHEN '3' THEN
'一般严重'
WHEN '4' THEN
'严重'
WHEN p.severity = '5' THEN
'灾难'
ELSE
'未知'
END
) severityName
FROM
problem p
LEFT JOIN (
SELECT
s1.triggerid,
(
SELECT
s2.itemid
FROM
functions s2
WHERE
s2.triggerid = s1.triggerid
LIMIT 1
) itemid
FROM
functions s1
GROUP BY
s1.triggerid
) f ON f.triggerid = p.objectid
LEFT JOIN `items` i ON i.itemid = f.itemid
LEFT JOIN `hosts` h ON h.hostid = i.hostid
LEFT JOIN `interface` inf ON inf.hostid = h.hostid
WHERE
ISNULL(p.r_eventid)
AND h. STATUS = 0
AND i.`status` = 0
GROUP BY
p.severity
ORDER BY
p.severity ASC
■ 告警详情数据集
数据集说明:展示数据是在Zabbix的问题列表中,筛选了无恢复时间、主机状态为可用、监控项可用的问题,如需筛选待处理的问题加上条件:p.acknowledged=1。
SELECT
p.eventid,
FROM_UNIXTIME(p.clock) time,
p.clock,
p. NAME pname,
p.acknowledged,
p.severity,
(
CASE p.severity
WHEN '0' THEN
'未定义'
WHEN '1' THEN
'信息'
WHEN '2' THEN
'警告'
WHEN '3' THEN
'一般严重'
WHEN '4' THEN
'严重'
WHEN p.severity = '5' THEN
'灾难'
ELSE
'未知'
END
) severityName,
p.objectid,
i.`status`,
i.key_,
f.itemid,
h. HOST,
h. NAME,
concat(inf.ip, ":", inf. PORT) ip,
inf. PORT
FROM
problem p
LEFT JOIN (
SELECT
s1.triggerid,
(
SELECT
s2.itemid
FROM
functions s2
WHERE
s2.triggerid = s1.triggerid
LIMIT 1
) itemid
FROM
functions s1
GROUP BY
s1.triggerid
) f ON f.triggerid = p.objectid
LEFT JOIN `items` i ON i.itemid = f.itemid
LEFT JOIN `hosts` h ON h.hostid = i.hostid
LEFT JOIN `interface` inf ON inf.hostid = h.hostid
WHERE
ISNULL(p.r_eventid)
AND h. STATUS = 0
AND i.`status` = 0
ORDER BY
clock DESC
■ 告警主机组数据集
数据集说明:展示数据是Zabbix问题中出现过的主机组,如需筛选待处理的问题主机组加上条件:p.acknowledged=1。
SELECT
count(DISTINCT h.hostid) problemNum,
(
SELECT
COUNT(hg.hostid)
FROM
hosts_groups hg
WHERE
hg.groupid = hs.groupid
) total,
(
SELECT
COUNT(hg.hostid)
FROM
hosts_groups hg
WHERE
hg.groupid = hs.groupid
) - count(DISTINCT h.hostid) normal,
hs. NAME
FROM
problem p
LEFT JOIN (
SELECT
s1.triggerid,
(
SELECT
s2.itemid
FROM
functions s2
WHERE
s2.triggerid = s1.triggerid
LIMIT 1
) itemid
FROM
functions s1
GROUP BY
s1.triggerid
) f ON f.triggerid = p.objectid
LEFT JOIN `items` i ON i.itemid = f.itemid
LEFT JOIN `hosts` h ON h.hostid = i.hostid
LEFT JOIN hosts_groups hg ON hg.hostid = h.hostid
LEFT JOIN hstgrp hs ON hs.groupid = hg.groupid
WHERE
ISNULL(p.r_eventid)
AND h. STATUS = 0
AND i.`status` = 0
GROUP BY
hs. NAME,
hs.groupid
ORDER BY
NAME
■ 问题主机数据集
数据集说明:展示数据是Zabbix问题中出现过的主机,如需筛选待处理的问题主机加上条件:p.acknowledged=1。
SELECT
COUNT(h. NAME) count,
h. NAME
FROM
problem p
LEFT JOIN (
SELECT
s1.triggerid,
(
SELECT
s2.itemid
FROM
functions s2
WHERE
s2.triggerid = s1.triggerid
LIMIT 1
) itemid
FROM
functions s1
GROUP BY
s1.triggerid
) f ON f.triggerid = p.objectid
LEFT JOIN `items` i ON i.itemid = f.itemid
LEFT JOIN `hosts` h ON h.hostid = i.hostid
WHERE
ISNULL(p.r_eventid)
AND h. STATUS = 0
AND i.`status` = 0
GROUP BY
h. NAME
ORDER BY
count DESC
■ 主机状态数量统计数据集
数据集说明:展示数据是主机状态的统计数据。
SELECT
available,
(
CASE available
WHEN '0' THEN
'可用'
WHEN '1' THEN
'不可用'
WHEN '2' THEN
'未知'
ELSE
'未知'
END
) 主机状态,
count(available) 主机数量
FROM
`hosts`
WHERE
`status` = '0'
AND `flags` = '0'
GROUP BY
`available`
重新进入已导入的仪表板中,进入编辑界面,分别对各个视图的数据集进行替换,即会展示各个视图所用到的数据集及其维度与指标字段。正常情况下,数据集字段一致,替换为自己的数据集后视图会自动匹配字段进来,无需再进行维度与指标字段的配置。
■ 注意事项:维度/指标字段提示错误
由于在模板设计阶段字段的命名可能与原数据集不同,维度或者指标会出现红色感叹号的情况。大家可以将红框指标删除,把左边的对应字段重新直接拖入原有位置即可。
完成上述步骤后,属于自己的Zabbix告警监控大屏就完成了。如果您有个性化的需求,样式和展示内容还可以根据需要进行相应调整。