当前位置: 首页 > news >正文

Dockerfile搭建ELK

使用 Dockerfile 安装 ELK

一、引言

ELK Stack(Elasticsearch, Logstash, Kibana)是一种流行的日志管理和分析解决方案。它允许用户实时搜索、分析和可视化日志数据。通过 Docker,可以方便地部署 ELK ,快速获取一个功能齐全的日志分析环境。本文将引导您通过 Dockerfile 安装 ELK Stack,并提供详细的步骤和示例。

二、ELK Stack 组件简介

  1. Elasticsearch:一个基于 Lucene 的搜索引擎,负责存储和搜索数据。
  2. Logstash:一个数据处理管道,能够从多种来源接收数据,进行过滤和转换,然后将数据发送到 Elasticsearch。
  3. Kibana:一个数据可视化工具,提供可视化界面以展示存储在 Elasticsearch 中的数据。

三、环境准备

在开始之前,确保您的系统上已安装 Docker 和 Docker Compose。可以使用以下命令检查 Docker 是否已安装:

docker --version

如果未安装,请前往 Docker 官方文档 进行安装。

四、创建 Dockerfile

4.1 创建项目目录

首先,我们需要创建一个项目目录来存放我们的 Dockerfile 和其他配置文件。

mkdir elk-stack
cd elk-stack

4.2 创建 Dockerfile

elk-stack 目录中,创建一个 Dockerfile 文件,并在其中添加以下内容:

# 使用官方 Elasticsearch 镜像
FROM elasticsearch:7.x# 配置 Elasticsearch
ENV discovery.type=single-node# 暴露 Elasticsearch 端口
EXPOSE 9200 9300# 启动 Elasticsearch
CMD ["elasticsearch"]

这个 Dockerfile 基于官方的 Elasticsearch 镜像,并设置为单节点模式。

4.3 创建 Logstash 配置文件

elk-stack 目录中,创建一个 logstash.conf 文件,配置 Logstash 的输入、过滤和输出:

input {stdin {}
}filter {mutate {add_field => { "source" => "stdin" }}
}output {elasticsearch {hosts => ["elasticsearch:9200"]index => "logstash-%{+YYYY.MM.dd}"}
}

这个配置文件的作用是接收标准输入的数据,并将其发送到 Elasticsearch,使用日期作为索引名的一部分。

4.4 创建 Kibana 配置文件

elk-stack 目录中,创建一个 kibana.yml 配置文件:

server.port: 5601
elasticsearch.hosts: ["http://elasticsearch:9200"]

这个配置文件定义了 Kibana 服务器的端口和 Elasticsearch 的地址。

4.5 创建 Docker Compose 文件

创建一个名为 docker-compose.yml 的文件,以便于管理 ELK Stack 的多个服务:

version: '3.7'services:elasticsearch:build: .environment:- discovery.type=single-nodeports:- "9200:9200"- "9300:9300"logstash:image: logstash:7.xvolumes:- ./logstash.conf:/usr/share/logstash/pipeline/logstash.confports:- "5044:5044"kibana:image: kibana:7.xports:- "5601:5601"environment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200

在这个配置文件中,我们定义了三个服务:Elasticsearch、Logstash 和 Kibana。Elasticsearch 通过构建 Dockerfile 创建,而 Logstash 和 Kibana 则直接使用官方镜像。

五、构建和启动 ELK Stack

5.1 构建 Docker 镜像

elk-stack 目录中,使用以下命令构建 Docker 镜像:

docker-compose build

5.2 启动 ELK Stack

构建完成后,使用以下命令启动所有服务:

docker-compose up

您应该会看到所有服务的日志输出,表示它们正在运行。

5.3 验证服务状态

  • Elasticsearch: 打开浏览器,访问 http://localhost:9200。如果看到 Elasticsearch 的状态信息,说明服务正常运行

  • Kibana: 打开浏览器,访问 http://localhost:5601。您将看到 Kibana 的用户界面

六、使用 Logstash 发送数据

您可以使用 Logstash 收集数据并发送到 Elasticsearch。以下是通过标准输入发送数据的示例:

  1. 打开另一个终端窗口。
  2. 使用以下命令进入 Logstash 容器:
docker exec -it <logstash_container_id> /bin/bash
  1. 运行 Logstash,并输入数据:
logstash -f /usr/share/logstash/pipeline/logstash.conf

在提示符下输入一些日志信息,然后按 Enter,这些信息将自动发送到 Elasticsearch。

