我最近开始监控 digitalocean、OVH 和 biznesshosting 的独立提供商的一些服务器实例。
应用程序服务器堆栈基于:CentOS NGINX 和 Passenger Rails/Ruby 三个后台作业服务器,带有 Fedora、sidekiq、Rails 堆栈
一台服务器用作 CMS,两台用作核心应用程序,第四台用作 API。还有单独的服务器用于搜索、安全站点和数据库(基于 postgresql 和 redis)
现在,谈谈我要提出的问题/建议:
CMS 和核心应用服务器上托管的一些动态网站突然宕机的情况发生过几次。这些宕机通常最多持续 5 分钟,我会通过 pingdom、cloudstats.me 等收到通知。
由于网站大多由数据库驱动,因此我曾发现数据库服务器被服务器托管公司重新启动的原因。但对于其他情况,我很难找到网站瘫痪的原因。我可以通过 SSH 轻松进入服务器,可以 ping 通,甚至 cloudstats.me 也没有报告高 CPU、内存或磁盘 I/O 使用率。
有时会发生这种情况,我甚至无法通过 SSH 进入服务器,尽管可以通过 digitalocean 的基于 Web 的控制台进行同样的操作。这些服务器有防火墙规则,可以阻止除允许的 IP 列表之外的任何人通过 SSH 访问。所以也需要一个解决方案。
后来我偶然发现了这个网站:
然而,我正在寻找更强大、更有指导性的信息来找出我的服务器上的瓶颈、如何修复、为什么网站会崩溃,即使服务器完全正常。
还寻求帮助,如何查找某些错误代码执行是否导致停机。我不是团队中的开发人员,我是一名兼职系统管理员,所以每当出现问题时 - 我的开发团队就会冲到我的电话和消息框,他们希望我在最短的时间内修复问题,并要求我报告网站停机的原因。
希望在这里听到一些专家的意见。
答案1
良好的监控设置需要区分连接问题和服务器问题,即使从最终用户的角度来看结果是一样的:网站瘫痪。
因为作为系统管理员,当出现网络/路由/连接问题/故障时,您的网站/服务在部分或整个互联网上不可用,或者当问题出在您的实际服务器/服务上时,您能做的事情是有区别的。
一种相当典型的第一种方法是除了监控服务器本身之外,还要监控服务器使用的默认网关。