# docker-elk **Repository Path**: shimmernight/docker-elk ## Basic Information - **Project Name**: docker-elk - **Description**: 基于 Docker 快速搭建 Elk 日志管理平台 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2022-02-09 - **Last Updated**: 2023-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: Docker, ELK ## README # docker-elk #### 介绍 基于 Docker 快速搭建 ELK 日志管理平台 #### 项目结构 ![image-20220329162815050](https://s2.loli.net/2022/03/29/9JtBsek1lGiD6U7.png) #### 软件架构 1. 基于 Docker 开源项目搭建应用,实现了应用容器化,帮助开发者快速打包部署容器化应用。 2. 基于 ELK 搭建一套完整的日志管理平台,其中: - E(Elasticsearch):Elasticsearch 是一个实时的分布式开放源代码全文本搜索和分析引擎。 相较于传统的sql查询语句而言,该搜索引擎具有跨平台性、实时性、分布式等优点。 - Elasticsearch 是基于 Java 开发的,这使得它在几乎每个平台上都兼容。 - Elasticsearch 是实时的,新增的文档可以实时的在该搜索引擎中检索到。 - Elasticsearch 是分布式的,这使得它易于在任何大型组织中扩展和集成。 - L(Logstash):Logstash 是免费且开源的服务器端数据处理管道。 主要有三个功能:1.采集各种样式、大小和来源的数据;2.实时解析和转换输入的数据;3.选择存储库导出数据。 - 日志输入:通过5044端口,监听来自 filebeat 传输的数据 - 日志过滤:对日期、消息等数据进行解析和转换 - 日志输出:输出到 elasticsearch 上进行日志的存储和检索 - K(Kibana):Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。 Kibana 能够对 Elasticsearch 数据进行可视化,并在 Elastic Stack 中进行导航。 通过 Kibana 可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。 3. 推荐:使用 Filebeat 实现日志采集。Filebeat 是一个开源的轻量型日志采集器,同时,它也是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。 #### 安装教程 1. 搭建 [Docker](https://www.runoob.com/docker/windows-docker-install.html) 环境 2. 使用命令行工具执行 docker 容器构建命令: `docker-compose up ` 3. 等待启动完毕后,访问本地 [kibana](http://localhost:5601/) 服务 4. 如果成功访问到 Kibana 服务界面,即说明 ELK 日志管理平台搭建完毕 #### 使用说明 1. 完成上述安装步骤就已经实现了 ELK 平台的搭建,日志可视化与过滤功能基本实现。 2. 接下来通过 filebeat 从指定路径读取日志文件向 Logstash 的 5044 端口发送日志数据,本处以windows环境为例,将 filebeat 安装到需要日志采集项目的服务器上,并修改配置filebeat.yml ```yml ## Filebeat configuration # 配置:需要扫描的日志文件路径 filebeat.inputs: - type: log paths: - G:\shimmer-project\trance-log\logs\* # 此处改为需要日志采集的路径!!! # 多行合并(根据日期正则区分每条日志) multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}' multiline.negate: true multiline.match: after # 只支持输出到一个ouput中 output: # 输出到elasticsearch # elasticsearch: # hosts: ['localhost:9200'] # index: "filebeat-elasticsearch-%{+YYYY.MM.dd}" # 配置:输出到 ELK 平台 Logstash 的监听端口,默认为5044 logstash: hosts: [ 'localhost:5044' ] # 此处改为 Logstash 监听的端口!!! # 包含过滤字符 # include_lines: ['ERROR', 'WARN'] # 不包含过滤字符 # exclude_lines: ['DEBUG'] http.enabled: true http.host: 0.0.0.0 ``` 3. 启动filebeat.exe,成功运行后即可在 Kibana 上看到 Filebeat 采集上传的日志数据 ![](https://s2.loli.net/2022/03/29/jIghlTcLawAQVim.png "屏幕截图.png")