一、前言

  1. Graylog官网:https://www.graylog.org/
  2. Graylog Docker安装文档:https://docs.graylog.org/en/3.3/pages/installation/docker.html
Graylog是什么?

一个比ELK轻的分布式日志管理平台…

在这里插入图片描述

二、docker-compose安装Graylog

# 环境准备
git clone https://gitee.com/zhengqingya/docker-compose.git

# Liunx系统走此路径
cd docker-compose/Liunx
# Windows系统走此路径
cd docker-compose/Windows

# 运行服务
docker-compose -f docker-compose-graylog.yml -p graylog_demo up -d

等待运行完成…
在这里插入图片描述

三、Graylog配置

访问地址:http://127.0.0.1:9001
默认登录账号密码:admin/admin
在这里插入图片描述
System -> Inputs
在这里插入图片描述
② 选择GELF UDP
在这里插入图片描述
Launch new input
在这里插入图片描述
④ 如下图完成配置
在这里插入图片描述

四、SpringBoot - Logback日志案例demo

项目基于springboot2.3.1.RELEASE

1、pom.xml中新增logback-gelf依赖
<!-- logback-gelf -->
<!-- https://mvnrepository.com/artifact/de.siegmar/logback-gelf -->
<dependency>
  <groupId>de.siegmar</groupId>
  <artifactId>logback-gelf</artifactId>
  <version>3.0.0</version>
</dependency>
2、logback.xml日志文件中新增如下配置

在这里插入图片描述

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
    <graylogHost>127.0.0.1</graylogHost>
    <graylogPort>12201</graylogPort>
</appender>

<!-- 日志输出级别 -->
<root level="DEBUG">
    <appender-ref ref="GELF"/>
</root>
3、编写定时器测试日志输出

每3秒执行1次

@Slf4j
@Component
@EnableScheduling
public class AppScheduledJobs {

    @Scheduled(cron = "*/3 * * * * ?")
    public void test() {
        log.debug("==================================================================================");
        log.error("<<<<<< error Start: 【{}】 >>>>>>", LocalDateTime.now());
        log.warn("<<<<<< warn Start: 【{}】 >>>>>>", LocalDateTime.now());
        log.info("<<<<<< info Start: 【{}】 >>>>>>", LocalDateTime.now());
        log.debug("<<<<<< debug Start: 【{}】 >>>>>>", LocalDateTime.now());
    }

}
4、启动项目

在这里插入图片描述

五、Graylog中查看日志输出

http://127.0.0.1:9001/search

在这里插入图片描述

六、Docker容器日志测试

1、docker
# 启动一个docker测试日志:  ->  设置docker的log驱动为GELF
docker run -d \
--log-driver=gelf \
--log-opt gelf-address=udp://graylog服务器地址:12201 \
--log-opt tag=<容器服务标签 -> graylog查询分类使用> \
<IMAGE> <COMMAND>

docker-demo

docker run \
-d -p 88:88 --name log-java-demo \
--log-driver=gelf \
--log-opt gelf-address=udp://127.0.0.1:12201 \
--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}" \
registry.cn-hangzhou.aliyuncs.com/zhengqing/log-java-demo:latest
2、docker-compose
logging:
  driver:"gelf"
  options:
    gelf-address:"udp://graylog服务器地址:12201"
    tag:"容器服务标签"

docker-compose-demo

version: '3'
services:
  log-java-demo:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/log-java-demo:latest
    container_name: log-java-demo 
    ports:
      - "88:88"
    logging:
      driver: "gelf"
      options:
        gelf-address: "udp://127.0.0.1:12201"
        tag: log-java-demo

运行后回到graylog中查看相应日志信息
在这里插入图片描述

七、问题

docker-compose v2和v3版本之间的编排命令有所差异,刚开始在graylog官网看的2.x的compose v2版本的编排命令直接拿来在小编的v3版本中跑,出现坑… 最后习惯性的再查看graylog最新3.x版本的文档,重新来了一次,成功! 造成耗时原因在于纠结在那一个版本上了… (害~ 年轻人不能太钻牛角尖!!!)


本文案例demo源码地址

https://gitee.com/zhengqingya/java-workspace


今日分享语句:一个人最大的智慧是透过别人的阅历而读懂自己的未来。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