我看到了很多监视工具,大部分都显示相同的东西。 但是我想知道是否真的有必要看所有这些东西。
我想知道哪些指标真的很重要,例如主要运行网站的Web服务器,PHP-FPM,Nginx和MySQL。
另外,我正在研究graphics,但是如何理解和分析它们以防止将来出现任何故障?
重要的指标是:
什么样的标准对你来说很重要,这取决于你的专业观点所判断的标准是否能够最好的满足这两个标准。 如果你没有专业知识能够事先准确判断,那么…是的 。 收集更多的数据可能永远不需要收集一些你以后需要的数据。 (需要注意的是,如果您的监控开始干扰服务的高效运行,则可能需要稍微调低一下,或优化统计信息收集)。
如果你正在寻找一个简短的答案,恐怕我没有一个答案 – 你是在一个陡峭的学习曲线,这是一个系统pipe理员意味着什么的核心。 如果你遇到停机时间不重要的情况,太好了! 你有一个很好的学习机会。 如果这个服务不能完美运行,你最终会被起诉或倒闭,你可能想找一个有更多经验的人给你一对一的指导和指导。
我刚刚写了一篇关于这个问题的指南:
请允许我在这里总结一下:在监控任何一种生产系统时,要考虑三个主要目标:
你想通过在以下框架中select你的指标来做到这一点:
每个部署都会有所不同,所以YMMV,但这是许多经验丰富的专业人士用来思考的东西(无论是否明确)的框架。
[编辑披露:我隶属于Scalyr,一家参与这个领域的公司,上面的链接在他们的网站上发布]
最基本的是关注CPU负载,可用内存和交换,磁盘空间,磁盘I / O以及networking/带宽I / O的数量。 这可以使用像munin或collectd这样的工具来完成。 有些人喜欢监视很多事情,但如果你保持简单,至less可以得到整体情况。 我还build议您configuration监视工具,当事情开始出错时(例如,使用“阈值”或类似的方法)向您发送电子邮件提醒。
另一个非常有用的事情是关注最重要的服务器日志中的任何exception情况,即错误消息或甚至警告。 但是这样的消息可能非常普遍,这取决于各种软件如何被configuration为logging。 通常情况下,守护进程有一个configuration文件,您可以在其中更改“LogLevel”(出错时仅logging日志级别)以debugging(=logging任何内容)。 检查你的服务器上运行的恶魔,并将日志级别更改为错误或警告。 然后,您可以安装OSSEC等日志文件分析工具,并在某些事情可以接受的情况下训练它保持沉默,并在事件中断时提醒。 这些警报可以通过电子邮件发送给您。
对于您的特定服务Nginx和Mysql,我build议您监视他们的响应时间。 这是有好处的,原因有二:如果你根本没有得到任何答复,就会有事情发生。 如果您得到的响应表明exception高的响应时间 – 特别是如果它不是暂时的,而是超过几分钟或几小时的时间 – 那么服务正在挣扎。
我build议你看看collectd。 可以将其configuration为将多次测量logging到RRD文件中以供以后分析。 它只需要很less的CPU,并可帮助您了解性能如何随负载而变化。
我还没有find一个真正的真棒工具来真正从生成的RRD绘制graphics,但除非你想在现实中投影它们,否则只需在命令行上使用rrdgraph就足以定期检查是否有大的变化。
上面的优秀build议。 但是,如果您真的需要开始,请首先观察基本知识:随着时间的推移CPU使用情况,随着时间的推移内存使用情况,带宽使用情况和磁盘空间使用情况(或可用磁盘空间)。 这四个是非常常见的,因为它们几乎定义了计算机的function。
一旦你监测了一段时间,并知道服务器的“正常”,你将能够发现什么时候exception。 那就是当你准备开始深入挖掘,并找出“为什么” – 这将需要更多的具体监测:)