基于 Logstash 的集中式日志系统搭建指南
1. Logstash 简介
Logstash 可与 AWS 服务集成,从 SQS 队列读取日志,并将输出消息写入 SNS 主题,是在 AWS 内构建日志系统的理想选择。它是 ELK Stack 的一部分,包含消费和生成日志文件的核心功能,还有一个名为 Kibana 的 Web 界面。此外,它使用基于 Apache Lucene 的强大分布式搜索服务器 Elasticsearch,该服务器提供搜索功能,便于快速查找所需的日志条目。
在开发和测试阶段,这些组件可在单台机器上运行。当 Logstash 处理大量日志数据时,可将这些组件迁移到独立的实例,实现独立扩展。不过,许多第三方日志服务可避免自行构建日志系统,部分服务还具备自动检索 EC2 标签并分配给日志数据等便捷功能,方便通过 EC2 标签快速筛选日志文件。在制定日志策略时,需评估市场上领先的托管日志管理服务,权衡维护自有基础设施的功能和成本与第三方服务的优劣。
2. Logstash 配置准备
为演示 Logstash 的实际应用,需搭建一个适用于 EC2 的简单集中式日志基础设施。在设置实例前,要先准备好演示所需的安全组。为简化演示,将在客户端和服务器实例上手动安装和配置 Logstash,但在生产环境中,建议使用 Puppet 等 DevOps 自动化工具进行配置。
2.1 创建安全组
使用 AWS 管理控制台或命令行工具创建两个安全组: log_client
和 log_receiver
。 log_client