企业日志记录层构建清单

在构建用于收集、统一和分析日志的基础设施时,请务必查看此清单,以创建一个宝贵的记录和工具。
380 位读者喜欢这个。
Top programming trends in 2016

摄影艺术博物馆。Opensource.com 修改。CC BY-SA 4.0

在任何关于诸如云迁移服务、数据中心和微服务等宏观主题的讨论中,企业日志记录的主题都可能被降级为事后才考虑的事情。但是,这样做会让你自食恶果,因为如果没有日志记录,你将无法对你的服务进行关键的可视化,从而无法有效地诊断和调试。更重要的是,如果你是一家大型企业,你可能违反了合规性要求。

随着你向数据中心添加应用程序和基础设施组件,你收集的日志数据量将呈指数级增长。再加上 Docker、容器和 Kubernetes 等临时组件的趋势,日志数据变得至关重要。

用于日志记录层的专有工具未能跟上云原生趋势,因此许多企业正在转向开源软件来满足其日志记录需求。这些开源工具允许用户统一来自所有网络设备、防火墙、应用程序和基础设施数据的数据流,并且它们正在与其他已经为企业提供动力的开源项目一起发展。在大多数情况下,开源工具不再仅仅是替代品,而是更强大的产品,可以超越其专有产品。

在构建用于收集、统一和分析日志的基础设施时,请务必勾选所有这些框,以确保日志记录充分发挥其潜力,成为一个宝贵的记录和工具。

  1. 安全性:由于日志包含来自你的应用程序、基础设施和网络设备的数据,因此它们也可能包含敏感信息。为了防止操作员或网络入侵者泄露该信息,请确保你的日志在静态传输中都是安全的。此外,请确保你的加密标准不易被解密(MD5 或 SHA1),但至少使用 SHA-256 位加密(首选 AES-256 位加密)。
  2. 高可用性:当将日志数据传输到你需要的后端以进行合规性或调试时,日志的缺失部分会在你的企业历史记录中留下漏洞。这意味着你可能无法确定哪个应用程序失败、哪个网络设备流式传输恶意内容或哪个国家/地区黑了你的防火墙。请记住,当你的基础设施不堪重负时,你的日志记录基础设施也往往会随之崩溃。高可用性确保你有一个辅助日志记录管道,如果主管道离线,它可以路由和审计你的日志。
  3. 负载均衡:日志数据往往会随着你企业的增长而增长,你的日志量可能会从每秒几百条消息增加到数百万条。这意味着你的日志记录基础设施需要正确地平衡这些不断增长的消息速率的负载,并防止单个实例不堪重负。
  4. 流拆分:一条日志消息可能对你企业中的多个利益相关者(例如 IT、安全和应用程序开发人员)都很重要。在发送生产日志数据时,请确保你可以有效地将数据路由到特定利益相关者的工具集,并在多个利益相关者需要单独分析数据时复制数据。
  5. 避免供应商锁定:将数据发送到单个分析工具集是编码管道的一种简单方法,但可能无法产生最佳的分析和洞察力回报。此外,锁定单个供应商以在后端提供分析可能很昂贵,并且你的数据可能会被劫持。相反,你的日志记录管道应该是灵活高效的,允许你快速采用新技术并将数据路由到可以最有效地处理数据的地方。
  6. 边缘处理:大多数情况下,当你对日志数据运行分析时,你可以运行昂贵的、计算量大的查询,这些查询需要很长时间才能完成。你的日志记录管道不应等到所有数据都进入后端才开始分析,而应做一些初步工作,以使用相关信息来增强数据流或跨多个节点分配处理。
  7. 边缘过滤:尽管你尽力只记录最重要的数据,但有时日志只是一堆噪音。你的日志记录管道应该能够智能地识别嘈杂的消息并快速过滤掉它们。你的管道还应该能够根据各种字段进行过滤,包括日志的来源、日志的严重性、日志消息中的内容,当然还有日志时间。
  8. 与应用程序无关的日志记录(非模块化日志记录、单体日志记录):当你的日志记录管道与你的应用程序不分离时,你每次更改日志记录管道时都需要重新部署你的应用程序。这意味着你每次重新部署都会丢失日志,并且如果你的应用程序出现故障,你的日志记录也会停止。即使你需要对日志记录管道进行的更改很小,你也需要重新部署你的应用程序,这对于移动应用程序来说成本很高,如果你的应用程序是硬件产品的一部分,则几乎是不可能的。
  9. 可靠性:你的日志最终到达的后端应始终保持启动并运行,但有时它们可能会因任何数量的原因而不可用。你的日志记录管道应该能够识别何时发生错误,并且能够在等待后端系统恢复运行时缓冲数据。在后端长时间不可用的情况下,你的日志记录管道应该能够使用其高可用性属性切换到备份。
  10. 监控:当不再生成日志时,你就无法了解你的基础设施、应用程序和网络设备。一切都可能运行顺利,或者一切都可能乱成一团。这就是为什么当 Google Cloud 和 Microsoft Azure 中的日志记录中断时,工程师会将其视为 0 级严重性。确保你的日志记录基础设施启动并运行的唯一方法是进行监控,以确保它启动并运行、吞吐量快速稳定,并且任何异常情况都已得到解释。
  11. 日志记录代理权重:通常,当你在应用程序旁边部署日志记录代理时,你希望该日志记录代理是轻量级的、高性能的和可靠的使用重型日志记录代理可能会影响你的业务应用程序,因为它占用了应该用于你的应用程序的性能。

让你的日志记录层成为事后才考虑的事情可能会对你的业务产生严重的后果。遵循这些建议可确保你的企业日志记录不仅支持合规性需求,而且还实现帮助你的业务平稳有效地运行的目标。

User profile image.
Anurag Gupta 是 Treasure Data 的产品经理,负责推动统一日志记录层 Fluentd Enterprise 的开发。Anurag 曾从事大型数据技术(包括 Azure Log Analytics)和企业 IT 服务(例如 Microsoft System Center)方面的工作。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.