我目前正在评估用于(按照我的标准)大型网络的监控软件,该网络预计将增长到约 3000 台设备。我发现很难获得有关扩展硬件要求的数据。(编辑:这些设备是受 SNMP 监控的卫星接收器,因此需要无代理监控器。我们的主要关注点是识别故障设备,我们不需要进行大量分析。)
3000 台设备每台将有大约 40 个数据点,记录周期为 5 到 10 分钟。以 10 分钟的轮询间隔计算,每分钟有 12,000 个数据点。这提供了两种负载:轮询应用程序的 CPU 负载,以及最关键的用于存储这些数据点的磁盘写入负载。
我研究过 Solarwinds Orion、Zenoss、Zabbix 和 OpenNMS。我们在几百台设备的小型网络上使用过 Zenoss 和 Orion。我最初的印象是:
- Zenoss 没有非常高效的 RRD 实现,但允许我们通过添加收集器(在本地存储 RRD 数据)进行水平扩展。
- Orion 允许我们添加轮询引擎,但需要共享 SQL 服务器来存储性能数据。
- Zabbix 声称可以扩展到这个级别,但我没有找到任何有用的指导。由于它使用数据库来存储性能数据,因此数据库调优是关键。
- 由于优化的 RRD 实现和对分组的支持,OpenNMS 看起来是性能领先者。
有没有人有监控这种规模的网络的经验或性能数据?
答案1
开放网络管理系统可以完成这项工作。
对于这种类型的环境,关键是 CPU 线程和可以处理低延迟磁盘写入的东西。我会使用独立服务器(而不是虚拟机),提供 12 个或更多核心,并计划使用具有 6 个或更多主轴的直接连接存储,或者可以利用 SSD 来存储 OpenNMS RRD 目录。OpenNMS 还可以在数据收集和日志记录方面进行调整,以提高其效率。联系他们的专业服务团队来帮助安装将是一个不错的选择。
答案2
据我所知,Zabbix 已安装 10k+ 台设备。也许您需要分散负载,即通过将数据库服务器(如果您的解决方案需要)放置到另一台机器上。您可能还想看看 Zabbix Proxy。
答案3
我有监控这种规模网络的经验。此外,在监控解决方案方面,我一直在评估新的可能性。
话虽如此,我比您更多地站在微软的角度,我甚至不确定我是否会考虑您提到的一些企业级解决方案,但我仍然可以提供帮助。
几乎每个监控系统都由几个常见组件组成 - 数据库和管理服务器。(NetIQ、Nimsoft、Quest、VMware、SCOM,仅举几例。)
您需要的硬件数量很大程度上取决于您计划如何进行监控 - 具体来说 - 您想要捕获多少个数据点。对于最基本的东西,如 CPU 利用率、内存、存储空间等,您的要求会较少。如果您想监控大量的应用程序指标,如您的主机每秒收到多少个 Web 请求、扫描日志文件中的关键字等,那么您的监控系统收集的数据量将大得多,所有严格的硬件要求都将增加。
其他需要考虑的因素包括:您是否要在每台机器上加载代理(通常允许更详细的信息),还是要尝试完全不使用代理?您是在监控所有物理机、所有虚拟机,还是两者的混合?网络设备呢,您是否也在监控它?在像这样的大型异构网络中,您通常最终会使用多个解决方案一起运行以覆盖所有基础。如果您要监控大量虚拟机,某些解决方案(如 VMware VC Ops 和 Quest vFoglight)会从 vCenter(或多个 vCenter)本身获取信息,这意味着许多指标比在虚拟机本身上测量更准确,这也意味着您可能不必在虚拟机上加载代理。您通常还可以将更多机器挤入仅限虚拟机的监控解决方案中。VMware VC Ops 目前拥有在单个 VC Ops 实例上运行 10k 台虚拟机的客户。
尽管如此,我个人认为 VC Ops 更像是一个大型花哨的分析引擎,而不是一个实际的监控解决方案。看到它告诉你“根据你目前的增长,数据中心 [y] 中的 ESXi 主机 [x] 将在 30 天内达到容量上限”还是挺酷的。
好吧,一般来说,设计数据库有很多不同的方法,但请记住,您需要高可用性。您无法在如此庞大的网络中工作,并且承担监控解决方案的责任,因为一旦您的一个数据库节点发生故障,该解决方案就会完全失效。所以不要购买 1 台 HP Proliant 服务器。而是购买两台。或三台。将它们集群化。规划 HA。那么价格是多少——3 万美元?
其次,许多此类解决方案在其基础架构中都会有“管理服务器”类型的角色。根据我的经验,这些通常可以很好地虚拟化。它们充当代理和中央存储库之间的中介,平衡负载并确保来自数千个代理的所有数据都有序地插入存储库。您会发现,在这些类型的解决方案中,您必须拥有一些管理服务器来实现 HA,但您不希望有太多管理服务器,因为每个额外的管理服务器都会引起争用和锁定,因为它们都只是为了将数据插入存储库。
因此,计划为这些设备配备一到两台虚拟化主机。也许再花 15,000 美元?这只是大概数字。我不知道贵公司是否打算在新的 Cisco UCS 设备上或从 Craigslist 购买的 Dell PowerEdges 上构建这些设备。
大多数企业级解决方案都具有足够的可配置性,能够利用 SQL Server 或 MySQL 甚至 Postgres。然而,很少有解决方案在所有方面都表现得非常出色,我通常看到一家公司同时运行两个或多个监控解决方案。
编辑:另外,别忘了规划地理分布。我的服务器位于阿姆斯特丹,由迈阿密监控。可能的,但我并不十分自豪地承认这一点。
编辑 #2:同样值得注意的是,虽然有些公司非常不愿意在软件上花钱 - 这取决于公司的文化 - 但好的公司会意识到企业支持的价值。只需记住这一点。
答案4
我们来自大学环境,在那里我们对许多网络设备(主要是思科,但检查了很多指标)进行了可用性监控(带有警报的正常/警告/严重)和性能监控(图形,RRD)...
我认为这有点过度分析了。首先,确定您需要的最小指标集、分辨率以及需要存储它们多长时间。即使您确实需要每 5 到 10 分钟轮询 3,000 台设备中的每一个,对于 40 个指标,您是否需要保留它们的 RRD 图形数据,或者您是否可以使用 Nagios 之类的工具来提醒指标是否超出预定义的阈值?
此外,这需要多可靠?
我会这样做,记住我的默认观点是最低成本、开源,并且假设实施它的人都可以进行一些编码:
- 确定一些具有一定灵活性 UI 的可能解决方案(Nagios/Icinga?OpenNMS?Cacti 或 Cricket 或 mrtg?)。
- 获取 10 或 20 台廉价的、最小的 1U 服务器,每台服务器可处理总负载的 5% 或 10%。想出一个算法,将 3,000 台设备的检查/轮询分配到这 10 或 20 台主机上。
- 如果您只需要警报,那么每台主机都可以独立存在。最好使用 Nagios 盒来监控这 10-20 台主机,以确保它们正常运行并收集数据。
- 如果您需要使用通用接口来绘制图形/趋势图,则需要进行一些网络工作(PHP?),但您应该能够从适当的轮询节点整合一个链接图形/数据/等的接口。