我有一台Zabbix服务器,监视着600多个服务器。
我需要创建一些仪表板或屏幕,我可以看到哪些面板是消耗CPU,内存,带宽,...最多的前十台服务器。
这就像从所有服务器上获取最新数据,并按desc值将其限制为10行:SELECT hostname FROM hosts ORDER BY cpu_usage DESC LIMIT 10
我不确定使用Zabbix可以做到这一点。如果不可能,建议您使用Grafana,这是一个不错的选择吗?
答案 0 :(得分:0)
这个问题很广泛,我将尝试给出一些建议(大多数建议与编程无关,因此没有100%适合SO ...)。
首先,只有在主机项目是同质的情况下,才可以对它们进行分组:您不能将Windows CPU使用率与Unix平均负载混合使用,而可以将不同操作系统之间的带宽使用混合使用(当然,请检查Mbps和MBps单位)。
Grafana很棒,我将其用于许多仪表板,但模板化机制取决于主机,组,应用程序和项目名称,而不取决于项目值。
您需要一个特定的仪表板,最好的做法是编写自己的工具,但请从不直接从数据库中选择。您应该使用API,特别是item.get
,history.get
和trend.get
。
与历史和趋势的区别至关重要,您可以阅读here。
您可以找到适用于大多数现代语言的libraries,我对python很熟悉,但是您当然可以使用JS,Ruby,PHP等。