从零开始搭建单节点 ELK

从零开始搭建单节点 ELK

💡 原文中文,约4200字,阅读约需10分钟。
📝

内容提要

最近参与了搭建ELK项目,ELK指的是elastic search、logstash和kibana。使用docker compose启动ELK框架,配置文件需要设置logstash.conf、logstash.yml、elasticsearch.yml和kibana.yml。使用filebeat监听日志文件,并在kibana页面配置相关信息。附录中介绍了如何减少对远程服务器的侵入,可以使用sshfs挂载远程文件到本地目录。

🔎

延伸解读

技术选型:为何选择 ELK

文章指出选择 ELK 主要基于两点:项目成员已有使用经验,能降低上手成本;ELK 是成熟框架,搭建过程有助于理解各组件交互。这反映出在缺乏基础设施时,团队倾向于选择熟悉且生态完善的开源方案,以快速实现日志收集与查询。

单节点部署的配置要点

使用 Docker Compose 启动 ELK 时,需挂载并配置 logstash.conf、logstash.yml、elasticsearch.yml 和 kibana.yml。其中 elasticsearch 通过 environment 设置 discovery.type=single-node 并关闭安全与监控,logstash 根据 tags 将不同应用日志写入独立索引,kibana 则连接 elasticsearch 进行展示。

日志收集与多行处理

Filebeat 负责监听日志文件并发送至 Logstash。配置中通过 paths 指定日志路径,并利用 tags 区分不同应用。针对多行日志(如堆栈跟踪),使用 multiline 配置以时间戳模式匹配,将非起始行合并到上一条日志,确保日志事件的完整性。

减少侵入与本地调试

为减少对远程服务器的侵入,可采用 sshfs 将远程日志目录挂载到本地,再让 Filebeat 监听本地挂载点。在 macOS 上可通过 brew 安装 fuse 和 sshfs,但可能存在兼容性问题,建议从官网下载。这为本地开发环境提供了灵活的日志收集方式。

❓

Q&A

ELK的组成部分是什么?

ELK由Elastic Search(数据存储)、Logstash(数据过滤)和Kibana(数据展示)三部分组成。

为什么选择ELK作为日志管理工具?

选择ELK的原因是项目成员有使用经验,且ELK是一个成熟的框架,能够减少上手成本。

如何使用Docker Compose启动ELK框架?

使用命令'docker-compose up -d'启动ELK框架,可能需要增加Docker内存。

Filebeat的主要功能是什么?

Filebeat用于收集日志,基本流程包括监听文件、发送、过滤转换数据、保存数据、查询和展示。

如何在Kibana中解决单节点警告问题?

在Kibana中,进入索引管理,将所有索引的配置调整为0,以表明是单节点。

如何减少对远程服务器的侵入?

可以使用sshfs将远程文件挂载到本地目录,从而减少对远程服务器的侵入。

🏷️

标签

➡️

继续阅读