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

docker搭建elk

文章目录

      • 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 => 5044
          codec => 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

6.docker-compose.yml文件

version: '3'

services:
  elasticsearch:
    image: elasticsearch:7.16.3
    container_name: es7163
    networks:
      - elk
    environment:
      - ES_JAVA_OPTS=-Xms1024m -Xmx1024m
      - discovery.type=single-node
    ports:
      - "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.yml
    restart: always

  logstash:
    image: logstash:7.16.3
    container_name: logstash7163
    networks:
      - elk
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4g
    ports:
      - "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: always
    depends_on:
      - elasticsearch

  kibana:
    image: kibana:7.16.3
    container_name: kibana7163
    networks:
      - elk
    ports:
      - "5601:5601"
    volumes:
      - /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
    restart: always
    depends_on:
      - elasticsearch

networks:
  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

在这里插入图片描述

相关文章:

  • MySQL-存储过程和自定义函数
  • Typora自带的picgo图床上传功能 异常修复
  • JVM常用概念之锁省略
  • Windows编译Flash-attention模块
  • 【医学影像 AI】大型语言模型生成 ROP 患者信息材料的能力
  • python实现接口自动化
  • 【NeurIPS 2024】LLM-ESR:用大语言模型破解序列推荐的长尾难题
  • 从Instagram到画廊:社交平台如何改变艺术家的展示方式
  • LLM(3): Transformer 架构
  • 自探索大语言模型微调(一)
  • Designing Dashboards with SAP Analytics Cloud
  • Centos离线安装openssl
  • 错误记录: git 无法连接到github
  • 【恒流源cc与恒压源cv典型电路解析】
  • CVE-2018-2628(使用 docker 搭建)
  • RUOYI框架在实际项目中的应用一:ruoyi简介
  • 用vue3显示websocket的状态
  • # RAG 框架 # 一文入门 全链路RAG系统构建与优化 —— 架构、策略与实践
  • DeepSeek:开启机器人智能化的革命性突破
  • 计算机视觉|Swin Transformer:视觉 Transformer 的新方向
  • 广州网站建设公司万齐网络科技/泰安网站seo推广
  • 网站建设首页模板/谷歌seo运营
  • 武汉老牌网站建设/学开网店哪个培训机构好正规
  • 网站布局结构分类/北京百度seo价格
  • 网站原型设计流程/近期发生的新闻
  • 深圳高端网站案例/软件商店安装