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

如何调查 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?)

答案1

您可以向您的服务添加事件处理器每次您的服务进入非正常状态时它都会执行一个脚本。

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

答案2

如果负载、内存或 CPU 导致问题,您可以配置系统状态用于分析资源使用历史的实用程序。

答案3

LogFormat我发现使用包含的自定义配置 Apache 很有用%D。它将记录处理每个请求花费了多少微秒。

由于以这种方式记录的时长包括服务器等待客户端的时间,因此它并不是一个完美的指标,无法确定哪些请求会导致服务器负载过高。但它仍会提供有用的信号,表明哪些 URL 可能会导致服务器负载过高。

重要的是要记住,平均负载是一个非常广泛的指标。这是一个有用的指标,可以让您知道您遇到了问题,但它对于找出问题所在以及如何修复它却没有多大用处。特别是它涵盖了 CPU 负载和 I/O 负载,而数字本身并不能告诉您两者中的哪一个是原因。

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

相关内容