使用Docker构建ELK+Filebeat日志集中管理平台
1.系统:centos 7
2.docker 1.12.1
介绍ElasticSearch
Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。
Logstash
Logstash 是一个具有实时渠道能力的数据收集引擎,主要用于日志的收集与解析,并将其存入 ElasticSearch中。
Kibana
Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。
Filebeat
引入Filebeat作为日志搜集器,主要是为了解决Logstash开销大的问题。相比Logstash,Filebeat 所占系统的 CPU 和内存几乎可以忽略不计。
架构不引入Filebeat
引入Filebeat
启动ElasticSearch
docker run -d -p 9200:9200 --name elasticsearch elasticsearch
启动Logstash
# 1. 新建配置文件logstash.conf input { beats { port => 5044 } } output { stdout { codec => rubydebug } elasticsearch { #填写实际情况elasticsearch的访问IP,因为是跨容器间的访问,使用内网、公网IP,不要填写127.0.0.1|localhost hosts => ["{$ELASTIC_IP}:9200"] } } # 2.启动容器,暴露并映射端口,挂载配置文件 docker run -d --expose 5044 -p 5044:5044 --name logstash -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf
启动Filebeat
下载地址:https://www.elastic.co/downloads/beats/filebeat
# 1.下载Filebeat压缩包 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.2.2-linux-x86_64.tar.gz # 2.解压文件 tar -xvf filebeat-5.2.2-linux-x86_64.tar.gz # 3.新建配置文件filebeat.yml filebeat: prospectors: - paths: - /tmp/test.log #日志文件地址 input_type: log #从文件中读取 tail_files: true #以文件末尾开始读取数据 output: logstash: hosts: ["{$LOGSTASH_IP}:5044"] #填写logstash的访问IP # 4.运行filebeat ./filebeat-5.2.2-linux-x86_64/filebeat -e -c filebeat.yml
启动Kibana
docker run -d --name kibana -e ELASTICSEARCH_URL=http://{$ELASTIC_IP}:9200 -p 5601:5601 kibana测试
模拟日志数据
# 1.创建日志文件 touch /tmp/test.log # 2.向日志文件中写入一条nginx访问日志 echo '127.0.0.1 - - [13/Mar/2017:22:57:14 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"' >> /tmp/test.log
访问 http://{$KIBANA_IP}:5601
本文主要讲述了如何一步步搭建ELK的过程,以及Filebeat在其中所起的作用。
这儿仅仅给大家做了一个演示,要在生产环境中部署时,还需使用数据卷进行数据持久化,容器内存问题也需考虑,elasticsearch与logstash都是相对吃内存的,如果不加以限制,很可能会拖垮你整个服务器。
当然安全因素也是大家不能忽视的,如传输的安全性、端口权限的最小化暴露程度,防火墙设置等。
后续logstash解析日志格式,如JAVA、nginx、nodejs等日志;
elasticsearch的常用搜索语法;
通过kibana制作可视化图表;
以上是使用Docker构建ELK+Filebeat日志集中管理平台的详细内容。更多信息请关注PHP中文网其他相关文章!

虚拟数据室(VDRS)提供安全的文档存储和共享,非常适合敏感业务信息。 本文探讨了三个开源VDR解决方案,用于Linux上的本地部署,从而消除了对基于云的服务的需求

UPSCAYL:您的免费和开源解决方案用于Linux上的高分辨率图像 经常使用图像的Linux用户知道低分辨率图片的挫败感。 幸运的是,UpScayl提供了强大,免费和开源的解决方案。这个

终端模拟器景观正在迅速发展,开发人员利用现代硬件,GPU加速度,容器化甚至AI/LLM来增强控制台体验。 输入Ghostty,这是一种新的开源,跨平台终端模拟器

Innotop:强大的MySQL监控命令行工具 Innotop是一款优秀的命令行程序,类似于top命令,用于监控在InnoDB引擎下运行的本地和远程MySQL服务器。它提供了一套全面的功能和选项,帮助数据库管理员(DBA)跟踪MySQL性能的各个方面,排除问题并优化服务器配置。 Innotop允许您监控关键的MySQL指标,例如: MySQL复制状态 用户统计信息 查询列表 InnoDB缓冲池 InnoDB I/O统计信息 打开的表 锁定的表 等等… 该工具定期刷新其数据,提供对服务器状态的

RESTIC:您的综合保护Linux备份指南 数据丢失会削弱Linux系统。 意外删除,硬件故障或系统损坏需要强大的备份策略。 Restic是领先的解决方案,提供速度,Securi

2025年最受欢迎的十大Linux发行版 进入2025年,我们很高兴与Linux爱好者分享今年迄今为止最受欢迎的发行版。 DistroWatch一直是关于开源操作系统的最可靠信息来源,尤其关注Linux发行版和BSD版本。它持续收集并呈现大量关于Linux发行版的信息,使它们更容易访问。 虽然它不能很好地衡量发行版的流行度或使用率,但DistroWatch仍然是Linux社区内最被接受的流行度衡量标准。它使用页面点击排名(简称PHR)统计数据来衡量Linux发行版在网站访问者中的流行度。 [您可

Linux窗口管理器:最佳瓷砖选项的综合指南 Linux窗口管理人员协调应用程序窗口的行为方式,悄悄地管理开放程序的视觉布置。 本文探索了顶级铺平的窗户男人

Linux系统中的sed命令(流编辑器)是一款强大的文本处理工具,广泛用于文本操作任务,包括搜索、查找和替换文本,甚至执行高级脚本编写。 本文将指导您了解sed的基础知识,解释如何将其用于动态数字替换,并为初学者提供实用示例。 什么是sed? sed命令逐行处理文本,允许您: 搜索特定模式。 替换文本或数字。 删除或插入行。 以各种方式转换文本。 它以非交互方式工作,这意味着它可以在无需人工干预的情况下处理文件或文本流。 sed命令的基本语法 sed [选项] '命令' 文件 说明: 选项


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版
中文版,非常好用

Dreamweaver Mac版
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境