docker安装ES、LogStash、Kibana

文章目录

  • 一、安装Elasticsearch
    • 1. 安装Elasticsearch
    • 2. 安装IK分词器
    • 3. elasticsearch-head 监控的插件
    • 4. 配置跨域
  • 二、安装LogStash
  • 三、安装kibana
  • 四、SpringBoot集成LogStash,将日志输出到ES中
  • 五、 启动项目,监控项目运行


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装Elasticsearch

1. 安装Elasticsearch

安装Elasticsearch参考文章

  1. 下载镜像
docker pull elasticsearch:7.10.1
  1. 创建挂载目录以及配置文件
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
#注意:http.host: 0.0.0.0 冒号后有一空格。
echo "http.host: 0.0.0.0" >>/mydata/elasticsearch/config/elasticsearch.yml
#文件夹赋权
chmod -R 777 /mydata/elasticsearch/
  1. 使用命令启动容器
docker run --name elasticsearch -p 9200:9200 \-p 9300:9300 \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-d elasticsearch:7.10.1

-e “discovery.type=single-node”:单例模式
-e ES_JAVA_OPTS=“-Xms64m -Xmx128m”:配置内存大小

  1. 设置容器开机自启
docker update elasticsearch --restart=always

2. 安装IK分词器

  1. 进入容器
docker exec -it elasticsearch /bin/bash
  1. 进入插件目录
cd /usr/share/elasticsearch/plugins/
  1. 安装插件
    提示:我用方法一报javax.net.ssl.SSLException异常了,所以采用方法二
    提示:ik分词器版本要和elasticsearch版本一致

方法一:

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip

方法二:

  1. 先使用https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip下载压缩包;
  2. 上传到Liunx服务器,/mydata/elasticsearch/ik目录下;
  3. 将Ik压缩包拷贝到docker容器内,语法:docker cp /Linux目录 容器名/ID:docker容器内部路径,执行以下命令:
    docker cp /mydata/elasticsearch/ik/elasticsearch-analysis-ik-7.10.1.zip elasticsearch:/usr/share/elasticsearch
  4. 安装插件,执行下面命令
    elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.10.1.zip
  1. 退出容器,重启docker容器
exit 
docker restart elasticsearch 

3. elasticsearch-head 监控的插件

  1. 拉取镜像
docker pull mobz/elasticsearch-head:5
  1. 启动容器
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
  1. 进行访问,如果访问失败,配置一下跨域
    在这里插入图片描述

4. 配置跨域

  1. 进入容器
docker exec -it elasticsearch  /bin/bash
  1. 找到配置文件
vim ./config/elasticsearch.yml
  1. 添加跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
  1. 重启容器
docker restart elasticsearch 
  1. 进行访问
    在这里插入图片描述

二、安装LogStash

  1. 拉取镜像, LogStash需要和 elasticsearch的版本号一致
# 1. 查看elasticsearch版本docker images
# 2. 拉取kibana镜像docker pull logstash:7.10.1
  1. 启动LogStash容器
docker run -it -p 4560:4560 --name logstash --restart=always -d logstash:7.10.1
  1. 安装json_lines插件
  • 进入容器
docker exec -it logstash /bin/bash
  • 安装插件
logstash-plugin install logstash-codec-json_lines
  1. 修改输入配置,也可以通过挂在目录的方式来修改配置文件
  • 继续在容器中–>打开配置文件
vi /usr/share/logstash/config/logstash.yml
  • 把ip修改成elasticsearch 访问地址IP
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://esIP:9200" ]
  1. 修改输出配置
  • 继续在容器中–>打开配置文件
vi /usr/share/logstash/pipeline/logstash.conf
  • 修改配置,添加以下内容
