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

docker部署elk

目录

前言

一、创建程序工作路径

二、创建私有网络

三、部署elasticsearch

1.先搜速后下载

2.创建一个基础的容器(此步骤是为了拷贝容器里的文件)

3.拷贝文件到宿主机

3.1进入容器

3.2拷贝并授权

3.3删除基础容器

4.创建容器

5.访问9200测试

6.创建索引

7.查询索引

 四、部署kibana

1.同理,先搜索后下载

2.创建一个基础的容器

3.拷贝文件到宿主机

3.1进入容器

3.2拷贝并授权 

3.3修改kibana配置文件 

3.4删除基础容器

4.创建kibana容器

5.访问kibana测试

五、部署logstash

1.同理,先搜索后下载

2.创建一个基础的容器

3.拷贝文件到宿主机

3.1进入容器

3.2拷贝文件

3.3修改配置文件

3.4删除基础容器

4. 创建logstash容器 

六、测试

1.访问kibana,设置索引模式

 2.造一条测试数据

3.发送测试数据

4.查看数据


前言

ELK 是一组开源软件套件,用于实现日志管理和分析。它由三个主要组件组成:

  1. Elasticsearch :一个基于 Lucene 的分布式搜索引擎,用于存储、搜索和分析大量数据。

  2. Logstash :一个数据收集引擎,用于从各种源(如文件、数据库、消息队列等)收集、处理和转换数据,然后将其发送到 Elasticsearch 中进行存储和分析。

  3. Kibana :一个数据可视化平台,用于实时监控和分析 Elasticsearch 中的数据,并将其以交互式图表、图形和地图等形式展示出来。

ELK 被广泛应用于日志管理领域,可以帮助用户高效地收集、存储、索引、搜索和分析大量的日志数据。它不仅适用于 Web 应用程序的日志管理,还可以用于系统日志、网络设备日志、安全事件日志等各种类型的数据收集和分析。

除了 ELK,还有一些类似的开源日志管理工具,例如 Graylog 和 Fluentd 等,它们也提供了类似的功能,但在实现方式和使用场景上略有不同。

部署容器所需要的版本,可以上dockerhub上确认,这里统一使用7.12.1版本,dockerhub链接如下:

Docker

一、创建程序工作路径

mkdir -p /opt/elk/{elasticsearch,kibana,logstash}

二、创建私有网络

创不创建都行,我的宿主机环境没有和默认bridge网络172.17冲突的网段,实验里创建了一个私有网络,来模拟企业环境

docker network create  elk
docker network ls

三、部署elasticsearch

1.先搜速后下载

docker search elasticserch
docker pull elasticsearch:7.12.1

2.创建一个基础的容器(此步骤是为了拷贝容器里的文件)

docker run -d --name es --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1

--name  设置容器名字

--net      设置容器的网络

-P          自动分配端口

-e          设置环境变量

3.拷贝文件到宿主机

3.1进入容器
docker exec -it es /bin/bash

3.2拷贝并授权
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /opt/elk/elasticsearch/chmod 777 elasticsearch/elasticsearch.ymlmkdir datachmod -R 777 /opt/elk/elasticsearch/data/

3.3删除基础容器
docker rm -f es

4.创建容器

docker run -d --name es --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --privileged=true -v /opt/elk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /opt/elk/elasticsearch/data/:/usr/share/elasticsearch/data elasticsearch:7.12.1

5.访问9200测试

curl -XGET 'http://localhost:9200'
curl -XGET 'http://localhost:9200/_cluster/health?pretty'

访问浏览器

6.创建索引

 curl -XPUT http://192.168.159.128/elk

 7.查询索引

这里面查不到数据,因为是刚创建的

 curl -XGET http://192.168.159.128:9200/elk/_search

 四、部署kibana

1.同理,先搜索后下载

docker search kibana
docker pull kibana:7.12.1

2.创建一个基础的容器

docker run -d --name kibana --net elk -P -e "ELASTICSEARCH_HOSTS=http://192.168.159.128:9200" -e "I18N_LOCALE=zh-CN" kibana:7.12.1

-e  环境变量指定es的访问ip

3.拷贝文件到宿主机

3.1进入容器
docker exec -it kibana /bin/bash

3.2拷贝并授权 
docker cp kibana:/usr/share/kibana/config/kibana.yml /opt/elk/kibana/chmod -R 777 /opt/elk/kibana/kibana.yml

