Laradock 中的 Logstash搭建 ELK 日志管道的完整实战指南【免费下载链接】laradockFull PHP development environment for Docker. Run Laravel, Symfony, CodeIgniter, Phalcon, WordPress, Drupal, Magento, Moodle, or any PHP project with 70 pre-configured services: Nginx, Apache, PHP-FPM, MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch more.项目地址: https://gitcode.com/gh_mirrors/la/laradock导读本文讲解如何在 Laradock 中运行 Logstash——ELK 技术栈中的 L即负责从多源采集日志/事件、经过转换后写入 Elasticsearch 的服务端数据处理管道。你将掌握 Logstash 容器的启动/停止/移除、与 Elasticsearch/Kibana 的版本匹配机制、管道配置文件的编写与热重载以及用命令行做配置校验和插件检查的完整实战方法。Logstash 在 Laradock 中的角色Logstash** 和Kibana构成一套开箱即用的本地日志分析环境。Laradock 将 Logstash 构建为独立的容器镜像版本由根目录.env中的共享变量ELK_VERSION统一控制从而保证 Logstash、Elasticsearch、Kibana 三者版本对齐。在.env.example中该变量的默认值为ELK_VERSION8.19.13见 .env.exampleElastic 官方要求栈内各组件的 major/minor 版本必须匹配这也是 Laradock 使用单一变量驱动三个镜像的原因。启动 Logstash方式一Laradock CLI./laradock start logstash方式二Docker Composedocker compose up -d logstash在 logstash/compose.yml 中logstash服务通过depends_on声明了elasticsearch依赖因此启动 Logstash 时 Elasticsearch 会自动一并拉起——正如文档所述没有 ElasticsearchLogstash 的日志数据无处可送。停止与移除 Logstash暂停容器数据安全之后可再次启动# Laradock CLI ./laradock stop logstash # Docker Compose docker compose stop logstash彻底删除容器# Laradock CLI ./laradock remove logstash # Docker Compose docker compose rm -sf logstash配置总览版本、端口与 JVM 堆内存与许多 Laradock 服务不同Logstash没有logstash/defaults.env文件。它的镜像构建依赖根.env的ELK_VERSION变量而端口与 JVM 堆内存则直接固化在 logstash/compose.yml 中未暴露为.env变量配置项值设置位置端口映射5001:5001logstash/compose.ymlLS_JAVA_OPTS-Xmx1g -Xms1glogstash/compose.yml从源码看logstash/compose.yml 将ELK_VERSION通过build.args传给镜像构建build: context: ./logstash args: - ELK_VERSION${ELK_VERSION}而 logstash/Dockerfile 的第一行即使用该 ARG 指定基础镜像ARG ELK_VERSION FROM logstash:${ELK_VERSION}这意味着只要修改根.env中的ELK_VERSION重新构建 Logstash 镜像即可切换版本且天然与 Elasticsearch/Kibana 保持一致。同时容器通过networks挂接在frontend与backend两个 Laradock 自定义网络上这两个网络定义在根 docker-compose.yml 中。这也是 Logstash 与其他容器通信的基础在管道配置中访问 Elasticsearch 必须使用容器名elasticsearch而不是localhost。配置 Logstash 管道Logstash 的运行由两个挂载进容器的部分驱动服务器配置logstash/config/logstash.yml挂载到容器内/usr/share/logstash/config/logstash.yml管道目录logstash/pipeline/挂载到容器内/usr/share/logstash/pipeline用于存放你的.conf管道文件。两个挂载均在 logstash/compose.yml 的volumes中声明。服务器配置解读logstash/config/logstash.yml 的内容非常精简共四行关键配置http.host: 0.0.0.0 xpack.monitoring.enabled: false config.reload.automatic: true path.config: /usr/share/logstash/pipelinehttp.host: 0.0.0.0Logstash 的 HTTP 接口绑定所有网络接口保证容器外部可访问xpack.monitoring.enabled: false关闭 X-Pack 监控本地开发场景下避免不必要的资源开销与 license 限制config.reload.automatic: true开启配置自动重载管道文件变更后无需重启容器即生效path.config: /usr/share/logstash/pipeline指定管道配置目录与挂载点一致也是--config.test_and_exit校验时扫描的路径。镜像预置的插件与驱动logstash/Dockerfile 在官方镜像之上做了三处定制值得留意USER root RUN rm -f /usr/share/logstash/pipeline/logstash.conf RUN curl -L -o /usr/share/logstash/lib/mysql-connector-java-5.1.47.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar COPY ./pipeline/ /usr/share/logstash/pipeline/ COPY ./config/ /usr/share/logstash/config/ RUN logstash-plugin install logstash-input-beats删除官方镜像自带的示例logstash.conf避免污染你的管道目录通过 curl 下载并内置 MySQL JDBC 驱动mysql-connector-java-5.1.47.jar方便在管道中直接使用jdbcinput 插件查询 MySQL预装logstash-input-beats插件可直接接收 Filebeat/Metricbeat 等 Beats 系列采集器发送的数据。也就是说从 Filebeat 采集服务器日志、用 MySQL JDBC 驱动读取业务数据这两条最常见的管道入口都已开箱即用。最小可用管道示例logstash/pipeline/目录初始是空的仅含一个.gitkeep在放入.conf文件之前 Logstash 不会处理任何数据。一个最小管道——接收 Beats 输入并直接写入 Elasticsearchinput { beats { port 5044 } } output { elasticsearch { hosts [elasticsearch:9200] index logs-%{YYYY.MM.dd} } }将其保存为logstash/pipeline/logstash.confLogstash 会因config.reload.automatic: true自动加载无需重启。两个注意点output 的 host 必须写容器名elasticsearch端口9200对应容器内 Elasticsearch 的 REST 接口不要写localhost因为 Logstash 与 Elasticsearch 各自运行在独立容器中通过frontend/backend网络互联index使用日期通配符%{YYYY.MM.dd}生成按天滚动的索引这是日志场景的常见约定。管道上线前先做语法校验自动重载虽方便但生产管道文件若存在语法错误Logstash 会静默地加载失败。因此改动管道后务必先用测试模式校验# Laradock CLI ./laradock exec -T logstash bin/logstash --config.test_and_exit # Docker Compose docker compose exec -T logstash bin/logstash --config.test_and_exit该命令会校验path.config即/usr/share/logstash/pipeline下的所有管道文件校验通过后直接退出、不会启动管道因此即使容器当前正在处理数据也可以安全地对它执行。-T表示不分配伪终端适合在脚本/CI 中调用。检查已安装插件确认预装的logstash-input-beats或你后来手动安装的插件是否就位# Laradock CLI ./laradock exec -T logstash bin/logstash-plugin list # Docker Compose docker compose exec -T logstash bin/logstash-plugin list输出列表中应能看到logstash-input-beats若你通过管道使用了 MySQLjdbc输入还需要在输出中确认logstash-input-jdbc插件同样存在。常见问题排查No pipeline is running没有管道在运行logstash/pipeline/目录初始为空仅.gitkeepLogstash 必须至少有一个包含input/output块的.conf文件才会开始处理参考上文最小可用管道示例。Cant reach Elasticsearch无法连接 Elasticsearch管道 output 的 host 必须使用容器名elasticsearch而不是localhost两者位于同一 Docker 网络frontend/backend之内。与 Elasticsearch/Kibana 版本不匹配三者共享根.env的ELK_VERSION。如果你手动修改了某一处的版本需要重建全部三个服务使镜像重新构建./laradock rebuild logstash elasticsearch kibana高负载下内存不足JVM 堆内存固化在 logstash/compose.yml 的LS_JAVA_OPTS-Xmx1g -Xms1g本地处理大规模数据时请直接在该文件上调高例如改为-Xmx2g -Xms2g。宿主机 5001 端口被占用该端口硬编码在 logstash/compose.yml 的ports中没有对应的.env变量可覆盖。需要释放宿主机端口或直接编辑该 compose 文件修改映射例如5002:5001容器内端口保持 5001 不变。串联完整的 ELK 工作流Logstash 是 ELK 的中间枢纽Elasticsearch提供搜索与存储后端Kibana提供数据可视化界面。三者由ELK_VERSION统一版本驱动组成一条采集Beats/MySQL/JDBC→ 管道处理Logstash→ 存储检索Elasticsearch→ 可视化Kibana的完整本地日志分析链路。如果你是 Laradock 的新用户建议先阅读Getting Started完成环境初始化再按本文步骤从启动 Logstash 开始搭建你的日志管道。【免费下载链接】laradockFull PHP development environment for Docker. Run Laravel, Symfony, CodeIgniter, Phalcon, WordPress, Drupal, Magento, Moodle, or any PHP project with 70 pre-configured services: Nginx, Apache, PHP-FPM, MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch more.项目地址: https://gitcode.com/gh_mirrors/la/laradock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
DeepSeek-v2-7b企业知识库落地实战:从数据清洗到部署避坑 简介:本资源是一份面向企业AI工程师与知识系统架构师的实战指南,聚焦DeepSeek大模型在跨行业知识库建设中的落地路径与微调方法论,解决传统知识管理系统语义理解弱、数据孤岛难打通、个性化服务缺失等共性难题。文档共24页PDF,结构… · 2026/9/23 17:43:34
海淀区工商局面试避坑:3大源码解析细节定成败 海淀区工商局面试避坑:3大源码解析细节定成败 官方文档太长抓不住重点?这是大多数准备海淀区工商局相关技术岗位面试的候选人最大的痛点。你不需要背诵整本规范,但必须看透核心逻辑。很多新人死记硬背流程,却忽略了底层数据流转的 源码解析… · 2026/9/23 17:43:34
Loco 与 SeaORM 实战:基于 Loco Starter 构建 REST 便签后端并扩展文件上传接口 后端数据库ORM 【免费下载链接】sea-orm 🐚 A powerful relational ORM for Rust 项目地址: https://gitcode.com/gh_mirrors/se/sea-orm 点击查看 免费下载 本文以 examples/loco_starter 为例,完整讲解如何基于 Loco(loco-rs 1… · 2026/9/24 19:36:53
Yii 2 向后兼容(BC)策略完全指南:从版本承诺到接口与类的兼容性判定规则 后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 本篇指南以 Yii 2 框架核心团队维护的《Backwards Compatibility》(英文版 / 俄文版… · 2026/9/24 19:36:47
Word打开显示只读的6大真实原因与精准修复方案 1. 为什么Word一打开就“锁住”了?这不是Bug,而是系统在悄悄告诉你某些事 你双击一个Word文档,界面右上角赫然显示“只读”,标题栏还跟着加了个【只读】后缀——哪怕你刚新建的文件、本地保存的文档、甚至U盘里拷出来的文件&#… · 2026/9/24 19:36:47
AI原生数据治理选型指南:五大平台能力分化与决策框架 1. 当数据治理撞上AI原生,选型逻辑为什么突然变了过去几年做数据治理,大家聊得最多的是元数据采集覆盖率、血缘解析准确率、数据质量规则跑批时长这些指标。但从2025年下半年开始,我陆续参与了几个大型企业的数据平台升级评审,发现… · 2026/9/24 19:36:40
GNG生长型神经气体网络:自适应聚类的动态拓扑解法 1. 什么是GNG生长型神经气体网络?它为什么能甩开K-means和DBSCAN几条街? “GNG生长型神经气体网络”——光看这名字,很多人第一反应是:又一个拗口的学术黑话。但如果你正在处理客户分群、异常检测、传感器数据压缩,或者… · 2026/9/24 19:36:40
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44