Zabbix应用程序监控

我们运营一个SAAS业务,我们有数百个可以从服务器漫游到服务器的stream程。 它们是.net进程,可以在任何一台机器上创build(启动),运行一段时间(通常几周),然后迁移到另一台机器上。

这些进程有许多不同的时间序列输出(使用RabbitMQ进行广播),我们有自己的定制系统来监视应用程序进程。

我们有各种监控工具(例如LogicMonitor),但是我们开始使用Zabbix进行服务器监控。

对于我来说,我们把来自所有源(交换机,服务器,主机,虚拟机,应用程序)的所有时间序列数据放到一个地方,因为那样我们就可以比较服务器范围的数据(例如CPU负载,内存负载)。

我正在考虑使用Zabbix。

我可以看到Zabbix支持使用https://www.zabbix.com/documentation/3.0/manual/concepts/sender发送时间序列数据。 所以我知道我可以得到数据。

我正在努力了解如何设置Zabbix这个给定的Zabbix是以服务器为中心,每个时间序列数据的关键。 但是,我认为这是一个常见的情况,但我是Zabbix的新手。

我想象下面的一个层次:

DataCenter (1 of n) -> Rack (1 of n) keys (eg power used) -> Physical Machine (1 of n) "The hosts" keys (eg CPU, Memory, Network Bandwidth) -> VM (1 of n) keys (eg CPU, Memory, Network Bandwidth) -> Application keys (eg CPU, Memory, Network Bandwidth, Jobs per second etc) 

这是Zabbix支持的吗? 我想也许使用主机或密钥的命名约定,但感觉就像我做错了什么。

正如您所提到的,Zabbix是为主机/服务器和密钥而devise的,因此作为build立层次结构的第一步,您可以为每个虚拟机创build主机,然后根据数据中心或机架的需要使用主机组。

Zabbix没有内置的群集或漫游应用程序的支持。 为了监视那些我通常创build“元主机”,基本上没有任何代理的空主机入口。 然后我使用一些监控脚本来发送zabbix trapper项目给主机。

例如:使用三个具有正常系统监视(CPU,内存)的虚拟机app1,app2,app3,另外还有一个“元主机”service1与我的应用程序模板。 然后让我的漫游应用程序使用zabbix_sender -z zabbixserver -s service1 -k service.some.stat -o 42 (或编程语言的等效库调用)发送监视数据。

因此,我将拥有所有虚拟机的系统统计信息和连续的应用程序统计信息,而不是跨三个虚拟机分布的应用程序统计信息。