【数据可视化】基于DataEase制作Zabbix监控系统-告警监控大屏

制作Zabbix告警监控大屏的背景介绍:

1、希望能够更直观的看到当前告警主机、告警主机组、告警分布、主机被监控情况等跟告警相关的内容;

2、公司的Zabbix监控系统的数据库系统为MySQL;

3、公司部署了DataEase。

下图为成果图:

​一、新建Zabbix的MySQL数据源,如下图所示:

​二、添加对应的数据集

1、添加数据库数据集:选择hosts表、hstgrp表,创建定时同步的数据库数据集

​2、添加MySQL数据集,如下图所示,SQL语句在图后,依次添加数据集

​(1)创建问题告警级别分布数据集,MySQL语句如下:

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

(2)创建问题列表数据集,MySQL语句如下:

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

(3)创建问题主机组数据集,MySQL语句如下:

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

(4)创建主机问题排行数据集,MySQL语句如下:

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

(5)创建主机状态分布数据集,MySQL语句如下:

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`;

三、创建仪表板和视图

(1)创建空白仪表板

​(2)创建告警类别数量统计视图,选择告警级别分布数据集,创建图表类型为Echarts的饼图

​(3)创建主机状态数量统计视图,选择主机状态分布数据集,创建图表类型为Echarts的饼图,操作可参考(2)

(4)创建主机数量指标卡,选择数据库hstgrp表数据集制作,其它指标制作方式一样选择不同的数据集即可

​(5)创建Top 10 待处理问题的主机,选择主机问题排行MySQL数据集,图标类型选择为横向柱状图;这里需要注意的是有些字段我进行了脱敏处理,所以按照图示选择维度和指标

​(7)创建Top 10 主机组告警视图,选择问题主机组数据集,创建图表类型为横向柱状图,操作可参考(6)

(8)创建待处理告警详情视图,选择问题列表数据集,创建图标类型为汇总表;这里需要注意的是有些字段我进行了脱敏处理,所以按照图示选择维度和指标

​(9)创建主机组设备异常/正常对比视图,选择问题主机组数据集,创建图表类型为基础柱状图;这里需要注意的是有些字段我进行了脱敏处理,所以按照图示选择维度和指标

​(10)创建告警趋势视图,选择问题列表数据集,创建图表类型为基础折线图;这里需要注意的是有些字段我进行了脱敏处理,所以按照图示选择维度和指标

​四、根据实际情况调整整体仪表板样式即可。

至此,Zabbix告警监控大屏制作结束,效果如下,欢迎各位指正!

DataEase模板市场提供了Zabbix监控告警大屏的模板,您可以在该市场上找到并下载这个模板。该模板基于Zabbix开源项目,通过Web界面提供企业级的分布式系统监视和网络监视解决方案。Zabbix能够监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制,以便系统管理员快速定位和解决问题。通过使用Zabbix监控告警大屏模板,您可以实现对Zabbix监控数据的可视化展示,使监控过程更加直观。您可以访问DataEase模板市场主页,通过关键字搜索或分类切换来快速找到Zabbix监控告警大屏模板。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [模板学堂丨Zabbix监控告警大屏](https://blog.csdn.net/FIT2CLOUD/article/details/127632119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Zabbix与乐维监控对比分析(五)——可视化篇](https://blog.csdn.net/weixin_51211989/article/details/128441855)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值