服务器监控的好介绍?

Jee*_*Kim 5 linux monitoring

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

作为一名对 Linux/shell 脚本/服务器监控知之甚少的开发人员,我不知道我应该做什么样的监控......但是,我喜欢做的一些事情是:

  • 轻松访问 CPU / 内存使用的时间序列。
  • 每当服务器资源被过度使用时都会发出警报。
  • 轻松访问 apache 日志文件,并能够对其进行快速分析。

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

Rob*_*mos 12

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

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

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

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

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

我将涉及上述每个指标:

可用性

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

磁盘空间和使用情况

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

网络使用

达到网络带宽限制?您看到的数字与您的 ISP 看到的数字相同吗?

内存使用情况

当系统开始耗尽内存时,它将开始交换。这会影响性能。

CPU使用率

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

日志文件

  • MySQL 慢查询日志:查询运行速度低于您的阈值。查看此文件并根据需要进行改进。如果您无法改进它们并且查询时间对应于沉重的系统负载,那么也许是时候升级了。

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

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

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

通常最好将系统日志发送到另一台服务器,这样轨道就不会被覆盖。

除了这些,还有很多东西可以监控:每秒事务数、服务器温度、硬盘温度和智能、RAID 状态、备份报告、批处理作业状态、

工具

有很多工具可以完成上述某些任务。其他更具体的指标如果尚不可用,则需要自行编码(通过 SNMP 显示 qmail 队列大小是我汇总的一个此类指标,因为有时 qmail 会中断,仍然接受新电子邮件但不发送任何邮件) )。

我使用的一些工具,您可以轻松开始使用:

  • NagiosIcinga - 最受欢迎的 *nix 监控工具之一。相当多的监控工具,比如mysql slave监控。我通常将它专门用于所有服务的可用性监控。设置以向手机的电子邮件转文本地址发送电子邮件以获取警报。Icinga 是 Nagios 的一个分支。浏览“命令”并查看您可以使用哪些命令。
  • Munincollectd - 这些为您提供图表。在 CentOS 上轻松设置。设置 MySQL 监控插件以获取数据库洞察,例如缓冲区使用情况。
  • WebSitePulse - 请注意,只有远程进行可用性监控才是最好的。我使用他们的 POP3 监控来验证 Nagios 是否仍在通过我制作的脚本运行。
  • AWStats - 将 Apache 日志文件处理为报告。
  • Google Analytics - 更多不在常见 Apache 日志中的客户端详细信息,如屏幕分辨率和颜色深度。