如何调查由nagios3报告的关键服务器负载?

我的Ubuntu服务器上运行的Nagios3偶尔会向我发送类似以下内容的电子邮件报告:

Notification Type: PROBLEM Service: Current Load Host: localhost Address: 127.0.0.1 State: CRITICAL Date/Time: Mon May 22 00:14:54 CEST 2017 Additional Info: **CRITICAL - load average: 3.57, 21.36, 15.40** 

(通常我会收到三封电子邮件,警告,关键,恢复,每天两次,正常工作时间)

我该如何调查哪个服务导致这个问题,以及如何跟踪什么时候发生了什么? (我怀疑一些Apache运行的网站,哪一个?实际上是哪个url?)

您可以向您的服务添加一个事件处理程序 ,该程序将在您的服务处于非正常状态时执行脚本。

您的脚本将能够存储例如来自top命令和netstat或其他工具( cat /proc/stat )的数据,这些工具显示了系统的使用情况。

如果负载,内存或CPU出现问题,则可以configurationsysstat实用程序来分析资源使用情况的历史logging。

我发现使用包含%D的自定义LogFormatconfigurationApache很有用。 这将logging处理每个请求需要多less微秒。

由于以这种方式logging的持续时间包括服务器等待客户端的时间,因此找出哪些请求会在服务器上造成高负载并不是一个完美的指标。 但它仍然会提供一个有用的信号,指出哪些URL可能会导致服务器负载过重。

请务必记住,平均负载是一个非常宽泛的指标。 知道自己有问题是一个很有用的指标,但是找出问题所在以及如何解决问题并不是那么有用。 特别是它包含了CPU负载和I / O负载,而且这个数字本身并不能告诉你哪一个是原因。

在高负载期间查看topiotop等工具的输出可以提供一些提示。