监控服务器非常重要,无论是在部署或调试生产服务器时,及时在测试环境中发现问题。这些需要管理员访问服务器上的内容,以便能够辨识出错的地方。如果您使用了香港服务器,不可能在现场可以及时查看到服务器进行运维,所以对香港服务器进行维护和监控就非常必要了。
在更早的时候,监视服务器是一个非常困难的过程,依赖于人来靠手工检查问题,包括有哪些人登录到服务器,打开日志,运行单个命令,查看上述任何一个的输出是否产生预期的结果。幸运的是,工具发展到今天,让这个过程变得简便和集中化,但我们仍然需要弄清楚需要收集哪些服务器的信息。
虽然可以直接潜入并检查服务器的每次故障,但为了自己的时间价值与故障排除能力,退后一步制定希望获得的信息。以下是一些较重要的汇总:
了解应用程序
在设置应用程序时,应该确保对所期望的行为有一个非常好的了解。具体来说,当内存,CPU,磁盘或其他系统资源变少时,你应该非常清楚应用程序的执行方式。它会变慢吗?它会变得迟钝吗?它会不加载吗?这些行为的阈值是什么?“blip”(如CPU峰值)和真正的问题之间有什么区别?
这些都不是容易回答的问题,但是我们需要知道期望什么以及防止过敏的警报系统。
迎接变化的需求
随着时间的推移,我们的需求会发生变化,可能会实现新功能,删除无用功能或其他可能会改变应用程序预期行为的转换等。当发生这种情况时,您需要重新评估应用程序在服务器上运行的方式,以便了解使用的资源以及在这些资源减少时可以预测的处理和行为。
贴着地面跑
当我们监控*nix服务器时,通常会查看以下之内容:
CPU使用率:检查CPU使用情况,查看正在处理器使用的百分比。根据具体需求,你可能需要了解CPU总体使用情况以及按流程或用户划分的细节,查看流程和用户的额外颗粒度,在问题出现时更容易进行故障排除。
内存使用情况:总共用了多少内存以及单个进程和用户进和。根据需要,可以按百分比和/或GB/MB监控内存之使用情况。
磁盘使用情况:
使用了多少磁盘空间。与内存使用情况类似,可以按百分比或空间来监控磁盘使用情况。还应该跟踪inode的使用情况,Inode用于存储*ix系统中文件系统对象的信息。耗尽inode不常见,但还是要检查一下,如果你碰巧知道服务器上运行的应用程序往往有很多小文件,就像一些CI/CD工具那样。
页面错误:
简单地说,页面是一块虚拟内存。如果您正在监视由云服务提供商(例如AWS,GCP,Azure,DigitalOcean或Linode,Aliyun,TengCent Cloud)托管的服务器,那么服务器正在使用分页系统将服务器实例的虚拟内存映射到物理内存来托管它的硬件。页面错误本质上是当操作系统尝试从物理内存向虚拟内存加载某些内容时,不存在与该对象关联的物理内存地址时发生的情况。虽然操作系统有一个内置的页面错误处理程序来管理少量的页面错误并不少见,但是如果你经常看到页面错误,该是开始寻找更深层次问题的时候了。
正常运行时间:
对于虚拟服务器,正常运行时间是服务器运行的时间。监控主要是为了查看服务器是否经历了意外重启。
网络活动:监控网络流量需要哪些精确度,取决于服务器托管的内容。在通常情况下,即使运行静态站点但未主动访问的服务器也会看到运行在其上的其他进程的I/O,服务器网络不应该降到0。
Swap使用:
Swap交换空间是保留的磁盘空间,是在可用内存不足时补充内存使用量。你的系统如何积极地使用交换空间取决于如何在1(低)到100(高)的范围内配置它的“swappiness”。如果要在系统内出现内存问题时允许进行一些交换而不完全禁用它(为0),使用10或更小的值是一个常态。当查看“交换空间使用情况”时,我们通常会看交换空间使用情况是否显著上升。如果真是如此,需要查内存和其他资源,看看自己是否可以挖掘到原因。
使用命令行
经常在管理服务器时,除了使用的任何监视警报工具之外,更多时候要使用命令行。需要注意的是,并非所有命令都安装在所有Linux发行版中,你可能需要使用软件包安装程序或源代码来安装,具体取决于你用的Linux发行版本。