ELK服务搭建-0-1搭建记录

ELK搭建

需要准备一台linux服务器(最好是CentOS7),内存至少4G以上(三个组件都比较占用内存)

演示基于ElasticSearch采用的是8.5.0版本

1、 Docker安装Elasticsearch

创建一个网络

因为我们还需要部署kibana容器、logstash容器,需要让这些容器互联。

docker network create elk
下载镜像
docker pull elasticsearch:8.5.0
在宿主机建立文件夹
mkdir -p /opt/elk/elasticsearch/{config,plugins,data}
制作配置文件
cat <<EOF> /opt/elk/elasticsearch/config/elasticsearch.yml
xpack.security.enabled: false
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: false  # 不配报错
xpack.security.enrollment.enabled: true
http.host: 0.0.0.0
EOF
修改权限
chmod -R 777 /opt/elk/elasticsearch
创建容器
docker run -d \--name es850 \-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \-e "discovery.type=single-node" \-v /opt/elk/elasticsearch/data:/usr/share/elasticsearch/data \-v /opt/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /opt/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \--privileged \--network elk \-p 9200:9200 \-p 9300:9300 \
elasticsearch:8.5.0
最终效果

在浏览器中输入:http://39.106.67.195:9200/ (按照自己的ip访问)即可看到elasticsearch的响应结果:

image-20231216000413106

2 、Docker安装Logstash

拉取镜像
docker pull logstash:8.5.0
创建文件
mkdir -p /opt/elk/logstash/{pipeline,config}
进入logstash文件
cd /opt/elk/logstash/pipeline
vim logstash.conf
input {tcp {mode => "server"host => "0.0.0.0"port => 5044codec => json_lines}
}
filter{}
output {elasticsearch {hosts => "es850:9200"index => "tingshu-%{+YYYY.MM.dd}"}
}
进入config文件
cd /opt/elk/logstash/config
vim logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://es850:9200" ] #设置跟es的服务地址
创建容器
docker run -d \
-p 5044:5044 \
-p 9600:9600 \
--name logstash850 \
--network=elk \
-v /opt/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /opt/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
logstash:8.5.0

3、Docker安装Kibana

拉取镜像
docker pull kibana:8.5.0
创建目录
mkdir -p /opt/elk/kibana/{config,data}
进入config文件
cd /opt/elk/kibana/config
vim kibana.yml
server.host: "0.0.0.0"  # 不配报错
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://es850:9200" ]
i18n.locale: "zh-CN"

创建容器

docker run -d \
--name kibana850 \
--network=elk \
-v /opt/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-p 5601:5601  \
kibana:8.5.0
  • --network elk :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
  • -p 5601:5601:端口映射配置

此时,在浏览器输入地址访问:http://8.140.252.86:5601,即可看到结果

image-20231116220614618

image-20231116212139062

4、 SpringBoot项目对接Logstash

在项目的pom文件中添加新的依赖
<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>6.6</version>
</dependency>

目前,我们采用的logback来采集日志进行上报给logstash,logstash对接es,把数据存入到es中,最终通过kibana展示。

在application.yml文件中设置logback配置的目录
logging:config: classpath:logback-spring.xml
在resources目录中新增一个文件logback-spring.xml(注意命名,不要修改)
<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/base.xml" /><springProperty scope="context" name="springAppName" source="spring.application.name"/><springProperty scope="context" name="serverPort" source="server.port"/><appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><!--logstash的服务地址和端口,可以实际情况设置--><destination>8.140.252.86:5044</destination><!-- 日志输出编码 --><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"><providers><timestamp><timeZone>UTC</timeZone></timestamp><pattern><pattern>{<!--应用名称 -->"app": "${springAppName}_${serverPort}",<!--打印时间 -->"timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",<!--线程名称 -->"thread": "%thread",<!--日志级别 -->"level": "%level",<!--日志名称 -->"logger_name": "%logger",<!--日志信息 -->"message": "%msg",<!--日志堆栈 -->"stack_trace": "%exception"}</pattern></pattern></providers></encoder></appender><!--定义日志文件的存储地址,使用绝对路径--><property name="LOG_HOME" value="/home/logs"/><!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><fileNamePattern>${LOG_HOME}/${springAppName}-${serverPort}-%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="LOGSTASH" /><appender-ref ref="FILE" /><appender-ref ref="CONSOLE" /></root>
</configuration>

5、 ELK基本使用

5.1 查看索引文件

对接项目之后,可以启动项目,产生一些日志数据

然后打开kibana,找到索引管理

image-20231216224729221

可以直接查看已创建的日志索引

image-20231216224931215

5.2 添加索引模式

如果想用kibana方便的查看日志的数据,可以添加索引模式,如下图

