我之前的演出涉及不到20台机器,没有严格的下班后正常运行时间要求,受到Munin的监控 – 这超出了我的经验.在基地,我正在寻找一个可以解决这个任务的过程.
我有一个模糊的概念,即为最终用户服务设计高级端到端检查 – 例如刮刀试图登录我们的某个网站 – 然后将一些更具体的标准检查设置为依赖检查 – 检查httpd正在运行,主机可通过网络在堆栈中运行 – 并且只有在高级别检查失败时才运行较低级别检查,以便在最小化系统压力的同时提供对根本原因的可见性.我一般也在考虑按环境划分主机,以便团队只在下班后从生产箱中获取页面,这样的事情.
这样理智吗?是否有设计监控系统的最佳实践方法?我对从当前不太理想的设置迁移到更好设计的能力充满信心,但我想要一些关于如何设计理想设置的更多经验丰富的指导.
一个体面的监控系统的工作是在实际关闭服务并影响面向客户的东西之前捕获这10个东西.
下面的内容并非详尽无遗或完整,但与我处理监控设置的方法非常类似.应该让你朝着正确的方向前进:
>要弄清楚你想监视什么,首先需要考虑可能导致失败的原因.
>其中一些是常见的
其中许多都可以从Kyle的帖子中删除,所以我不会列出它们,但是你想得到有关PRE-FAILURE条件的通知 – 例如RAID5中的一个驱动器发生故障 – 立即更换并避免以后停机.
>其他因您的基础设施/设计而异;包括对其他服务的依赖
如果您正在运行数据库支持的网站并且数据库已关闭,则您的网站将无法运行
>查看依赖项并构建依赖树.
(在您管理的数据中心中,您可以随心所欲:在我上一份工作中,我们是托管公司,我们的监控系统与我们的UPS,发电机和冷却系统进行了通信,以使我们及时了解其状态)
>掌握所有这些信息后,您可以决定哪些可以主动监控,哪些只能被动地响应
(例如“网络电缆被拔出”会导致任何服务器停机,但是是否值得监控交换机端口的状态,或者您是否希望它是“它已经关闭,我必须去看它”的情况?) .
这只留下选择监控软件来实现您的愿景的任务.此选择应基于哪个包允许您监控理想列表的所有(或大部分),并且实际上将考虑到包之间的价格差异.