input {tcp{mode => "server"port => 4560host => "0.0.0.0"      # 允许任意主机发送日志codec => json_lines    # 格式化数据}	
}filter {date {# 格式化临时变量中的值赋予下面的target,这个时间字段可用于Kibana的时间查询字段match => ["logdate","yyyy-MM-dd HH:mm:ss.SSS"]target => "@timestamp"}
}output {elasticsearch{action => "index"hosts => "esIP:9200" 		 # elasticsearch  ipindex => "elk_log" 			 # 索引名,数据保存到那个索引中}stdout {codec => json_lines			 # 格式化数据}
}
  1. 重启LogStash
docker restart logstash 

三、安装kibana

  1. 拉取镜像, kibana需要和 elasticsearch的版本号一致
# 1. 查看elasticsearch版本docker images
# 2. 拉取kibana镜像docker pull kibana:7.10.1
  1. 启动kibana容器
# 1. 方法一
docker run -di --name kibana -p 5601:5601 --link elasticsearch:elasticsearch --restart=always  kibana:7.10.1或# 2. 方法二
docker run -di --name kibana -p 5601:5601 -e ELASTICSEARCH_URL=http://XXX.XXX.XXX.XXX:9200 --restart=always  kibana:7.10.1
  1. –restart=always: 开机启动
  2. –link:elasticsearch和kibana在同一docker下 --link 后面可以直接写elasticsearch:elasticsearch的容器名
  3. -e ELASTICSEARCH_URL=http://ES的IP:9200: 设置Kibana连接的Elasticsearch的地址
  1. 访问页面
    在这里插入图片描述

四、SpringBoot集成LogStash,将日志输出到ES中

  1. maven坐标
        <dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>6.3</version>
  1. application.yml
server:port: 80  #tomcat端口servlet:context-path: /
  1. logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--该日志将日志级别不同的log信息保存到不同的文件中 -->
<configuration><include resource="org/springframework/boot/logging/logback/defaults.xml"/><springProperty scope="context" name="springAppName" source="spring.application.name"/><!-- 日志在工程中的输出位置 --><property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/><!-- 控制台的日志输出样式 --><property name="CONSOLE_LOG_PATTERN"value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><!-- 日志输出编码 --><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>utf8</charset></encoder></appender><!-- logstash远程日志配置--><appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><destination>192.168.128.23:4560</destination><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/></appender><!-- 日志输出级别 --><root level="DEBUG"><appender-ref ref="console"/><appender-ref ref="logstash"/></root>
</configuration>

五、 启动项目,监控项目运行

提示:按照以下步骤进行设置

  1. 访问kibana,点击 Stack Management
    在这里插入图片描述
  2. 点击 Index Patterns
    在这里插入图片描述
  3. 点击 Create Index Patterns
    在这里插入图片描述
  4. 设置索引模式名,关联索引,点击 Next step
    在这里插入图片描述
  5. 选择时间字段, 点击 Create Index Patterns
    在这里插入图片描述
  6. 设置好的索引模式如下
    在这里插入图片描述
  7. 点击 Discover ,进行项目监控
    在这里插入图片描述
  8. 监控项目运行情况
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:模版进阶 | Priority_queue的模拟实现

创作不易&#xff0c;感谢三连支持 一、非类型模版参数 模板参数分类为类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&…

JavaScript高级Ⅱ(全面版)

接上文 JavaScript高级Ⅰ JavaScript高级Ⅰ(自认为很全面版)-CSDN博客 目录 第2章 DOM编程 2.1 DOM编程概述 2.1.4 案例演示(商品全选) 2.1.5 dom操作内容 代码演示&#xff1a; 运行效果&#xff1a; 2.1.6 dom操作属性 代码演示&#xff1a; 运行效果&#xff1a; 2…

大模型时代下的自动驾驶研发测试工具链-SimCycle

前言&#xff1a; 最近OpenAI公司的新产品Sora的发布&#xff0c;正式掀起了AI在视频创作相关行业的革新浪潮&#xff0c;AI不再仅限于文本、语音和图像&#xff0c;而直接可以完成视频的生成&#xff0c;这是AI发展历程中的又一座重要的里程碑。AI正在不断席卷着过去与我们息…

STM32 学习10 PWM输出

STM32 学习10 PWM输出 一、PWM简介1. PWM的概念2. PWM的工作原理3. PWM 常用的应用场景 二、一些概念1. 频率2. 占空比 三、STM32F1 PWM介绍1. 定时器与寄存器&#xff08;1&#xff09;**自动重装载寄存器&#xff08;ARR&#xff09;**&#xff1a;&#xff08;2&#xff09;…

python基础——输入与输出【input 和 print】

&#x1f4dd;前言&#xff1a; 上一篇文章python基础——入门必备知识中讲解了一些关于python的基础知识&#xff0c;可以让我们更好的理解程序代码中内容的含义&#xff0c;不至于一头雾水。今天我就来介绍一下&#xff0c;python中两个常见的输入和输出语句 input 和 print …

产品推荐 - 基于星嵌 OMAPL138+国产FPGA的DSP+ARM+FPGA三核开发板

1 评估板简介 基于TI OMAP-L138&#xff08;定点/浮点DSP C674xARM9&#xff09; FPGA处理器的开发板&#xff1b; OMAP-L138是TI德州仪器的TMS320C6748ARM926EJ-S异构双核处理器&#xff0c;主频456MHz&#xff0c;高达3648MIPS和2746MFLOPS的运算能力&#xff1b; FPGA…

粘包与拆包

优质博文&#xff1a;IT-BLOG-CN 一、粘包出现的原因 服务端与客户端没有约定好要使用的数据结构。Socket Client实际是将数据包发送到一个缓存buffer中&#xff0c;通过buffer刷到数据链路层。因服务端接收数据包时&#xff0c;不能断定数据包1何时结束&#xff0c;就有可能出…

【操作系统概念】第11章:文件系统实现

文章目录 0.前言11.1 文件系统结构11.2 文件系统实现11.2.1 虚拟文件系统 11.3 分配方法11.3.1 连续分配11.3.2 链接分配11.3. 3 索引分配 11.5 空闲空间管理11.5.1 位图/位向量11.5.2 链表11.5.3 组 0.前言 正如第10章所述&#xff0c;文件系统提供了机制&#xff0c;以在线存…

springboot251基于springboot-vue的毕业论文管理系统

毕业论文管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本毕业论文管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短…

视频批量混剪剪辑,批量剪辑批量剪视频,探店带货系统,精细化顺序混剪,故事影视解说,视频处理大全,精细化顺序混剪,多场景裂变,多视频混剪

前言 工具的产生源于dy出的火山引擎的云视频混剪制作是按分钟数收费的&#xff0c;这个软件既能实现正常混剪也能避免二次收费。属于FFMPEG合成的。 欢迎大家给一些好的建议和功能&#xff0c;回复可见&#xff0c;附加了一些天卡&#xff0c;周卡&#xff0c;请大家不要一人占…

JavaSec 基础之 URLDNS 链

文章目录 URLDNS 链分析调用链复现反序列化复现 URLDNS 链分析 URLDNS是ysoserial里面就简单的一条利用链&#xff0c;但URLDNS的利用效果是只能触发一次dns请求&#xff0c;而不能去执行命令。比较适用于漏洞验证这一块&#xff0c;而且URLDNS这条利用链并不依赖于第三方的类…

练习3-softmax分类(李沐函数简要解析)与d2l.train_ch3缺失的简单解决方式

环境为:练习1的环境 网址为:https://www.bilibili.com/video/BV1K64y1Q7wu/?spm_id_from333.1007.top_right_bar_window_history.content.click 代码简要解析 导入模块 导入PyTorch 导入Torch中的nn模块 导入d2l中torch模块 并命名为d2l import torch from torch import nn…

Neo4j安装 Linux:CentOS、openEuler 适配langchain应用RAG+知识图谱开发 适配昇腾910B

目录 Neo4j下载上传至服务器后进行解压运行安装JAVA再次运行在windows端打开网页导入数据 Neo4j下载 进入Neo4j官网下载页面 向下滑动找到 Graph Database Self-Managed 选择 社区版&#xff08;COMMUNITY&#xff09; 选择 Linux / Mac Executable Neo4j 5.17.0 (tar) 单机下…

分销商城微信小程序:用户粘性增强,促进复购率提升

在数字化浪潮的推动下&#xff0c;微信小程序作为一种轻便、高效的移动应用形式&#xff0c;正成为越来越多企业开展电商业务的重要平台。而分销商城微信小程序的出现&#xff0c;更是为企业带来了前所未有的机遇。通过分销商城微信小程序&#xff0c;企业不仅能够拓宽销售渠道…

产品推荐 - 基于矽海达 SEM9363的无线数字图传编码开发板

Sihid SEM9363无线数字图传编码调制板(A版本)通过HDMI接口输入高清数字视频到Hi3516A处理器做H.264压缩编码&#xff0c;压缩后的视频信号通过FPGA实现COFDM信道调制&#xff0c;再经AD936x转换为模拟信号调制发射出去。 SEM9363板功能与技术规格 通过Micro HDMI接口输入数字视…

生活的色彩--爱摸鱼的美工(17)

题记 生活不如意事十之八九&#xff0c; 恶人成佛只需放下屠刀&#xff0c;善人想要成佛却要经理九九八十一难。而且历经磨难成佛的几率也很小&#xff0c;因为名额有限。 天地不仁以万物为刍狗&#xff01; 小美工记录生活&#xff0c;记录绘画演变过程的一天。 厨房 食…

AI探索实践12 - Typescript开发AI应用4:大模型响应数据的格式化输出

大家好&#xff0c;我是feng&#xff0c;感谢你阅读我的博文&#xff0c;如果你也关注AI应用开发&#xff0c;欢迎关注公众号和我一起​探索。如果文章对你有所启发&#xff0c;请为我点赞&#xff01; 一、重点回顾 在介绍本文之前的文章中&#xff0c;我们先来回顾一下使用L…

两天学会微服务网关Gateway-Gateway过滤器

锋哥原创的微服务网关Gateway视频教程&#xff1a; Gateway微服务网关视频教程&#xff08;无废话版&#xff09;_哔哩哔哩_bilibiliGateway微服务网关视频教程&#xff08;无废话版&#xff09;共计17条视频&#xff0c;包括&#xff1a;1_Gateway简介、2_Gateway工作原理、3…

数据结构 - 栈和队列

本篇博客将介绍栈和队列的定义以及实现。 1.栈的定义 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除数据&#xff0c;插入数据的一端叫做栈顶&#xff0c;另一端叫做栈底。栈中的数据遵守后进先出的原则 LIFO (Last In First Out)。 插入数据的操作称为压…

如何借助私域营销在医美行业中脱颖而出?

在现今这个以貌取人的社会&#xff0c;外貌焦虑已变得司空见惯。美丽往往能给人带来更多的瞩目和机遇&#xff0c;但天生丽质并非人人可得。随着经济的繁荣和消费结构的升级&#xff0c;颜值经济开始崭露头角&#xff0c;医美行业因此受到了广大消费者的青睐&#xff0c;迎来了…