在运行Web服务器或者数据库的Linux服务器上,一个监视器应监视哪些资源
在负载下运行任何类型的服务器时,都有一些资源需要监视,以确保服务器运行状况良好。在负载下测试系统时,尤其如此。
例如,CPU使用率,内存使用率,甚至磁盘空间。
我还应该监视其他哪些资源,以及可以使用哪些工具进行监视?
解决方案
回答
我通常看top
和tail -f / var / log / auth.log
。
回答
我们可以负担得起,然后可以图形/理解/查看结果。监视资源不仅对容量规划有用,而且对异常检测很有用,而且异常检测可以极大地检测安全事件。
我们可以从基本图形开始。我还想监视线程数,连接数,网络I / O,磁盘I / O,页面错误(可以说这与内存使用情况有关),上下文切换。
我非常喜欢munin绘制与主机相关的图形。
回答
除了top和auth.log外,我经常查看mtop并启用mysql的slowquerylog并观看mysqldumpslow。
我还使用Nagios监视CPU,内存和登录用户(在VPS或者专用服务器上)。最后一个让我知道何时有其他人登录。
回答
" df -h"以确保没有分区满载会导致各种时髦的问题,观看syslog当然也是有用的,为此,我建议在服务器上安装" logwatch"(Logwatch网站),这会向我们发送消息如果系统日志中开始出现奇怪的情况,则会发送一封电子邮件。
回答
仙人掌是一个很好的基于Web的监视/绘图解决方案。非常完整,非常易于使用,拥有庞大的用户基础,其中包括许多大型企业级安装。
如果我们想更多地"提醒"而不是"绘图",请查看nagios。
至于"监视内容",我们想在系统和应用程序级别上监视系统,所以是的:在系统级别上的网络/内存/磁盘I / O,中断等。应用程序级别变得更加具体,因此,Web服务器可能会测量命中/秒,错误/秒(非200响应)等,而数据库可能会测量查询/秒,平均查询完成时间等。
回答
当然是网络:)使用MRTG可以获得一些不错的带宽图,它们只是大部分时间。
如上所述,Nagios可以很好地发出警报,并且易于设置。然后,我们也可以使用mrtg插件来获取有关网络流量的警报。
我还建议使用ntop,因为它显示了网络流量的流向。
一个很好的链接,可使用Munin和Monit:链接文本
回答
我在生产中广泛使用Zabbix,它附带了一堆有用的默认值。我们将其配置为监视的一些示例:
- 网络使用
- CPU使用率(%用户,系统,不错的时间)
- 平均负载(1m,5m,15m)
- RAM使用情况(实际,交换,shm)
- 光盘吞吐量
- 活动连接(按端口号)
- 进程数(按进程类型)
- 从远程位置发送时间
- SSL证书到期时间
- MySQL内部结构(查询缓存使用情况,RAM和磁盘上的临时表数量等)
我们可以使用Zabbix进行监视的任何内容,也可以添加触发器,以便它可以重新启动失败的服务。或者页面以提醒我们有关问题的信息。
在性能成为问题之前,请立即收集数据。当它发生时,我们将对历史基线感到满意,并且当我们需要查找并准确惩罚哪个开发人员做出了重大更改时,我们将能够显示出发生日期和时间问题的事实:
回答
当心mysql中的上述slowquerylog。仅在试图弄清为什么某些查询缓慢时才应使用它。启用后,它的副作用是使所有查询变慢。 :P用于调试,而不是日志记录。
尽可能考虑"被动监控"。例如,嗅探网络流量,而不是从服务器监视它-让另一台计算机监视数据包来回飞行并记录有关它们的统计信息。
(顺便说一句,这是我的最爱之一-如果我们看到建立的连接并记下它们的连接结束,则可以找到许多有关慢查询或者慢其他任何东西的数据,而不会给我们关心的服务器增加任何负载。)
回答
我最终使用了dstat,它是vmstat的好表弟。
这将显示我们需要了解的有关机器运行状况的大部分信息,
包括:
- 中央处理器
- 磁碟
- 记忆
- 网络
- 交换