七、在 Kibana 中查看数据

  1. 打开 Kibana UI,访问 http://localhost:5601
  2. 在左侧菜单中选择 “Discover”,您应该能看到 Logstash 发送到 Elasticsearch 的数据。
  3. 如果没有数据,请确保您在 Logstash 中正确输入了数据,并且数据没有被过滤掉。

八、总结与注意事项

详细介绍了如何使用 Dockerfile 和 Docker Compose 安装和配置 ELK Stack。通过这种方式,我们能够快速搭建一个完整的日志收集、分析和可视化环境。

注意事项:

  1. 资源限制:确保您的 Docker 容器有足够的内存和 CPU 资源,尤其是在处理大量日志数据时,Elasticsearch 可能会消耗较多资源。

  2. 数据持久化:本文配置中未配置数据持久化,重启容器时,数据将丢失。可以通过挂载卷来持久化 Elasticsearch 和 Logstash 的数据。

  3. 安全性:在生产环境中,应考虑使用安全措施,如用户认证和加密通信。

  4. 版本兼容性:确保 Elasticsearch、Logstash 和 Kibana 的版本一致,以避免兼容性问题。

希望这能帮助您更好地理解和使用 ELK Stack 进行日志管理和分析。

相关文章:

Dockerfile搭建ELK

使用 Dockerfile 安装 ELK 一、引言 ELK Stack&#xff08;Elasticsearch, Logstash, Kibana&#xff09;是一种流行的日志管理和分析解决方案。它允许用户实时搜索、分析和可视化日志数据。通过 Docker&#xff0c;可以方便地部署 ELK &#xff0c;快速获取一个功能齐全的日…...

在合规的地方怎么用EACO地球链兑换交换价值?

地球链EACO&#xff08;EarthChain&#xff0c;简称$E&#xff09;是一种虚拟数字资产。 目前在中国大陆&#xff0c;虚拟资产相关业务活动属于金融活动&#xff0c;包括虚拟资产的交易、兑换等操作&#xff0c;因此应该谨慎去寻求如何用它来交换价值。 虚拟资产交易炒作活动&…...

VS无法安装Win10SDK_10.0.2200,快捷方法

Visual Studio无法安装Win10SDK_10.0.2200&#xff0c;我在安装VS2019、2022提示&#xff0c;软件就不能编译。 因为之前安装过VS软件&#xff0c;重新安装软件提示“无法安装”。 原因 之前安装在D盘&#xff0c;现在没有D盘了 说明 因为电脑第一次安装VS&#xff0c;会自动安…...

github多个账号配置多个SSH秘钥

背景 对于有多个github账号的同学&#xff0c;需要配置多个ssh秘钥分别管理多个账号。 方法 1、生成多个SSH秘钥 # 为第一个 GitHub 账号生成密钥 ssh-keygen -t ed25519 -C "your_email_1example.com" -f ~/.ssh/id_ed25519_github_work# 为第二个 GitHub 账号生…...

静态/动态代理详解,一次性看完再也不会搞不清!

代理官方原文翻译&#xff1a; 给其他对象提供一个代理或者占位符&#xff0c;来控制对这个对象的访问。 代理最核心的思想&#xff1a; 在客户端和目标对象之间创建一个“中介”&#xff0c;用于保护目标对象和增强目标对象 静态代理&#xff1a; 该代理对象需要我们手动…...

Webserver(2)GCC

目录 安装GCCVScode远程连接到虚拟机编写代码gcc编译过程gcc与g的区别Xftp连接虚拟机上传文件 安装GCC sudo apt install gcc g查看版本是7.5 touch test.c创建代码 但是在虚拟机中写代码很不方便 VScode远程连接到虚拟机编写代码 gcc test.c -o app在虚拟机中用gcc编译的…...

mac电脑设置chrome浏览器语言切换为日语英语等不生效问题

在chrome中设置了语言&#xff0c;并且已经置顶了&#xff0c;但是不生效&#xff0c;在windows上直接有设置当前语言为chrome显示语言&#xff0c;但是mac上没有。 解决办法 在系统里面有一个单独给chrome设置语言的&#xff1a; 单独给它设定成指定的语言&#xff0c;然后重…...

Python中的人工智能框架与实例

在人工智能(AI)领域&#xff0c;Python因其简洁的语法、丰富的库和强大的社区支持&#xff0c;成为了最受欢迎的编程语言之一。本文将详细介绍Python中的人工智能框架&#xff0c;并通过具体实例展示如何使用这些框架来实现不同的人工智能应用。 一、Python中的人工智能框架 …...