image-20231216225030686

点击创建索引模式,输入想要管理的索引名称,保存

image-20231216225130065

5.3 检索日志

打开Discover

image-20231216225223719

检索日志,选择不同的索引,可以按照不同的字段检索,或者在输入框直接输入内容,也是可以的

工作定位线上问题:

image-20231116224253274

image-20231116224229017

6、 设置用户名密码

一、先操作ES容器

修改配置文件
vim /opt/elk/elasticsearch/config/elasticsearch.yml

image-20231221231439766

重启容器

docker restart  123
进入容器
docker exec -it 123  /bin/bash
执行创建密码的命令

为所有用户输入密码(可以为同一个),完事后回到宿主机 ,重启容器elasticsearch

./bin/elasticsearch-setup-passwords interactive

image-20231216234125531

image-20231222001530410

重新启动es镜像
docker restart  123

二、再操作Kibana

修改宿主机配置文件

vim /opt/elk/kibana/config/kibana.yml

追加下面内容

elasticsearch.username: "kibana_system"
elasticsearch.password: "111111"
重启kibana
docker restart 34c

三、再操作logstash

修改宿主机配置文件

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

追加下面内容

user   => "elastic"
password => "111111" 

image-20231216234524777

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

追加下面内容

image-20231222003751511

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "elastic"
xpack.monitoring.elasticsearch.password: "111111"
重启logstash
docker restart 993

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

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

相关文章

调参指南:如何有效优化模型训练效果

🚀 调参指南:如何有效优化模型训练效果(深度学习实战) 模型跑通不难,调得好才是本事。本篇文章将系统讲解如何在训练过程中有效调参,从学习率到网络结构,从损失函数到正则化,让你的模型效果“飞升”。 🧠 一、为什么需要调参? 初学者常常以为模型训练完就“任务完…

laya3的2d相机与2d区域

2d相机和2d区域都继承自Sprite。 2d相机必须作为2d区域的子节点&#xff0c;且2d相机必须勾选isMain才能正常使用。 2d区域下如果没有主相机&#xff0c;则他和Sprite无异&#xff0c;他的主要操作皆是针对主相机。 2d相机可以调整自己的移动范围&#xff0c;是否紧密跟随&a…

【保姆级教程】Windows部署LibreTV+cpolar实现远程影音库访问全步骤

文章目录 前言1.关于LibreTV2.docker部署LibreTV3.简单使用LibreTV4.安装cpolar内网穿透5.配置ward公网地址6.配置固定公网地址总结 前言 当周末的闲暇时光来临时&#xff0c;您是否也习惯性地瘫倒在沙发上&#xff0c;渴望通过影视作品缓解一周的疲惫&#xff1f;然而在准备点…

Windows安装Docker部署dify,接入阿里云api-key进行rag测试

一、安装docker 1.1 傻瓜式安装docker Get Docker | Docker Docs Docker原理&#xff08;图解秒懂史上最全&#xff09;-CSDN博客 官网选择好windows的安装包下载&#xff0c;傻瓜式安装。如果出现下面的报错&#xff0c;说明主机没有安装WSL 1.2 解决办法 安装 WSL | Mic…

Cursor 与DeepSeek的完美契合

这两天在看清华大学最近出的一个关于deepseek入门的官方视频中&#xff0c;看了几个deepseek的应用场景还是能够感觉到它的强大之处的&#xff0c;例如根据需求生成各种markdown格式的代码&#xff0c;再结合市面上已有的一些应用平台生成非常好看的流程图&#xff0c;PPT,报表…

【深度学习】13. 图神经网络GCN,Spatial Approach, Spectral Approach

图神经网络 图结构 vs 网格结构 传统的深度学习&#xff08;如 CNN 和 RNN&#xff09;在处理网格结构数据&#xff08;如图像、语音、文本&#xff09;时表现良好&#xff0c;因为这些数据具有固定的空间结构。然而&#xff0c;真实世界中的很多数据并不遵循网格结构&#x…

[Python] 避免 PyPDF2 写入 PDF 出现黑框问题:基于语言自动匹配系统字体的解决方案

在使用 Python 操作 PDF 文件时,尤其是在处理中文、日语等非拉丁字符语言时,常常会遇到一个令人头疼的问题——文字变成“黑框”或“方块”,这通常是由于缺少合适的字体支持所致。本文将介绍一种自动选择系统字体的方式,结合 PyPDF2 模块解决此类问题。 一、问题背景:黑框…

Java求职面试:从核心技术到AI与大数据的全面考核

