Dockerfile搭建ELK
使用 Dockerfile 安装 ELK
一、引言
ELK Stack(Elasticsearch, Logstash, Kibana)是一种流行的日志管理和分析解决方案。它允许用户实时搜索、分析和可视化日志数据。通过 Docker,可以方便地部署 ELK ,快速获取一个功能齐全的日志分析环境。本文将引导您通过 Dockerfile 安装 ELK Stack,并提供详细的步骤和示例。
二、ELK Stack 组件简介
- Elasticsearch:一个基于 Lucene 的搜索引擎,负责存储和搜索数据。
- Logstash:一个数据处理管道,能够从多种来源接收数据,进行过滤和转换,然后将数据发送到 Elasticsearch。
- 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。以下是通过标准输入发送数据的示例:
- 打开另一个终端窗口。
- 使用以下命令进入 Logstash 容器:
docker exec -it <logstash_container_id> /bin/bash
- 运行 Logstash,并输入数据:
logstash -f /usr/share/logstash/pipeline/logstash.conf
在提示符下输入一些日志信息,然后按 Enter
,这些信息将自动发送到 Elasticsearch。
七、在 Kibana 中查看数据
- 打开 Kibana UI,访问
http://localhost:5601
。 - 在左侧菜单中选择 “Discover”,您应该能看到 Logstash 发送到 Elasticsearch 的数据。
- 如果没有数据,请确保您在 Logstash 中正确输入了数据,并且数据没有被过滤掉。
八、总结与注意事项
详细介绍了如何使用 Dockerfile 和 Docker Compose 安装和配置 ELK Stack。通过这种方式,我们能够快速搭建一个完整的日志收集、分析和可视化环境。
注意事项:
-
资源限制:确保您的 Docker 容器有足够的内存和 CPU 资源,尤其是在处理大量日志数据时,Elasticsearch 可能会消耗较多资源。
-
数据持久化:本文配置中未配置数据持久化,重启容器时,数据将丢失。可以通过挂载卷来持久化 Elasticsearch 和 Logstash 的数据。
-
安全性:在生产环境中,应考虑使用安全措施,如用户认证和加密通信。
-
版本兼容性:确保 Elasticsearch、Logstash 和 Kibana 的版本一致,以避免兼容性问题。
希望这能帮助您更好地理解和使用 ELK Stack 进行日志管理和分析。
相关文章:
Dockerfile搭建ELK
使用 Dockerfile 安装 ELK 一、引言 ELK Stack(Elasticsearch, Logstash, Kibana)是一种流行的日志管理和分析解决方案。它允许用户实时搜索、分析和可视化日志数据。通过 Docker,可以方便地部署 ELK ,快速获取一个功能齐全的日…...
在合规的地方怎么用EACO地球链兑换交换价值?
地球链EACO(EarthChain,简称$E)是一种虚拟数字资产。 目前在中国大陆,虚拟资产相关业务活动属于金融活动,包括虚拟资产的交易、兑换等操作,因此应该谨慎去寻求如何用它来交换价值。 虚拟资产交易炒作活动&…...
VS无法安装Win10SDK_10.0.2200,快捷方法
Visual Studio无法安装Win10SDK_10.0.2200,我在安装VS2019、2022提示,软件就不能编译。 因为之前安装过VS软件,重新安装软件提示“无法安装”。 原因 之前安装在D盘,现在没有D盘了 说明 因为电脑第一次安装VS,会自动安…...
github多个账号配置多个SSH秘钥
背景 对于有多个github账号的同学,需要配置多个ssh秘钥分别管理多个账号。 方法 1、生成多个SSH秘钥 # 为第一个 GitHub 账号生成密钥 ssh-keygen -t ed25519 -C "your_email_1example.com" -f ~/.ssh/id_ed25519_github_work# 为第二个 GitHub 账号生…...
静态/动态代理详解,一次性看完再也不会搞不清!
代理官方原文翻译: 给其他对象提供一个代理或者占位符,来控制对这个对象的访问。 代理最核心的思想: 在客户端和目标对象之间创建一个“中介”,用于保护目标对象和增强目标对象 静态代理: 该代理对象需要我们手动…...
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中设置了语言,并且已经置顶了,但是不生效,在windows上直接有设置当前语言为chrome显示语言,但是mac上没有。 解决办法 在系统里面有一个单独给chrome设置语言的: 单独给它设定成指定的语言,然后重…...
Python中的人工智能框架与实例
在人工智能(AI)领域,Python因其简洁的语法、丰富的库和强大的社区支持,成为了最受欢迎的编程语言之一。本文将详细介绍Python中的人工智能框架,并通过具体实例展示如何使用这些框架来实现不同的人工智能应用。 一、Python中的人工智能框架 …...
论文阅读(二十六):Dual Attention Network for Scene Segmentation
文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文:Dual Attention Network for Scene Segmentation 论文链接:Dual Attention Network for Scene Segmentation 代码链接:Github 1.Intr…...
Stack和Queue(3)
Stack和Queue(3) priority_queue的模拟实现 priority_queue.h #include <vector>namespace soobin {template<class T, class Container vector<T>>class priority_queue{public://强制生成默认构造priority_queue() default;temp…...
怎样把学生的成绩单独告知家长?
期中考试季的到来让校园里的气氛似乎也变得紧张起来。家长们开始频繁地联系老师,希望了解孩子的表现;孩子们则在考试后,绞尽脑汁地想出各种理由,以期在成绩不理想时能减轻家长的失望。老师们更是忙得不可开交,不仅要批…...
vue3父组件控制子组件表单验证及获取子组件数值方法
1、关键部分的代码如下,我努力交代清楚了,希望能让大家看懂。 <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 解决内存可见性问题和指令重排序问题 一、设计模式 在讲解案例前,先介绍一个概念设计模式ÿ…...
Java.6--多态-设计模式-抽象父类-抽象方法
一、多态 1.定义--什么是多态? a.同一个父类的不同子类对象,在做同一行为的时候,有不同的表现形式,这就是多态。(总结为:一个父类下的不同子类,同一行为,不同表现形式。࿰…...
JAVA Maven 的安装与配置
一、下载地址 官方网站:Maven – Download Apache Maven 我这里是3.8.6版本 二、安装步骤 maven安装之前要先安装jdk,请确保你的系统已经安装了jdk环境。 1.将下载好的 Maven 进行解压 apache-maven-3.6.8-bin.zip 2.配置本地仓库:修改 conf/settin…...
【程序分享】PCB元件坐标对齐工具 V1.3
↑↑↑点击上方蓝字,关注我们! “PCB元件坐标对齐工具 V1.3”脚本程序在PCB文档中将元件的坐标自动移动到参考圆弧的中心,参考圆弧支持机械层1层和禁止布线层,参考图元的位置任意,不局限于栅格位置。 程序会自动…...
[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版本: 1.8Hutool版本: 5.8.25 问题描述 客服端文件上传主要代码: 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制作图像处理工具的文章,也知道pyqt通过使用label控件显示图像的…...
反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown
目录 前言1. 简介2. 神经网络中的链式法则3. 微积分的计算4. 公式含义5. 代价函数对权重偏置的敏感度6. 多个神经元的情形7. 回顾相关资料结语 前言 3Blue1Brown 视频笔记,仅供自己参考 这个章节主要来深度讲解反向传播中的一些微积分理论 官网: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,Ra…...
基于springboot+vue实现的助学兼职系统(源码+L文+ppt)4-092
基于springbootvue实现的助学兼职系统(源码L文ppt)4-092 第4章 系统设计 4.1 总体功能设计 一般学生、招聘公司和管理者都需要登录才能进入助学兼职系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者和管理者,一般使…...
⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)
💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...
CMU生成式人工智能大模型:从入门到放弃(九)
引言 在前面的系列博客中,我们深入探讨了生成式对抗网络(GANs)和变分自编码器(VAEs)等生成式模型。今天,我们将探索扩散模型(Diffusion Models)的进一步应用,并讨论在上…...
HTML基础总结
一、简介 HTML(HyperText Markup Language)即超文本标记语言,是用于创建网页的标准标记语言。它通过使用各种标签来定义网页的结构和内容,告诉浏览器如何显示网页。HTML 文档由标签和文本组成,标签用于描述文本的性质…...
EXCELL中如何两条线画入一张图中,标记坐标轴标题?
1,打开excel,左击选中两列, 2,菜单栏>“插入”>”二维折线图”选中一个 3,选中出现的两条线中的一条右击>最下一行,“设置数据系列格式” 4,右测“系列选项中”>点击“次坐标轴” 5…...
Zabbix企业级分布式监控环境部署
“运筹帷幄之中,决胜千里之外”。在IT运维中,监控占据着重要的地位,按比例来算,说占30%一点也不为过。对IT运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选…...
水轮发电机油压自动化控制系统解决方案介绍
在现代水电工程中,水轮机组油压自动化控制系统,不仅直接关系到水轮发电机组的安全稳定运行,还影响着整个水电站的生产效率和经济效益。 一、系统概述 国科JSF油压自动控制系统,适用于水轮发电机组调速器油压及主阀(蝶…...
今天不分享技术,分享秋天的故事
引言 这个爱情故事好像是个悲剧,你说的是婚姻。爱情没有悲剧,对爱者而言,爱情怎么会是悲剧呢。对春天而言,秋天是它的悲剧吗。结尾是什么,等待,之后呢,没有之后。或者说,等待的结果…...
成都又出现新增病例了/seo sem是什么职位
http://blog.csdn.net/rryqsh/article/details/8156558如果你正在做ASP.NET,那肯定会用到IIS如果你想在ASP.NET Application中加入某个定时任务,那想必一定是用一个线程在不停地做定时计算那假设我们在自己的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按天付费
原文链接:http://docs.autofac.org/en/latest/lifetime/index.html Lifetime 是指服务的实例在程序中存活多久 – 从最初的实例化到清理(disposal)。例如,一个实现 IDisposable 的对象,它的生命周期就是从实例化时开始…...
建网站必需服务器吗/建站是什么意思
GDB 是我们平时调试 c/c程序的利器, 查起复杂的 bug 问题,比打印大法要好的多,但是也不得不说, gdb 在默认情况下用起来并不是很好用,最近学习到几个高级点的技巧,分享下:一 美化打印先上个例子:#include <stdio.h>typedef struct {int i ;int j;char * str;int array[10…...
wordpress文章发布工具/广告推广计划
1.作用 给所有选择器选中的标签中,相交的那部分标签设置属性 2.格式 /*标签名称1标签名称2{ 属性:值; }*/ divp{color: red;} 3.注意点 1.选择器与选择器之间不能有任何的连接符号 2.选择器可以是id,类,标签选择器 3.在企业开发中不使…...
唐山网站制作价格/如何建立免费公司网站
对于java当中的继承你了解多少呢?你又是怎样来理解java继承这个概念的?下面就和小编一起来详细的了解一下这方面的内容吧。一、什么是java继承java继承继承是面向对象最显著的一个特性。是从已经有的类当中,派生出来的新的类。新的类可以吸收已经有的类的数据属性…...