对服务器监控有好的介绍吗?

对服务器监控有好的介绍吗?

我目前正在使用 Linux、Apache、Django 和 MySql 开发一个小型 Web 应用程序。

作为一名对 Linux / shell 脚本 / 服务器监控只有最低限度了解的开发人员,我不知道我应该做什么样的监控...然而,我喜欢做一些事情:

  • 轻松获取 CPU/内存使用情况的时间序列。
  • 当服务器资源过度使用时发出警报。
  • 轻松访问 apache 日志文件,并能够使用它们进行快速分析。

另外,我想知道是否还有其他日志文件/服务需要我关注?

答案1

服务器监控取决于哪些指标对服务器的用途很重要。作为 Web 应用程序,需要涵盖很多领域。您可以想到的指标数不胜数,但通常只有以下最低限度:

  • 服务器和服务的可用性
  • 磁盘空间和使用情况
  • 网络使用情况
  • 内存使用情况
  • CPU使用率
  • 日志文件

除了查看当前情况之外,监控的另一部分是记录过去的情况。这使您能够:

  • 规划未来
  • 确定问题出现的原因

在接下来的两个月内,您是否会以同样的增长速度耗尽磁盘空间?您是否看到 CPU 使用率随着新功能的部署而增加?为什么用户必须等待四秒钟才能查看页面?

我将讨论上述每个指标:

可用性

非常简单的可用性监控是通过 ping 命令进行的,但服务器 ping 通并不意味着 Web 服务器等服务可用,因为它可能已崩溃。更复杂的监控是每小时在网站上运行一次测试交易,以确保用户可以购买产品。

磁盘空间和使用情况

空间指标很明显,您需要在应用程序停止工作之前提前知道。使用量部分稍微复杂一些。使用量将是诸如读/写字节数、每秒输入/输出操作数等指标。这些指标很重要,因为如果您发现站点延迟增加与磁盘性能下降相关,则可能是磁盘损坏,需要多次寻道或读取才能满足请求。别忘了测量 inode 使用量,这是我在 OpenVZ 中忘记过几次的指标。

网络使用情况

达到网络带宽限制了吗?您看到的数字和 ISP 看到的数字一样吗?

内存使用情况

当系统内存不足时,系统将开始交换。这将影响性能。

CPU使用率

在高峰时段,CPU 是否达到 100% 峰值?也许您可以通过将服务器升级到更快的 CPU 或更多 CPU 来改善用户体验。CPU 必须处理如此多的网络控制器中断,性能是否会下降?也许是时候投资 TCP 卸载卡了。

日志文件

  • MySQL 慢查询日志:查询运行速度比您的阈值慢。查看此文件并根据需要进行改进。如果您无法改进它们,并且查询时间与繁重的系统负载相对应,那么可能需要升级。

  • 应用程序的日志文件:用户在做什么导致系统负载过重?他们中的大多数人是否正在查看特定页面?为什么今天只有一半的用户上传成功?

  • Apache 日志文件:了解这些数字对于网站设计的有效性、可用性、广告活动测量、损坏的页面或图像等很有用。

  • 系统的日志文件:黑客攻击尝试、硬件错误、各种守护进程消息。

通常最好将系统日志发送到另一台服务器,这样就不会掩盖痕迹。

除此之外,还有很多可以监控的东西:每秒交易量、服务器温度、硬盘温度和 SMART、RAID 状态、备份报告、批处理作业状态,

工具

有相当多的工具可以完成上述部分任务。其他更具体的指标要么需要自行编码(如果尚未提供)(通过 SNMP 显示 qmail 队列大小就是我整理的一项指标,因为有时 qmail 会半途而废,仍然接受新邮件,但不会发送任何邮件)。

您可以轻松使用以下我使用的一些工具:

  • 纳吉奥斯或者伊辛加- 最流行的 *nix 监控工具之一。有不少监控工具,如 mysql 从属监控。我通常专门使用它来监控所有服务的可用性。设置为向手机的电子邮件转文本地址发送电子邮件以进行警报。Icinga 是 Nagios 的一个分支。浏览“命令”,看看哪些命令可以使用。
  • 穆宁或者收集- 这些为您提供图表。在 CentOS 上设置起来轻而易举。设置 MySQL 监控插件以获取数据库洞察,例如缓冲区使用情况。
  • 网站脉搏- 请注意,可用性监控只有在远程进行时才是最好的。我使用他们的 POP3 监控通过我编写的脚本来验证 Nagios 是否仍在运行。
  • 统计- 将 Apache 日志文件处理成报告。
  • 谷歌分析- 更多常见 Apache 日志中没有的客户端详细信息,如屏幕分辨率和颜色深度。

答案2

可能首先要介绍的是vmstat,它将告诉您有关虚拟机的各种信息 -- 不是 vmware 或 VirtualPC 等中的虚拟机,而是监控内存和 i/o 系统的内核虚拟机。您可以运行vmstat更新周期,例如vmstat 1,它将每秒报告一次虚拟机状态。

相关内容