elastic-search ⭐ · 项目介绍

elastic-search ⭐

本页由项目自动归档生成,源码与最新进展以 GitHub 仓库为准。

项目简介

一个基于 Docker Compose 的 OpenSearch(Elasticsearch 开源分支)日志存储、搜索与分析环境,配套 OpenSearch Dashboards 做可视化,并通过 Filebeat / Logstash 采集日志。它面向想要在本地快速拉起一套可观测日志平台、熟悉 OpenSearch 索引模式 / 聚合 / 仪表板用法的开发者与运维人员。

技术栈

维度 技术
主要语言/框架 Docker / Docker Compose,Shell(Bash 脚本),OpenSearch(Elasticsearch 开源分支)
关键依赖/库 opensearchproject/opensearch:2.11.0、opensearchproject/opensearch-dashboards:2.11.0、docker.elastic.co/logstash/logstash:7.17.10、docker.elastic.co/beats/filebeat:7.17.10(注:OpenSearch 2.11 与 Elastic 7.17 系列组件混合使用)
数据存储 OpenSearch 索引(数据卷 elasticsearch-data);日志经 Filebeat / Logstash 采集后写入
运行/部署方式 docker-compose up -d;针对 Apple Silicon(ARM64)优化;端口 9200(OpenSearch)、9600(Logstash)、5601(Dashboards);单节点 discovery.type=single-node,本地开发禁用安全插件

核心功能 / 亮点

  • OpenSearch 2.11 日志存储 / 搜索 / 聚合:兼容 Elasticsearch API,支持全文搜索、结构化查询与聚合分析(docker-compose.yml 中 opensearch 服务)。
  • OpenSearch Dashboards 可视化:opensearch-dashboards 服务提供 Discover、可视化图表与监控仪表板(DASHBOARDS_GUIDE.md 含完整图文教程)。
  • 日志采集管线:filebeat/filebeat.yml 采集 → logstash/config/logstash.conf(:5044 接收、:9600 监控)→ OpenSearch。
  • 索引模式创建脚本(create-index-pattern.sh):通过 Dashboards API 创建 logs-* 索引模式(时间字段 @timestamp),UI 创建失败时的兜底。
  • 测试与验证(test-search.sh、TEST_DATA.md、logs/ 示例日志:application.log 文本日志与 json/app.log JSON 日志)。
  • ARM64 优化与本地友好配置:单节点、关闭安全插件(plugins.security.disabled=true、DISABLE_SECURITY_DASHBOARDS_PLUGIN=true),便于本机直接体验。

目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
elastic-search/
├── docker-compose.yml # 4 个服务:opensearch / logstash / opensearch-dashboards / filebeat
├── filebeat/
│ └── filebeat.yml # 日志采集配置
├── logstash/
│ └── config/
│ ├── logstash.conf # 日志管道(:5044 接收)
│ └── logstash.yml
├── logs/ # 示例日志(application.log / json/app.log)
├── create-index-pattern.sh # 创建索引模式脚本
├── test-search.sh # 搜索测试脚本
├── DASHBOARDS_GUIDE.md # Dashboards 完整使用指南
├── TEST_DATA.md # 测试数据说明
└── README.md

相关链接

  • GitHub 仓库:elastic-search
  • 本地访问:OpenSearch Dashboards http://localhost:5601(需先 docker-compose up -d 并创建索引模式)