docker搭建elk

server/2025/3/18 2:35:09/

文章目录

      • 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/server/175836.html

相关文章

JAVA图形绘制

坐标系 关于坐标类的问题&#xff0c;由于上上个问题未明确指出具体是关于哪种编程语言或应用领域的坐标类&#xff0c;这里我将以Java语言中的图形绘制坐标系统为例进行详细解答。 一、Java图形绘制坐标系统概述 在Java的图形绘制中&#xff0c;坐标系统是一个核心概念。它确…

魔法协议Magic-MCP:开启AI智能体「万能互联」的新时代

你是否想过&#xff0c;未来的AI助手可以像人类一样自如地操作日历、订机票、写代码&#xff0c;甚至管理整个公司的数据系统&#xff1f;这一切的核心秘密&#xff0c;就藏在今天要介绍的开源项目——Magic-MCP中。这个被开发者称为“AI世界的万能插座”的协议&#xff0c;正在…

[leetcode] 面试经典 150 题——篇1:数组/字符串

篇1&#xff1a;数组/字符串 1. [简单] 合并两个有序数组(leetcode88题)题目描述解题思路python代码 2. [简单] 删除有序数组中的重复项(leetcode 26题)题目描述python代码 3. [中等] 删除有序数组中的重复项2(leetcode 80题)4. [中等] 轮转数组(leetcode 189题)题目描述python…

leetcode日记(101)填充每个节点的下一个右侧节点指针Ⅱ

意料之中有这题&#xff0c;将之前的思路换一下即可&#xff0c;层序遍历的思路将record&#xff08;记录下一个循环的次数&#xff09;手动加减。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL)…

IP 协议

文章目录 IP 协议概述数据包格式首部校验和实例分析实例一 分片抓包分析参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记&#xff0c;文末均附有参考链接&#xff0c;如侵权&#xff0c;请联系删除。 IP 协议 概述 IP 协议是 TCP/IP 协议簇中的核心协议&#xff0c;也…

图像处理篇---图像预处理

文章目录 前言一、通用目的1.1 数据标准化目的实现 1.2 噪声抑制目的实现高斯滤波中值滤波双边滤波 1.3 尺寸统一化目的实现 1.4 数据增强目的实现 1.5 特征增强目的实现&#xff1a;边缘检测直方图均衡化锐化 二、分领域预处理2.1 传统机器学习&#xff08;如SVM、随机森林&am…

kafka 中的 rebalance

Kafka 的 Rebalance&#xff08;重平衡&#xff09;机制本质上是一个协调过程&#xff0c;用于在消费者组内动态分配分区&#xff0c;以保证消费任务均匀分布。Rebalance 主要由 Kafka Consumer Group 协议&#xff08;Group Membership Protocol&#xff09;驱动&#xff0c;涉…

[特殊字符] 深度实战:Android 13 系统定制之 Recovery 模式瘦身指南

&#x1f31f; 核心需求 在 Android 13 商显设备开发中&#xff0c;需精简 Recovery 模式的菜单选项&#xff08;如Reboot to bootloader/Enter rescue&#xff09;&#xff0c;但直接修改g_menu_actions后在User 版本出现黑屏卡死问题&#xff0c;需综合方案解决。 &#x1f5…