搜索
首页系统教程LINUX使用Docker构建ELK+Filebeat日志集中管理平台

使用Docker构建ELK+Filebeat日志集中管理平台

Jan 12, 2024 pm 05:51 PM
linuxlinux教程红帽linux系统linux命令linux认证红帽linuxlinux视频

当前环境

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

使用Docker构建ELK+Filebeat日志集中管理平台

引入Filebeat

使用Docker构建ELK+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

使用Docker构建ELK+Filebeat日志集中管理平台

使用Docker构建ELK+Filebeat日志集中管理平台

总结

本文主要讲述了如何一步步搭建ELK的过程,以及Filebeat在其中所起的作用。

这儿仅仅给大家做了一个演示,要在生产环境中部署时,还需使用数据卷进行数据持久化,容器内存问题也需考虑,elasticsearch与logstash都是相对吃内存的,如果不加以限制,很可能会拖垮你整个服务器。

当然安全因素也是大家不能忽视的,如传输的安全性、端口权限的最小化暴露程度,防火墙设置等。

后续

logstash解析日志格式,如JAVA、nginx、nodejs等日志;

elasticsearch的常用搜索语法;

通过kibana制作可视化图表;

以上是使用Docker构建ELK+Filebeat日志集中管理平台的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:Linux就该这么学。如有侵权,请联系admin@php.cn删除
Linux的前3个开源虚拟数据室(VDR)Linux的前3个开源虚拟数据室(VDR)May 08, 2025 am 11:35 AM

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

upscayl:linux的开源图像升级工具upscayl:linux的开源图像升级工具May 08, 2025 am 11:19 AM

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

Ghostty- linux的功能丰富的终端模拟器Ghostty- linux的功能丰富的终端模拟器May 08, 2025 am 11:14 AM

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

Innotop- MySQL的基于CLI的顶级监视器工具Innotop- MySQL的基于CLI的顶级监视器工具May 08, 2025 am 10:48 AM

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

如何使用RESTIC工具备份Linux数据如何使用RESTIC工具备份Linux数据May 08, 2025 am 10:34 AM

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

2024年最受欢迎的Linux发行2024年最受欢迎的Linux发行May 08, 2025 am 10:15 AM

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

2025年Linux的前15个平铺窗户经理2025年Linux的前15个平铺窗户经理May 08, 2025 am 10:08 AM

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

如何使用Linux中的SED动态替换数字如何使用Linux中的SED动态替换数字May 08, 2025 am 09:33 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

螳螂BT

螳螂BT

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

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

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

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境