Graylog搭建步骤

 

Github: https://github.com/osiegmar/logback-gelf 

 浅尝感言:日志是定位问题好的工具,及时的日志监控等于有一个良好的系统运行保障。

1、简介 

Graylog是一个生产级别的日志收集系统,集成Mongo和Elasticsearch进行日志收集。其中Mongo用于存储Graylog的元数据信息和配置信息,ElasticSearch用于存储数据。

 架构图

  

 

2、环境搭建(以下版本可对应升级)  

  Docker1.13.1

  ESelasticsearch-oss:6.6.1

  Docker-compse 1.21.2 

 

3、使用linux下新建yml文件.搭建成功的简单例子,更换访问IP 

version: '2'
services:
  mongodb:
    image: mongo:3
  graylog:
    image: graylog/graylog:3.0
    environment:
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      - GRAYLOG_ROOT_PASSWORD_SHA2=8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
      - GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.xxx.xxx:9000/
      - GRAYLOG_ELASTICSEARCH_HOSTS=http://192.168.xxx.xxx:9200/
      - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
    links:
      - mongodb:mongo
      - elasticsearch
    depends_on:
      - mongodb
      - elasticsearch
    ports:
      - 9000:9000
      - 1514:1514
      - 1514:1514/udp
      - 12201:12201
      - 12201:12201/udp

   

docker启动命令(在docker-compse.yml目录下):docker-compose up

备注:注意端口是否可以访问,关闭防火墙,或者开端口

  

4、启动成功访问界面(http://192.168.xxx.xxx:9000/

 

  

 5、新建input

 

   

6、项目springboot(已更新至4.0.1

导入依赖 

<dependency>
    <groupId>de.siegmar</groupId>
    <artifactId>logback-gelf</artifactId>
    <version>2.0.0</version>
</dependency>

 

resources下新建(以上截图的配置),更换访问IP 

<configuration>
    <!-- 配置控制台的输出日志 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <!-- 定义日志输出的格式 -->
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>
                    %d - [%thread] %-5level %logger{35} - [%line] - %msg%n
                </pattern>
            </layout>
        </encoder>
    </appender>
    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
        <graylogHost>192.168.xxx.xxx</graylogHost>
        <graylogPort>12201</graylogPort>
        <!-- 最大GELF数据块大小(单位:字节),508为建议最小值,最大值为65467 -->
        <maxChunkSize>508</maxChunkSize>
        <!-- 是否使用压缩 -->
        <useCompression>true</useCompression>
        <encoder class="de.siegmar.logbackgelf.GelfEncoder">
            <originHost>192.168.xxx.xxx</originHost>
            <!-- 是否发送原生的日志信息 -->
            <includeRawMessage>false</includeRawMessage>
            <includeMarker>true</includeMarker>
            <includeMdcData>true</includeMdcData>
            <includeCallerData>false</includeCallerData>
            <includeRootCauseData>false</includeRootCauseData>
            <!-- 是否发送日志级别的名称,否则默认以数字代表日志级别 -->
            <includeLevelName>true</includeLevelName>
            <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%m%nopex</pattern>
            </shortPatternLayout>
            <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%d - [%thread] %-5level %logger{35} - %msg%n</pattern>
            </fullPatternLayout>
            <!-- 配置应用名称(服务名称),通过staticField标签可以自定义一些固定的日志字段 -->
            <staticField>app_name:user-service</staticField>
            <staticField>os_arch:${os.arch}</staticField>
            <staticField>os_name:${os.name}</staticField>
            <staticField>os_version:${os.version}</staticField>
        </encoder>

    </appender>

    <root level="info">
        <appender-ref ref="consoleLog" />
        <appender-ref ref="GELF" />
    </root>

</configuration>

 

简单的例子配置可以使用以下

<configuration>

    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">

        <graylogHost>localhost</graylogHost>

        <graylogPort>12201</graylogPort>

    </appender>

    <root level="debug">

        <appender-ref ref="GELF" />

    </root>

</configuration> 

 

Java代码:

Logger log = LoggerFactory.getLogger(UserController.class);

log.error("============error日志",e);

 

posted on 2021-12-29 23:22  fuanfei  阅读(530)  评论(0)    收藏  举报