我们有几个LAMP服务器,每个服务器都运行我们编写的特殊脚本来报告各种系统度量。 报告每天都在运行,这个想法是能够快速通过并发现系统上的任何潜在问题。
每个LAMP服务器都运行RedHat Enterprise,并且每个托pipe40-50个(不断增长的)面向公众的网站(混合使用HTML,自定义PHP和Drupal站点)。
这里是脚本目前包含的内容:
这个报告已经很长了,所以我尽可能的简短。
你有没有发现其他重要的指标,包括在这样的脚本? 你会从这个列表中删除吗?
谢谢,团队。
Ĵ
我会testing,以确保你的环境是理智的。 testingPHP是否正确运行(写一个简单的PHP脚本来回应一些东西,wget它,确保你收到了你所期望的),你的数据库(只是连接并确保你可以看到数据库)等等。
另外,如果您在这些服务器上使用SSL,请检查证书是否过期,发生意外更改等。
我会build议使用一个自动化的收集工具,如Cacti ,随着时间的推移将收集和报告各种指标。 这将使您轻松发现未来的趋势和计划。 John Allspaw出版了一本名为“能力计划艺术”的优秀着作,详细介绍了这一主题。 我强烈build议任何需要跟踪服务器上的指标的人。
我的build议是不要经常报告任何这些事情。 你会被信息淹没,而人性则决定了当一个问题到来时,你可能确实忽略了这个问题。
相反,只有当其中一个variablesexception时才会报告。 也许在白天更频繁。 您可以使用像Cacti这样的监控和graphics系统,它会提醒您这些变化,并保存历史数据以备将来参考。
为你的脚本 – 性能检查我会添加mysql慢查询日志的内容[你需要在MySQL的my.cnf中激活它]。 如果查询时间超过几秒钟,则可能会出现性能瓶颈。
把一些一致性检查 – tripwire – integrit或其他 – 在不应该被修改的地方[/ etc /? 二进制文件? ]。 也许添加对geoip的ftp日志的检查 – 可能你不期望看到成功login中国或前苏联。
至less把iptables日志logging发送出去的连接,并包括出现在您的日志中的所有不寻常的目标端口。 你可能不想传出http连接 – 可能除了在drupal中进行更新检查 – 那些可能是一些尝试下载可能的恶意负载的迹象。 或者甚至更好地丢弃所有传出stream量,并添加例外,例如,如果您发送邮件,则用于传出tcp / 25。
例如添加graphics趋势监测与munin 。 负载情节图,每秒请求数,内存和交换使用情况,每秒mysql查询,慢速查询,总计stream量,邮件stream量。
就像Dan C所说的那样 – 你会被logging下来,并且会开始忽略它们。 设置nagios或任何其他检查系统。 当不好的事情发生时,它会向你报告。
你真的想要持续监控。 我们使用Nagios每分钟检查一次我们的networking服务器,以确保它们仍在运行。 我们也监视我们的数据库和其他我们能想到的东西。 随着时间的推移,你会有停电,发现你应该监测的事情。
监控的另一面是某种graphics。 我们使用Munin,但仙人掌或神经节是常见的解决scheme。 图表对于发现系统中的趋势非常重要。
我还build议使用脚本获取服务器状态页面,并parsing所需的值以获取运行时信息。
将其添加到您的apacheconfiguration(大多数分发中已经存在)
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from .example.com </Location>
这个处理程序由mod_status提供。 你可以看到当前的请求,每秒的请求等。