Java求职面试&#xff1a;从核心技术到AI与大数据的全面考核 第一轮&#xff1a;基础框架与核心技术 面试官&#xff1a;谢飞机&#xff0c;咱们先从简单的开始。请你说说Spring Boot的启动过程。 谢飞机&#xff1a;嗯&#xff0c;Spring Boot启动的时候会自动扫描组件&…

Espresso 是什么

Espresso 是 Android 开发者的首选 UI 测试工具&#xff0c;是 Google 官方推出的 Android 应用 UI 测试框架&#xff0c;专为 白盒测试 设计&#xff0c;强调 速度快、API 简洁&#xff0c;适合开发者在编写代码时同步进行自动化测试。它是 Android Jetpack 测试工具的一部分&…

Axios 如何通过配置实现通过接口请求下载文件

前言 今天&#xff0c;我写了 《Nodejs 实现 Mysql 数据库的全量备份的代码演示》 和 《NodeJS 基于 Koa, 开发一个读取文件&#xff0c;并返回给客户端文件下载》 两篇文章。在这两篇文章中&#xff0c;我实现了数据库的备份&#xff0c;和提供数据库下载等接口。 但是&…

IDEA项目推送到远程仓库

打开IDEA——>VCS——>Creat Git 选择项目 push提交到本地 创建远程仓库 复制地址 定义远程仓库 推送 推送成功

Prompt工程:解锁大语言模型的终极密钥

Prompt工程&#xff1a;解锁大语言模型的终极密钥 一、引言&#xff1a;Prompt的战略价值重构 在人工智能技术加速渗透的2025年&#xff0c;Prompt&#xff08;提示词&#xff09;作为连接人类意图与大语言模型&#xff08;LLM&#xff09;的核心接口&#xff0c;其战略地位已…

架构意识与性能智慧的双重修炼

架构意识与性能智慧的双重修炼 ——现代软件架构师的核心能力建设指南 作者:蓝葛亮 🎯引言 在当今快速发展的技术环境中,软件架构师面临着前所未有的挑战。随着业务复杂度的不断增长和用户对性能要求的日益严苛,如何在架构设计中平衡功能实现与性能优化,已成为每个技术…

Flutter下的一点实践

目录 1、背景2、refena创世纪代码3、localsend里refena的刷新3.1 初始状态3.2 发起设备扫描流程3.3 扫描过程3.3 刷新界面 4.localsend的设备扫描流程4.1 UDP广播设备注册流程4.2 TCP/HTTP设备注册流程4.3 localsend的服务器初始化工作4.4总结 1、背景 在很久以前&#xff0c;…

Allegro 输出生产数据详解

说明 用于PCB裸板的生产可以分别单独创建文件 光绘数据(Gerber)、钻孔(NC Drill)、IPC网表;或者通过ODB++或IPC2581文件(这是一个新格式),它包含生产裸板所需要的所有信息 光绘数据 Artwork Gerber 光绘数据一般包含设计中各个层面的蚀刻线路、阻焊、铅锡、字符等信…

5.LoadBalancer负载均衡服务调用

目录 一、Ribbon目前也进入维护模式 二、spring-cloud-loadbalancer概述 三、spring-cloud-loadbalancer负载均衡解析 1.负载均衡演示案例-理论 2.负载均衡演示案例-实操 按照8001拷贝后新建8002微服务 启动Consul,将8001/8002启动后注册进微服务 Consul数据持久化配置…

linux安装ffmpeg7.0.2全过程

​编辑 白眉大叔 发布于 2025年4月16日 评论关闭 阅读(341) centos 编译安装 ffmpeg 7.0.2 &#xff1a;连接https://www.baimeidashu.com/19668.html 下载 FFmpeg 源代码 在文章最后 一、在CentOS上编译安装FFmpeg 以常见的CentOS为例&#xff0c;FFmpeg的编译说明页面为h…

视频逐帧提取图片的工具

软件功能&#xff1a;可以将视频逐帧提取图片&#xff0c;可以设置每秒提取多少帧&#xff0c;选择提取图片质量测试环境&#xff1a;Windows 10软件设置&#xff1a;由于软件需要通过FFmpeg提取图片&#xff0c;运行软件前请先设置FFmpeg&#xff0c;具体步骤 1. 请将…

java精简复习

MyBatis批量插入 <insert id"batchInsert" parameterType"java.util.List">INSERT INTO users(name, age) VALUES<foreach collection"list" item"item" separator",">(#{item.name}, #{item.age})</foreac…

IP 网段

以下是关于 IP 网段 的详细解析&#xff0c;涵盖基本概念、表示方法、划分规则及实际应用场景&#xff1a; 一、网段核心概念 1. 什么是网段&#xff1f; 网段指一个逻辑划分的 IP 地址范围&#xff0c;属于同一子网的设备可以直接通信&#xff08;无需经过路由器&#xff09…