6

在负载下运行任何类型的服务器时,有几个资源需要监控以确保服务器健康。在负载下测试系统时尤其如此。

这方面的一些例子是 CPU 使用率、内存使用率,也许还有磁盘空间。我应该监控哪些其他资源,以及可以使用哪些工具来监控?

4

9 回答 9

6

尽可能多的,然后可以绘制/理解/查看结果。监控资源不仅对容量规划有用,而且对异常检测很有用,异常检测显着有助于您检测安全事件的能力。

您的基本图表有一个不错的开始。我还想监控线程数、连接数、网络 I/O、磁盘 I/O、页面错误(可以说这与内存使用有关)、上下文切换。

我真的很喜欢 munin 来绘制与主机相关的东西。

于 2008-09-16T17:50:11.633 回答
3

我在生产中广泛使用 Zabbix,它带有一堆有用的默认值。我们将其配置为监控的一些示例:

  • 网络使用情况
  • CPU 使用率(% 用户、系统、美好时光)
  • 平均负载(1m、5m、15m)
  • RAM 使用情况(真实、交换、shm)
  • 光盘吞吐量
  • 活动连接(按端口号)
  • 进程数(按进程类型)
  • 来自远程位置的 Ping 时间
  • SSL 证书到期时间
  • MySQL 内部结构(查询缓存使用情况、RAM 和磁盘上的临时表数量等)

任何你可以用 Zabbix 监控的东西,你也可以附加触发器——这样它就可以重启失败的服务;或寻呼您以提醒问题。

在性能成为问题之前立即收集数据。当它发生时,您会对历史基线感到高兴,并且当您需要追查并准确惩罚哪个开发人员做出了错误的更改时,您将能够显示开始发生的日期和时间问题这一事实:)

于 2008-09-17T12:58:04.103 回答
2

我最终使用了 dstat,它是 vmstat 的表亲。

这将显示您需要了解的有关机器运行状况的大部分信息,包括:

  • 中央处理器
  • 磁盘
  • 记忆
  • 网络
  • 交换
于 2008-12-29T15:30:19.500 回答
1

“df -h”以确保没有分区运行已满,这可能导致各种时髦的问题,观看系统日志当然也很有用,因为我建议在您的服务器上安装“logwatch”(Logwatch 网站)发送给您如果奇怪的事情开始出现在您的系统日志中,请发送一封电子邮件。

于 2008-09-16T17:53:10.317 回答
1

Cacti是一个很好的基于 Web 的监控/绘图解决方案。非常完整,非常易于使用,拥有庞大的用户群,包括许多大型企业级安装。

如果您想要更多的“警报”和更少的“绘图”,请查看nagios

至于“监控什么”,您想在系统和应用程序级别监控系统,所以是的:网络/内存/磁盘 i/o、中断等系统级别的。应用程序级别变得更加具体,因此网络服务器可能会测量每秒点击次数、每秒错误数(非 200 响应)等,而数据库可能会测量每秒查询次数、平均查询执行时间等。

于 2008-09-16T19:03:45.467 回答
1

小心前面提到的mysql中的slowquerylog。只有在试图弄清楚为什么某些查询很慢时才应该使用它。它具有在启用时使所有查询变慢的副作用。:P 它用于调试,而不是记录。

尽可能考虑“被动监控”。例如,嗅探网络流量而不是从您的服务器监视它——让另一台机器监视数据包来回传输并记录有关它们的统计信息。

(顺便说一句,这是我的最爱之一——如果你观察正在建立的连接并注意它们何时结束,你可以找到很多关于慢查询或减慢其他任何东西的数据,而不会在你关心的服务器上增加任何负载。 )

于 2008-09-17T20:03:28.467 回答
0

除了top和auth.log,我也经常看mtop,开启mysql的slowquerylog,看mysqldumpslow。

我还使用 Nagios 来监控 CPU、内存和登录用户(在 VPS 或专用服务器上)。最后一个让我知道我以外的其他人何时登录。

于 2008-09-16T17:51:28.667 回答
0

网络当然 :) 使用 MRTG 来获得一些不错的带宽图,它们大部分时间都很漂亮.. 直到垃圾邮件发送者发现您的安全漏洞并突然增加。

如前所述,Nagios 非常适合用于警报,并且易于设置。然后,您也可以使用 mrtg 插件来获取网络流量警报。

我还推荐使用 ntop,因为它可以显示您的网络流量的去向。

一个很好的链接,可以让您使用 Munin 和 Monit:链接文本

于 2008-09-16T21:13:30.380 回答
-1

我通常看toptail -f /var/log/auth.log.

于 2008-09-16T17:49:41.183 回答