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

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

在这里插入图片描述


http://www.kler.cn/a/582427.html

相关文章:

  • 【学写LibreCAD】 4.1 RS_Undoable文件
  • 【Linux内核系列】:文件系统
  • 一文说清docker及docker compose的应用和部署
  • UI显示不出来问题(有的能显示出来一个方法,有的数据显示不出来另一个方法),多次尝试无果
  • CSPM-3级国标认证,项目管理如何成为组织变革的核心引擎?
  • 裂变营销策略在“开源链动2+1模式AI智能名片S2B2C商城小程序”中的应用探索
  • JavaScript性能优化实战:让你的Web应用飞起来
  • AI+API引爆数据分析:BI已成过去?
  • 【漫话机器学习系列】133.决定系数(R²:Coefficient of Determination)
  • 微电网管理 实现分布式能源的智能调度和管理
  • ROS——节点、工作空间、功能包
  • 【18】单片机编程核心技巧:变量赋值与高位填充机制
  • 每日一题——两两交换链表中的节点
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.1.1基于ES的语义搜索(BERT嵌入向量)
  • Spring Boot集成EasyExcel
  • 自学Java-Java高级技术(单元测试、反射、注解、动态代理)
  • wps word 正文部分段前段后间距调整无用
  • libpcap捕捉过滤wifi beacon包解析国标飞行器drone id报文
  • 【python-uiautomator2】手机上的ATX应用界面报错问题处理:无法提供服务,非am instrument启动
  • Percona XtraBackup8.0备份实例