在负载下运行任何类型的服务器时,有几个资源需要监控以确保服务器健康。在负载下测试系统时尤其如此。
这方面的一些例子是 CPU 使用率、内存使用率,也许还有磁盘空间。我应该监控哪些其他资源,以及可以使用哪些工具来监控?
在负载下运行任何类型的服务器时,有几个资源需要监控以确保服务器健康。在负载下测试系统时尤其如此。
这方面的一些例子是 CPU 使用率、内存使用率,也许还有磁盘空间。我应该监控哪些其他资源,以及可以使用哪些工具来监控?
尽可能多的,然后可以绘制/理解/查看结果。监控资源不仅对容量规划有用,而且对异常检测很有用,异常检测显着有助于您检测安全事件的能力。
您的基本图表有一个不错的开始。我还想监控线程数、连接数、网络 I/O、磁盘 I/O、页面错误(可以说这与内存使用有关)、上下文切换。
我真的很喜欢 munin 来绘制与主机相关的东西。
我在生产中广泛使用 Zabbix,它带有一堆有用的默认值。我们将其配置为监控的一些示例:
任何你可以用 Zabbix 监控的东西,你也可以附加触发器——这样它就可以重启失败的服务;或寻呼您以提醒问题。
在性能成为问题之前立即收集数据。当它发生时,您会对历史基线感到高兴,并且当您需要追查并准确惩罚哪个开发人员做出了错误的更改时,您将能够显示开始发生的日期和时间问题这一事实:)
我最终使用了 dstat,它是 vmstat 的表亲。
这将显示您需要了解的有关机器运行状况的大部分信息,包括:
“df -h”以确保没有分区运行已满,这可能导致各种时髦的问题,观看系统日志当然也很有用,因为我建议在您的服务器上安装“logwatch”(Logwatch 网站)发送给您如果奇怪的事情开始出现在您的系统日志中,请发送一封电子邮件。
小心前面提到的mysql中的slowquerylog。只有在试图弄清楚为什么某些查询很慢时才应该使用它。它具有在启用时使所有查询变慢的副作用。:P 它用于调试,而不是记录。
尽可能考虑“被动监控”。例如,嗅探网络流量而不是从您的服务器监视它——让另一台机器监视数据包来回传输并记录有关它们的统计信息。
(顺便说一句,这是我的最爱之一——如果你观察正在建立的连接并注意它们何时结束,你可以找到很多关于慢查询或减慢其他任何东西的数据,而不会在你关心的服务器上增加任何负载。 )
除了top和auth.log,我也经常看mtop,开启mysql的slowquerylog,看mysqldumpslow。
我还使用 Nagios 来监控 CPU、内存和登录用户(在 VPS 或专用服务器上)。最后一个让我知道我以外的其他人何时登录。
网络当然 :) 使用 MRTG 来获得一些不错的带宽图,它们大部分时间都很漂亮.. 直到垃圾邮件发送者发现您的安全漏洞并突然增加。
如前所述,Nagios 非常适合用于警报,并且易于设置。然后,您也可以使用 mrtg 插件来获取网络流量警报。
我还推荐使用 ntop,因为它可以显示您的网络流量的去向。
一个很好的链接,可以让您使用 Munin 和 Monit:链接文本
我通常看top
和tail -f /var/log/auth.log
.