当前位置: 首页 > 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控件显示图像的…...

反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown

目录 前言1. 简介2. 神经网络中的链式法则3. 微积分的计算4. 公式含义5. 代价函数对权重偏置的敏感度6. 多个神经元的情形7. 回顾相关资料结语 前言 3Blue1Brown 视频笔记&#xff0c;仅供自己参考 这个章节主要来深度讲解反向传播中的一些微积分理论 官网&#xff1a;https://…...

matlab读取excel表格

使用matlab读取excel表格中的数据 使用推荐代码读取excel表格中的数据 path "C:\Users\24975\Desktop\503\GUI展示案例\Tx_20_0_Rx_40_90_0.1_95_L.xlsx";%文件路径 data readtable(path,Sheet,Sheet1,ReadRowNames,false,ReadVariableNames,false&#xff0c;Ra…...

基于springboot+vue实现的助学兼职系统(源码+L文+ppt)4-092

基于springbootvue实现的助学兼职系统&#xff08;源码L文ppt&#xff09;4-092 第4章 系统设计 4.1 总体功能设计 一般学生、招聘公司和管理者都需要登录才能进入助学兼职系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使…...

⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...

CMU生成式人工智能大模型:从入门到放弃(九)

引言 在前面的系列博客中&#xff0c;我们深入探讨了生成式对抗网络&#xff08;GANs&#xff09;和变分自编码器&#xff08;VAEs&#xff09;等生成式模型。今天&#xff0c;我们将探索扩散模型&#xff08;Diffusion Models&#xff09;的进一步应用&#xff0c;并讨论在上…...

HTML基础总结

一、简介 HTML&#xff08;HyperText Markup Language&#xff09;即超文本标记语言&#xff0c;是用于创建网页的标准标记语言。它通过使用各种标签来定义网页的结构和内容&#xff0c;告诉浏览器如何显示网页。HTML 文档由标签和文本组成&#xff0c;标签用于描述文本的性质…...

EXCELL中如何两条线画入一张图中,标记坐标轴标题?

1&#xff0c;打开excel&#xff0c;左击选中两列&#xff0c; 2&#xff0c;菜单栏>“插入”>”二维折线图”选中一个 3&#xff0c;选中出现的两条线中的一条右击>最下一行&#xff0c;“设置数据系列格式” 4&#xff0c;右测“系列选项中”>点击“次坐标轴” 5…...

Zabbix企业级分布式监控环境部署

“运筹帷幄之中&#xff0c;决胜千里之外”。在IT运维中&#xff0c;监控占据着重要的地位&#xff0c;按比例来算&#xff0c;说占30%一点也不为过。对IT运维工程师来说&#xff0c;构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中&#xff0c;可供选…...

水轮发电机油压自动化控制系统解决方案介绍

在现代水电工程中&#xff0c;水轮机组油压自动化控制系统&#xff0c;不仅直接关系到水轮发电机组的安全稳定运行&#xff0c;还影响着整个水电站的生产效率和经济效益。 一、系统概述 国科JSF油压自动控制系统&#xff0c;适用于水轮发电机组调速器油压及主阀&#xff08;蝶…...

今天不分享技术,分享秋天的故事

引言 这个爱情故事好像是个悲剧&#xff0c;你说的是婚姻。爱情没有悲剧&#xff0c;对爱者而言&#xff0c;爱情怎么会是悲剧呢。对春天而言&#xff0c;秋天是它的悲剧吗。结尾是什么&#xff0c;等待&#xff0c;之后呢&#xff0c;没有之后。或者说&#xff0c;等待的结果…...

成都又出现新增病例了/seo sem是什么职位

http://blog.csdn.net/rryqsh/article/details/8156558如果你正在做ASP.NET&#xff0c;那肯定会用到IIS如果你想在ASP.NET Application中加入某个定时任务&#xff0c;那想必一定是用一个线程在不停地做定时计算那假设我们在自己的ASP.NET应用程序中加入了Quartz.NET框架&…...

设计定制型网站建设/电脑清理优化大师

转自http://www.cnblogs.com/beijiguangyong/archive/2010/09/26/2302822.html 概要设计说明书 1引言... 2 1.1编写目的... 2 1.2背景... 2 1.3定义... 2 1.4参考资料... 2 2总体设计... 2 2.1需求规定... 2 2.2运行环境... 2 2.3基本设计概念和处理流程... 3 2.4结构... 3 2.5…...

网站建设设计书/大连seo按天付费

原文链接&#xff1a;http://docs.autofac.org/en/latest/lifetime/index.html Lifetime 是指服务的实例在程序中存活多久 – 从最初的实例化到清理&#xff08;disposal&#xff09;。例如&#xff0c;一个实现 IDisposable 的对象&#xff0c;它的生命周期就是从实例化时开始…...

建网站必需服务器吗/建站是什么意思

GDB 是我们平时调试 c/c程序的利器, 查起复杂的 bug 问题,比打印大法要好的多,但是也不得不说, gdb 在默认情况下用起来并不是很好用,最近学习到几个高级点的技巧,分享下:一 美化打印先上个例子:#include <stdio.h>typedef struct {int i ;int j;char * str;int array[10…...

wordpress文章发布工具/广告推广计划

1.作用 给所有选择器选中的标签中&#xff0c;相交的那部分标签设置属性 2.格式 /*标签名称1标签名称2{ 属性:值; }*/ divp{color: red;} 3.注意点 1.选择器与选择器之间不能有任何的连接符号 2.选择器可以是id&#xff0c;类&#xff0c;标签选择器 3.在企业开发中不使…...

唐山网站制作价格/如何建立免费公司网站

对于java当中的继承你了解多少呢?你又是怎样来理解java继承这个概念的?下面就和小编一起来详细的了解一下这方面的内容吧。一、什么是java继承java继承继承是面向对象最显著的一个特性。是从已经有的类当中&#xff0c;派生出来的新的类。新的类可以吸收已经有的类的数据属性…...