侧边栏壁纸
博主头像
知我隧道博主等级

一个被程序员生涯耽误的UI设计师

  • 累计撰写 24 篇文章
  • 累计创建 10 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

docker安装Logstash并与springboot日志整合ELK

kongbai121
2022-06-06 / 0 评论 / 0 点赞 / 562 阅读 / 5593 字 / 正在检测是否收录...

前提

elasticsearch与kibana已安装配置完成并且能正常使用,可参考:https://www.kongbai121.xyz/archives/docker-an-zhuang-es

安装与配置

启动容器

#拉取镜像
docker pull logstash:7.4.2
#创建容器
docker run -p 4560:4560 --name logstash -d  logstash:7.4.2
#创建要挂载的配置目录
mkdir -p /mydata/logstash
#拷贝Logstash容器内部的配置
docker container cp logstash:/usr/share/logstash/config /mydata/logstash \
& docker container cp logstash:/usr/share/logstash/pipeline /mydata/logstash
#设置配置目录权限
chmod -R 775 /mydata/logstash
#停止并删除容器
docker rm -f logstash
#重新创建容器
docker run --name logstash \
--log-opt max-size=100m \
--log-opt max-file=3 \
-p 4560:4560 \
-v /mydata/logstash/config:/usr/share/logstash/config \
-v /mydata/logstash/pipeline:/usr/share/logstash/pipeline \
-d logstash:7.4.2
#开机自启
docker update logstash  --restart=always

配置es所在路径

vim /mydata/logstash/config/logstash.yml

#根据实际文件对应格式修改
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.17.0.1:9200" ]

接收springboot日志配置

#创建并编辑文件
vim /mydata/logstash/pipeline/logstash-springboot.conf

# 写入下方配置
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => "http://172.17.0.1:9200"
    index => "springboot-logstash-%{application_name}-%{+YYYY.MM.dd}"
  }
}

在logstash中安装json_lines插件

# 进入logstash容器
docker exec -it logstash /bin/bash
# 进入bin目录
cd /bin/
# 安装插件
logstash-plugin install logstash-codec-json_lines
# 退出容器
exit
# 重启logstash服务
docker restart logstash

SpringBoot应用集成Logstash

在pom.xml中添加logstash-logback-encoder依赖

<!--集成logstash-->
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.3</version>
</dependency>
复制代码

添加配置文件logback-spring.xml让logback的日志输出到logstash

注意appender节点下的destination需要改成你自己的logstash服务地址,比如我的是:192.168.3.101:4560 。

<springProfile name="dev">
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.1.69:4560</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"application_name":"yuedao-cms"}</customFields>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="logstash"/>
    </root>
    <logger name="com.yuedao" level="DEBUG"/>
</springProfile>

在kibana中查看日志信息

创建index pattern

Snipaste_2022-06-06_17-08-39

Snipaste_2022-06-06_17-09-37

Snipaste_2022-06-06_16-21-53

选择显示字段

image-20220606171541713

image-20220606171759291

image-20220606171816827

查看日志

image-20220606171920870

0

评论区