docker搭建elk

ops/2025/3/18 4:29:05/

文章目录

      • 1.拉取镜像
      • 2.ES配置
      • 3.logstash配置
      • 4.kibana配置
      • 5.创建自定义网络
      • 6.docker-compose.yml文件
      • 7.springboot对接Logstash
        • 1.创建一个springboot项目引入主要依赖
        • 2.application.yml配置
        • 3.resources目录中新增logback-spring.xml
        • 4.启动项目,搞点日志
        • 5.进入kibana控制台
        • 6.添加索引模式
        • 7.检索日志,打开Discover

1.拉取镜像

docker pull elasticsearch:7.16.3
docker pull logstash:7.16.3
docker pull kibana:7.16.3

2.ES配置

elasticsearch.yml

http.host: 0.0.0.0
xpack.security.enabled: false
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: false
network.host: 0.0.0.0

3.logstash配置

logstash.yml

http.host: 0.0.0.0
xpack.monitoring.elasticsearch.hosts: [ "http://es7163:9200" ]

logstash.conf:

input {tcp {mode => "server"host => "0.0.0.0"port => 5044codec => json_lines}
}
filter{}
output {elasticsearch {hosts => "es7163:9200"index => "tingshu-%{+YYYY.MM.dd}"}
}

4.kibana配置

kibana.yml:

server.host: "0.0.0.0"
elasticsearch.hosts: ["http://es7163:9200"]
i18n.locale: "zh-CN"

5.创建自定义网络

docker network create elk

dockercomposeyml_56">6.docker-compose.yml文件

version: '3'services:elasticsearch:image: elasticsearch:7.16.3container_name: es7163networks:- elkenvironment:- ES_JAVA_OPTS=-Xms1024m -Xmx1024m- discovery.type=single-nodeports:- "9200:9200"- "9300:9300"volumes:- /usr/local/es/data:/usr/share/elasticsearch/data- /usr/local/es/plugins:/usr/share/elasticsearch/plugins- /usr/local/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymlrestart: alwayslogstash:image: logstash:7.16.3container_name: logstash7163networks:- elkdeploy:resources:limits:cpus: '2'memory: 4gports:- "5044:5044"  # Logstash 默认端口- "9600:9600"volumes:- /usr/local/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml  # 配置文件- /usr/local/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf  # 配置文件restart: alwaysdepends_on:- elasticsearchkibana:image: kibana:7.16.3container_name: kibana7163networks:- elkports:- "5601:5601"volumes:- /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.ymlrestart: alwaysdepends_on:- elasticsearchnetworks:elk:driver: bridge

7.springboot对接Logstash

1.创建一个springboot项目引入主要依赖
<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>6.6</version>
</dependency>
2.application.yml配置
server:port: 8080
logging:config: classpath:logback-spring.xml
spring:application:name: linging-test
3.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>192.168.159.100: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>
4.启动项目,搞点日志

在这里插入图片描述

5.进入kibana控制台

在这里插入图片描述
在这里插入图片描述

6.添加索引模式

在这里插入图片描述

7.检索日志,打开Discover

在这里插入图片描述


http://www.ppmy.cn/ops/166678.html

相关文章

Android Composable 与 View 的联系和区别

在 Android 开发中&#xff0c;‌Composable‌&#xff08;Jetpack Compose&#xff09;与‌View‌&#xff08;传统 View 系统&#xff09;是两种不同的 UI 构建范式。本文将从核心联系、核心区别、代码实现三方面展开对比&#xff0c;并通过实例代码帮助开发者理解其应用场景…

Go语言 vs Java语言:核心差异与适用场景解析

在当今的软件开发领域&#xff0c;Go&#xff08;Golang&#xff09;和Java都是备受关注的后端开发语言。尽管二者都能构建高性能服务&#xff0c;但它们在设计哲学、语法特性和应用场景上存在显著差异。本文将从多个维度对比这两种语言&#xff0c;帮助开发者更好地理解它们的…

前端存储-indexdb封装:dexie.js的使用

前言 indexedDB是一个用于在浏览器中存储较大数据结构的Web API&#xff0c;并且提供了索引功能以实现高性能查找。dexie.js是对indexdb的封装&#xff0c;前端用起来很方便。在此介绍一下项目中用到的操作语句&#xff0c;也方便记录。我的项目是vue3项目。 开始 1、安装 …

qt5中使用中文报错error: C2001: 常量中有换行符

1.qt5中使用中文报错error: C2001: 常量中有换行符 如这条代码: this->ui->pbtn_open_card->setText("关闭卡");运行时报错&#xff0c;提示常量中有换行符 2.工具->选项->文本编辑&#xff0c;选择下图 3.重新按utf-8加载编码 4.文件开头添加 #pr…

Redis基础阶段笔记

01 Redis简介 一、Redis 的背景 • 诞生时间&#xff1a;2009 年&#xff0c;由意大利开发者 Salvatore Sanfilippo 为解决网站高并发问题而设计。 • 名字含义&#xff1a;Remote Dictionary Server&#xff08;远程字典服务器&#xff09;&#xff0c;强调其“键值对”存储…

基于Python的PDF转PNG可视化工具开发

基于Python的PDF转PNG可视化工具开发 一、引言 在数字文档处理领域&#xff0c;PDF到图像格式的转换是常见需求。本文介绍如何利用Python的PyMuPDF库和Tkinter框架&#xff0c;开发一个带图形界面的PDF转PNG工具。该工具支持页面选择、分辨率调整等功能&#xff0c;并具有友好…

matlab 三维桥式起重机系统数学模型

1、内容简介 matlab161-三维桥式起重机系统数学模型 可以交流、咨询、答疑 2、内容说明 略 2.3.1 三维桥式起重机系统数学模型 假设&#xff1a;&#xff08;1&#xff09;钢丝绳长度变化忽略不计&#xff0c;且不考虑其柔性&#xff1b;&#xff08;2&#xff09;假设台车和…

C#核心笔记——(五)框架概述

.NET Ftamework中几乎所有功能都是通过大量的托管类型提供的。这些类型组织在层次化的命名空间中&#xff0c;并打包为一套程序集&#xff0c;与CLR一起构成了.NET平台。 有些.NET类型是由CLR直接使用的&#xff0c;且对于托管宿主环境而言是必不可少的。这些类型位于一个名为…