论文阅读(二十六):Dual Attention Network for Scene Segmentation

文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文&#xff1a;Dual Attention Network for Scene Segmentation   论文链接&#xff1a;Dual Attention Network for Scene Segmentation   代码链接&#xff1a;Github 1.Intr…...

Stack和Queue(3)

Stack和Queue&#xff08;3&#xff09; priority_queue的模拟实现 priority_queue.h #include <vector>namespace soobin {template<class T, class Container vector<T>>class priority_queue{public://强制生成默认构造priority_queue() default;temp…...

怎样把学生的成绩单独告知家长?

期中考试季的到来让校园里的气氛似乎也变得紧张起来。家长们开始频繁地联系老师&#xff0c;希望了解孩子的表现&#xff1b;孩子们则在考试后&#xff0c;绞尽脑汁地想出各种理由&#xff0c;以期在成绩不理想时能减轻家长的失望。老师们更是忙得不可开交&#xff0c;不仅要批…...

vue3父组件控制子组件表单验证及获取子组件数值方法

1、关键部分的代码如下&#xff0c;我努力交代清楚了&#xff0c;希望能让大家看懂。 <template><KeepAlive><component ref"comp" :is"compNames[steps[compIndex].comp]" /></KeepAlive><el-button click"prevBtn"…...

【JavaEE】【多线程】单例模式

目录 一、设计模式1.1 单例模式1.1.1 饿汉模式1.1.2 懒汉模式 1.2 线程安全问题1.3 懒汉模式线程安全问题的解决方法1.3.1 原子性问题解决1.3.2 解决效率问题1.3.3 解决内存可见性问题和指令重排序问题 一、设计模式 在讲解案例前&#xff0c;先介绍一个概念设计模式&#xff…...

Java.6--多态-设计模式-抽象父类-抽象方法

一、多态 1.定义--什么是多态&#xff1f; a.同一个父类的不同子类对象&#xff0c;在做同一行为的时候&#xff0c;有不同的表现形式&#xff0c;这就是多态。&#xff08;总结为&#xff1a;一个父类下的不同子类&#xff0c;同一行为&#xff0c;不同表现形式。&#xff0…...

JAVA Maven 的安装与配置

一、下载地址 官方网站&#xff1a;Maven – Download Apache Maven 我这里是3.8.6版本 二、安装步骤 maven安装之前要先安装jdk&#xff0c;请确保你的系统已经安装了jdk环境。 1.将下载好的 Maven 进行解压 apache-maven-3.6.8-bin.zip 2.配置本地仓库:修改 conf/settin…...

【程序分享】PCB元件坐标对齐工具 V1.3

↑↑↑点击上方蓝字&#xff0c;关注我们&#xff01; “PCB元件坐标对齐工具 V1.3”脚本程序在PCB文档中将元件的坐标自动移动到参考圆弧的中心&#xff0c;参考圆弧支持机械层1层和禁止布线层&#xff0c;参考图元的位置任意&#xff0c;不局限于栅格位置。 程序会自动…...

[bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist

[bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist 环境 python 3.10 torch 2.4.0cu118 torchvision 0.19.0cu118 vllm 0.6.1.post2cu118问题详情 if torch._C._d…...

处理Hutool的Http工具上传大文件报OOM

程序环境 JDK版本&#xff1a; 1.8Hutool版本&#xff1a; 5.8.25 问题描述 客服端文件上传主要代码&#xff1a; HttpRequest httpRequest HttpUtil.createPost(FILE_UPLOAD_URL); Resource urlResource new UrlResource(url, fileName); httpRequest.form("file&q…...

transforms的使用

示例代码 from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transforms#打开该图片 img_path"hymenoptera_data/val/bees/10870992_eebeeb3a12.jpg" imgImage.open(img_path) writerSummaryWriter("logs&quo…...

python-PyQt项目实战案例:制作一个视频播放器

文章目录 1. 关键问题描述2. 通过OpenCV读取视频/打开摄像头抓取视频3. 通过PyQt 中的 QTimer定时器实现视频播放4. PyQt 视频播放器实现代码参考文献 1. 关键问题描述 在前面的文章中已经分享了pyqt制作图像处理工具的文章&#xff0c;也知道pyqt通过使用label控件显示图像的…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...