3.3修改kibana配置文件 
cat kibana.ymlserver.name: kibana
server.host: "0"
#es的访问ip
elasticsearch.hosts: [ "http://192.168.159.128:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
#汉化
i18n.locale: zh-CN

3.4删除基础容器
docker rm -f kibana

4.创建kibana容器

docker run -d --name kibana --net elk -p 5601:5601 -v /opt/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.12.1

5.访问kibana测试

五、部署logstash

1.同理,先搜索后下载

docker search logstash
docker pull logstash:7.12.1

2.创建一个基础的容器

docker run -d -P --name logstash --net elk logstash:7.12.1

3.拷贝文件到宿主机

3.1进入容器
docker exec -it logstash /bin/bash

 查看下logstash的默认配置文件,端口默认是5044

3.2拷贝文件
docker cp logstash:/usr/share/logstash/config /opt/elk/logstash/
docker cp logstash:/usr/share/logstash/data /opt/elk/logstash/
docker cp logstash:/usr/share/logstash/pipeline /opt/elk/logstash/	
3.3修改配置文件

vim /opt/elk/logstash/config/logstash.yml


修改 logstash/config 下的 logstash.yml 文件,主要修改 es 的地址:http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.159.128:9200" ]

vim /opt/elk/logstash/pipeline/logstash.conf 


input {# 从文件读取日志信息file {path => "/opt/test.json"start_position => "beginning"   # 设置从文件的开始位置开始读取日志sincedb_path => "/usr/share/logstash/pipelog.txt"   # 指定记录文件读取位置的 sincedb 文件路径codec => "json"}tcp {mode => "server"host => "0.0.0.0"  # 允许任意主机发送日志port => 5044}
}output {stdout { codec => rubydebug }# 输出到 Elasticsearchelasticsearch {action => "index"hosts => ["http://192.168.159.128:9200"]index => "elk"     # 索引名称}
}

3.4删除基础容器
docker rm -f logstash

4. 创建logstash容器 

docker run -d --name logstash --net elk --privileged=true -p 5044:5044 -p 9600:9600 -v /opt/elk/logstash/data/:/usr/share/logstash/data -v /opt/elk/logstash/config/:/usr/share/logstash/config -v /opt/elk/logstash/pipeline/:/usr/share/logstash/pipeline logstash:7.12.1

六、测试

1.访问kibana,设置索引模式

选择elk索引,创建索引模式

 2.造一条测试数据

在当前目录下创建一个json文件,名字为test.json

{"id": 1,"name": "Tom","birthday": "1990-01-01","address": {"province": "Beijing","city": "Beijing","district": "Chaoyang"},"scores": [80, 90, 85],"is_male": true
}

3.发送测试数据

curl -XPOST -H "Content-Type: application/json" -d @test.json http://192.168.159.128:5044

4.查看数据

后台使用curl查看elk索引,显示已有内容

kibana上的discover上选择elk索引,查到了之前发送的json测试数据

相关文章:

docker部署elk

目录 前言 一、创建程序工作路径 二、创建私有网络 三、部署elasticsearch 1.先搜速后下载 2.创建一个基础的容器(此步骤是为了拷贝容器里的文件) 3.拷贝文件到宿主机 3.1进入容器 3.2拷贝并授权 3.3删除基础容器 4.创建容器 5.访问9200测试 …...

护网蓝队初级面试题摘录(下)

小王学习录 1.设备误报如何处理?2.讲一下TOP10都有哪些3.SQL注入的原理和漏洞产生的原因?4.SQL注入的类型盲注类型: 5.简单讲一下防范SQL注入的方法和原理6.SQL注入有哪些绕过姿势?7.SQL注入攻击有哪些危害?6.XSS&…...

通过51单片机控制SG90舵机按角度正反转转动

一、前言 本文介绍如何通过51单片机控制SG90舵机实现角度的正反转转动。SG90舵机是一种常用的微型舵机,具有体积小、重量轻、结构简单等特点,被广泛应用于机器人、遥控模型和各种自动控制系统中。 使用51单片机(STC89C52)作为控…...

uniapp写一个计算器用于记账(微信小程序,APP)

提要:自己用uniapp写了一个记账小程序(目前是小程序),写到计算器部分,在网上找了别人写的计算器,大多数逻辑都是最简单的,都不能满足一个记账计算器的基本逻辑。与其在网上找来找去,…...

前端的几种网络请求方式

网络请求 node编写接口 这里用到的几个包的作用 express:基于 Node.js 平台,快速、开放、极简的 Web 开发框架,官网:https://www.expressjs.com.cn/cors:用来解决跨域问题body-parser:可以通过 req.body…...

Kubernetes技术与架构-存储 4

如上所示,Kubernetes集群支持动态申请存储资源,即集群管理员可以按照实际的需求动态地申请存储资源,集群管理员需要事先定义一个或者多个StorageClass存储类型的资源,Pod中的容器实例直接引用事先定义的StorageClass存储类型的资源…...

jbase编译与部署的优化

上一篇的演示只是涉及自动编译业务脚本。演示时候工程编译是超级慢的。因为把静态资源放在了Web工程下,每次编译都要拷贝,运行起码是1分钟,不能忍受,为此思考工程结构改解决这个问题,顺带方便开发的发布。运行WebLoade…...

Filter 和 Listener

Filter 表示过滤器。是JavaWeb三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求 拦截 下来。浏览器可以访问服务器上所有的资源,而在访问到这些资源之前可以使用过滤器拦截下来,也就是说在访问资源之前会先经…...

【正则表达式】中的“\b“

正则表达式是一种用于匹配字符串的强大工具,它可以用于各种编程语言中,可以用来在文本中查找、替换或验证符合某种规则的内容。 正则表达式中有很多特殊的符号,称为元字符,它们有着特殊的含义和作用。其中,“\b” 是其…...

FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案 3、设计思路框架设计框图视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP …...

数据库系统原理与实践 笔记 #7

文章目录 数据库系统原理与实践 笔记 #7数据库设计和E-R模型(续)转换为关系模式具有简单属性的实体集的表示复合属性多值属性联系集的表示模式的冗余—合并 实体-联系设计问题设计问题联系属性的布局 扩展的E-R特性特化概化属性继承特化/概化的设计约束聚集E-R图表示方法总结E-…...

【CesiumJS】(1)Hello world

介绍 Cesium 起源于2011年,初衷是航空软件公司(Analytical Graphics, Inc.)的一个团队要制作世界上最准确、性能最高且具有时间动态性的虚拟地球。取名"Cesium"是因为元素铯Cesium让原子钟非常准确(1967年,人们依据铯原子的振动而对…...

Docker 学习路线 5:在 Docker 中实现数据持久化

Docker 可以运行隔离的容器,包括应用程序和其依赖项,与主机操作系统分离。默认情况下,容器是临时的,这意味着容器中存储的任何数据在终止后都将丢失。为了解决这个问题并在容器生命周期内保留数据,Docker 提供了各种数…...

linux下使用vscode对C++项目进行编译

项目的目录结构 头文件swap.h 在自定义的头文件中写函数的声明。 // 函数的声明 void swap(int a,int b);swap.cpp 导入函数的声明&#xff0c;写函数的定义 #include "swap.h" // 双引号表示自定义的头文件 #include <iostream> using namespace std;// 函…...

LangChain+LLM实战---ChatGPT的即时插件套件制作

英文原文&#xff1a;Instant Plugins for ChatGPT: Introducing the Wolfram ChatGPT Plugin Kit 在一分钟内构建一个新插件 几周前&#xff0c;我们与OpenAI合作发布了Wolfram插件&#xff0c;使ChatGPT可以使用Wolfram语言和Wolfram|Alpha作为工具&#xff0c;在ChatGPT内部…...

包装印刷行业万界星空科技云MES解决方案

印刷业的机械化程度在国内制造行业内算是比较高的&#xff0c;不算是劳动密集型企业。如书本的装订、包装的模切、烫金、糊盒等都已经有了全自动设备。印刷厂除了部分手工必须采用人工外&#xff0c;大部分都可以采用机器&#xff0c;也就意味着可以由少量工人生产出大量产品。…...

Python教程---计算机语言简介

1.计算机编程语言的发展历程 计算机语言发展经历了三个阶段&#xff1a; 机器语言 - 机器语言通过二进制编码来编写程序&#xff0c;打孔织带机。 - 执行效率好&#xff0c;编写起来太麻烦 符号语言&#xff08;汇编&#xff09; - 使用符号来代替机器码 - 编写程序时&#xf…...

rhcsa-文件内容显示

浏览普通文件内容 浏览文件的命令 命令常用选项说明cat -n 对输出内容中的所有行标注行号 -b 对输出内容中的非空行标注行号 查看文件的内容head-num 指定需要显示文件num行的内容默认查看文前十行的内容tail -num 指定需要显示文件num行的内容 -f 使tail不停的去读取显示文…...

宠物养成猫狗商城门店问诊档案流量主小程序开发

宠物养成猫狗商城门店问诊档案流量主小程序开发 猫狗宠物养成商城门店问诊档案流量主小程序开发&#xff0c;这是一个充满趣味性和创新性的项目。通过将宠物养成游戏与商城、问诊服务、社交功能等相结合&#xff0c;为用户提供一站式的宠物养育体验。 在宠物养成方面&#x…...

应用安全四十二:SSO安全

一、什么是SSO SSO是单点登录(Single Sign On)的缩写,是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是比较流行的企业业务整合的解决方案之一。 身份验证过程依赖于双方之间的信任关…...

AlphaFold 3终极指南:掌握Jackhmmer与HMMER提升蛋白质结构预测精度

AlphaFold 3终极指南&#xff1a;掌握Jackhmmer与HMMER提升蛋白质结构预测精度 【免费下载链接】alphafold3 AlphaFold 3 inference pipeline. 项目地址: https://gitcode.com/gh_mirrors/alp/alphafold3 你是否在蛋白质结构预测项目中遇到MSA生成效率低下的瓶颈&#x…...

30岁裸辞后,我用两个月拿下AI应用认证,现在OFFER选择困难症犯了

30岁裸辞那天&#xff0c;我最怕的不是没收入&#xff0c;而是突然发现&#xff1a;过去积累的经验&#xff0c;正在被AI重新定价。以前会写方案、做表格、跟项目&#xff0c;算是职场硬通货&#xff1b;到了2026年&#xff0c;招聘JD里开始频繁出现AI工具应用、智能工作流、Pr…...

OpenClaw 连接阿里云百炼图文教程

OpenClaw 连接阿里云百炼图文教程 前置准备 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 已准备好可正常登录的阿里云账号。 可以正常访问阿里云百炼登录地址&#xff1a;https://bailian.console.aliyun.com/cn-beijing#/home 建议提…...

从“DOC/PDF”到“WPS”:细看GJB438C-2021文档格式要求背后的国产化信号与落地指南

从“DOC/PDF”到“WPS”&#xff1a;GJB438C-2021文档格式变革的深度解读与实施策略 当一份国家军用标准在文档格式描述中刻意删除"DOC/PDF"字样&#xff0c;转而明确标注"&#xff08;WPS&#xff09;文档处理器"时&#xff0c;这绝非简单的技术参数调整。…...

Android Root检测绕过:从逆向分析到Frida分层Hook实战

1. 这不是“绕过root检测”&#xff0c;而是理解检测逻辑后的精准干预在安卓逆向工程的实际工作中&#xff0c;“过root检测”这个说法本身就容易引发误解——它听起来像某种黑箱魔法&#xff0c;仿佛只要套用某个脚本、加载某个插件&#xff0c;就能让App对设备状态“视而不见…...

机器学习在射电天文数据分类中的应用:以MIGHTEE巡天SFG/AGN分类为例

1. 项目概述&#xff1a;当机器学习遇见深空射电巡天在射电天文学领域&#xff0c;我们正经历一场数据洪流。以MeerKAT望远镜阵列主导的MIGHTEE巡天项目为例&#xff0c;其在COSMOS天区的一次早期科学数据释放&#xff0c;就在不到1平方度的天区内探测到了超过6000个射电源。传…...

零基础怎么学Agent?这个工程师考试内容拆给你看

站在 AI Agent&#xff08;智能体&#xff09;爆发的十字路口&#xff0c;很多既没有深厚算法背景、也没有丰富写代码经验的“小白”常常感到迷茫&#xff1a;动辄谈及的大模型交互、复杂的业务编排&#xff0c;零基础真的能学会吗&#xff1f; 事实上&#xff0c;智能体开发早…...

WarcraftHelper:让魔兽争霸3在现代电脑上完美运行的关键插件

WarcraftHelper&#xff1a;让魔兽争霸3在现代电脑上完美运行的关键插件 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为《魔兽争霸3》这…...

观察Token消耗明细,Taotoken用量看板如何帮助控制预算

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Token消耗明细&#xff0c;Taotoken用量看板如何帮助控制预算 对于个人开发者或项目管理者而言&#xff0c;在使用大模型API时…...

利用 Taotoken 多模型能力为智能客服场景提供备份路由

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用 Taotoken 多模型能力为智能客服场景提供备份路由 智能客服系统是许多企业与用户交互的关键入口&#xff0c;其响应能力和服务…...