最好/最差的监控系统是什么?

dsi*_*mms 4 monitoring

这是唯一正确答案是“视情况而定”的通用问题之一。标准是什么?

  • 监控什么?
    • 可达性、可用性?例如是一个链接上/下,主机是否响应 ICMP 等。
    • 服务?例如是在正确的端口上侦听的东西,是正在运行的命名服务等。
    • 资源?CPU使用率?例如,可能占总时间、累计时间、总时间或每个进程的百分比。磁盘使用情况?网络使用?例如移入或移出的字节或数据包。
    • 服务?例如是在正确的端口上侦听的东西,是正在运行的命名服务等。
    • 特定于服务或应用程序的指标?例如每秒的 DB 事务数、发送或接收的 SMTP 消息等。
  • 如何发现/添加/设置/配置受监控元素?有自动发现吗?手动设置?
  • 如何监控特定元素?
    • 当地代理?例如做周期性的“df”或“ps”或“ping”
    • 网管?
    • JMX?
    • Windows 性能计数器?
  • 通知是怎么做的?例如控制台、电子邮件、寻呼机、SMS、IM 等。
  • 如何对元素和通知进行分组和排序?
    • 例如,链接失败是否会触发该链接后面所有服务或可达性元素的通知?还是只有一个?还是可以配置?
    • 例如,主机故障是否会引发针对托管在那里的所有服务或应用程序以及缺乏资源监控数据的通知?
    • 跟踪系统中是否有自动案例/票证/问题创建?
  • 如何跟踪 SLA 指标?

car*_*ito 6

任何依赖 SNMP 来监控服务器的行为都是失败的。SNMP 存在一些基本问题,无法正确监控服务器。此外,大多数 SNMP 代理都很糟糕。Net-SNMP 真的很糟糕。

通常这样的问题会被忽略,只要生成漂亮的图表。我告诉开发经理他们正在查看的数据是无用的,我们这样做只是为了满足生成漂亮图表的要求,他们对此表示同意,并继续询问有关图表的问题。

例如,获取单个线程的信息大约需要 20 个 SNMP 请求。在需要每分钟轮询一次的具有 100 万个线程的系统上,每分钟需要监控 2000 万个数据包!我意识到一百万个线程很多,并不是每个人都需要每分钟轮询一次,但这也并非不合理,很多人需要更多。

通常“空闲”内存的含义是混淆的。我已经看到这被忽略了,因为它允许购买额外的内存 - 在忙碌的一天可能导致 3 倍的正常内存使用量以及管理层拒绝为这些峰值调整大小的金融环境中非常有益。谎言基本上被抵消了。

通常用于监控交换机/路由器的监控工具将通过 SNMP 获取服务器的每个 CPU 统计信息,并在显着位置报告数据。许多人不想听到每个 CPU 的统计数据不是他们想要的,而每个线程的统计数据才是。

无论数据如何检索,许多常见问题都需要亚分钟甚至亚秒轮询才能理解。幸运的是,Linux sar 可以毫无问题地以 1 秒的间隔对数据进行采样。它不会保存 iostat 所做的所有数据,这可以使理解存储瓶颈的猜测成为可能。我也只保存“iostat -x 1”数据。例如,如果用户抱怨亚秒级冻结(或者,如果客户抱怨他们通常需要 10 毫秒的事务有时需要 200 毫秒),则所有进程/线程统计信息的亚秒级轮询很有用。遗憾的是,很少有内核提供合理的机制来做到这一点。(没有正当理由为什么我不能在一个系统调用中以结构化的方式提取这些数据,而且我不应该在内核中处理数据到十进制的转换,

未能以合理的方式保存磁盘性能统计数据是一种常见的疏忽。

没有良好同步的时钟是一个常见问题。许多人都忽略了始终需要 NTP 的事实。NTP 配置不当可能意味着您不知道两个时钟的同步程度是一个常见问题。一个严肃的企业应该把钱花在自己的 GPS 时钟上这一事实经常被忽略。对于参与纳斯达克交易的公司,我指着法规,为我们的客户写一篇关于期望什么时间准确度的解释(他们经常问),并在要求批准这个解释时,描述我们需要遵守法规的设置,遵守我们对客户的承诺,并与依赖时间同步的供应商一起解决问题。

传递警报是一个常见问题。基本上,您需要确保一个人会对警报做出响应,一个人对他们确认的警报负责,并且如果未确认警报将通过另一条路径重新发送或发送给另一个人。如果人们收到阻止他们认真对待页面的虚假警报,则需要关注监控系统。

了解趋势和错误警报之间的区别很重要。

在系统日志中报告错误很重要,因为有一种机制来识别新类型的错误,即使它不及时。

我在这里触及了一些非常重要的东西。但没有什么比这更重要 - 无论您购买哪种监控/趋势/警报解决方案,为您的环境设置和定制都会产生巨大的成本。没有可用的解决方案可以显着降低设置/维护成本。一个常见的失败是不断购买新的监控系统,将它们保留在默认设置中,让它变得无用。

供应商承诺他们将帮助免费定制是没有用的。除非你写得很清楚。供应商承诺将向您出售昂贵的定制服务是没有用的 - 您不能相信他们会胜任。

如果您有关键的自定义内部应用程序,而您的开发人员拒绝为他们的应用程序添加检测、日志记录和其他监控帮助,那么您就有问题了。基本上,疏忽的开发人员不关心他们软件的操作方面。另一方面,开发人员需要参与讨论要监控他们软件的哪些方面,因此可以设计一种方便的方法来公开这一点。他们可能面临添加功能的压力,而没有考虑可靠性或问题警报。

  • “任何依赖 SNMP 监控服务器的行为都是失败的。” 这似乎是一种荒谬的夸张。许多安装(包括我的)成功地使用了 SNMP。它当然有问题,但这样说显然是错误的。 (5认同)
  • 是的,我必须完全不同意你的说法“任何依赖 SNMP 来监控服务器的东西都是失败的。”,也是。是的,SNMP 有一些明确的限制,需要很好地理解它们,但这并不意味着它失败了。在某些情况下,SNMP 无疑是完成工作的最佳(如果不是唯一的话)工具。特别是在涉及网络设备和“非传统”设备(UPS、发电机、打印机等)时。 (3认同)

小智 5

Nagios 曾经是一个较小的低端系统,但我想说最近的版本确实是“企业级”。基于 SNMP 的开源软件集成了从 Cacti 到 RRDTool 的所有内容。您需要花时间配置和构建自定义报告脚本,但老实说,商业工具也是如此。

Traverse(以前是 NetVigil)是一个比“旧 Nagios”更大的商业工具,即使不是比当前的 Nagios 稍好,也可以与之相提并论。

有很多中档监控系统。

在高端,您有 HP OpenView、IBM Tivoli、CA Unicenter 和许多其他产品。许可和实施咨询的价格可能高达数百万美元,这是一项要求。

无论您在频谱中的哪个位置,监控软件都需要花费您的时间。它很容易成为大型商店中监控系统的护理和喂养的全职工作。