我们经营 SAAS 业务,我们有数百个可以在服务器之间漫游的进程。它们是 .net 进程,可以在一组机器中的任何一台上创建(启动),运行一段时间(通常是几周),然后迁移到另一台机器上。
这些进程有许多不同的时间序列输出(使用 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 支持的吗?我考虑过可能对主机或密钥使用命名约定,但感觉好像我做错了什么。