基础设施监控是基础设施管理不可或缺的一部分。它是 IT 管理员防御意外停机的第一道防线。严重的问题可能会给实时基础设施带来相当长的停机时间,有时会导致大量的金钱和物质损失。
监控从您的基础设施收集时间序列数据,以便对其进行分析,从而预测基础设施及其底层组件即将出现的问题。这使 IT 管理员或支持人员有时间准备并在问题发生之前应用解决方案。
一个好的监控系统提供
- 基础设施随时间推移的性能测量
- 节点级分析和警报
- 网络级分析和警报
- 停机时间分析和警报
- 事件管理和根本原因分析 (RCA) 的 5W 问题解答
- 实际问题是什么?
- 何时发生的?
- 为什么发生的?
- 停机时间是多久?
- 将来需要做些什么来避免它?
构建强大的监控系统
有许多工具可用于构建可行且强大的监控系统。唯一需要做的决定是使用哪个;您的答案在于您希望通过监控实现什么,以及您必须考虑的各种财务和业务因素。
虽然一些监控工具是专有的,但许多开源工具,无论是非托管软件还是社区托管软件,都能比闭源选项更好地完成这项工作。
在本文中,我将重点介绍开源工具以及如何使用它们来创建强大的监控架构。
日志收集和分析
说“日志很有用”是轻描淡写。日志不仅有助于调试问题;它们还提供了大量信息来帮助您预测即将到来的问题。 当您遇到软件组件问题时,日志是打开的第一扇门。
Fluentd 和 Logstash 都可用于日志收集;我选择 Fluentd 而不是 Logstash 的唯一原因是它独立于 Java 进程;它用 C+ Ruby 编写,C+ Ruby 受到 Docker 等容器运行时和 Kubernetes 等编排工具的广泛支持。
日志分析是分析您随时间收集的日志数据并生成实时日志指标的过程。Elasticsearch 是一个可以做到这一点的强大工具。
最后,您需要一个可以收集日志指标并使您能够使用易于理解的图表和图形可视化日志趋势的工具。Kibana 是我最喜欢的选择。

因为日志可能包含敏感信息,所以这里有一些安全要点需要记住
- 始终通过安全连接传输日志。
- 日志记录/监控基础设施应在受限子网内实施。
- 对监控用户界面(例如,Kibana 和 Grafana)的访问应仅限于利益相关者或仅对利益相关者进行身份验证。
节点级指标
并非所有内容都记录在日志中!
是的,您没听错:日志记录监控软件或进程,而不是基础设施中的每个组件。
操作系统磁盘、外部安装的数据磁盘、弹性块存储、CPU、I/O、网络数据包、入站和出站连接、物理内存、虚拟内存、缓冲区空间和队列是一些很少出现在日志中的主要组件,除非它们出现故障。
那么,您如何收集这些数据呢?
Prometheus 是一个答案。您只需要在虚拟机节点上安装特定于软件的导出器,并配置 Prometheus 从这些无人值守的组件收集基于时间的数据。Grafana 使用 Prometheus 收集的数据来提供您的节点当前状态的实时可视化表示。
如果您正在寻找更简单的解决方案来收集时间序列指标,请考虑 Metricbeat,Elastic.io 的内部开源工具,它可以与 Kibana 一起使用来替代 Prometheus 和 Grafana。
警报和通知
如果没有警报和通知,您就无法利用监控。除非利益相关者——无论他们身处这个广阔世界的何处——收到关于问题的通知,否则他们就无法分析和解决问题,防止客户受到影响,并在将来避免问题再次发生。
Prometheus 与使用其内部 Alertmanager 和 Grafana 的预定义警报规则相结合,可以根据配置的规则发送警报。Sensu 和 Nagios 是提供警报和监控服务的其他开源工具。
人们对开源警报工具的唯一问题是配置时间和过程有时看起来很困难,但一旦设置好,这些工具的功能就比专有替代方案更好。
然而,开源工具最大的优势在于我们可以控制它们的行为。
监控工作流程和架构
良好的监控架构是强大而稳定的监控系统的支柱。它可能看起来 像这样的图表。

最后,您必须根据您的需求和基础设施选择工具。本文讨论的开源工具被许多组织用于监控其基础设施并为其带来高正常运行时间。
本文改编自 Medium.com 的 Hacker Noon 上的一篇文章,并经作者许可在此处重新发布。
评论已关闭。