SpringBoot使用Graylog日志收集的实现示例

  

本文介绍SpringBoot如何使用Graylog日志收集。

  

  

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

  

架构图如下:

  

 SpringBoot使用Graylog日志收集的实现示例

  

生产环境配置图如下:

  

 SpringBoot使用Graylog日志收集的实现示例

  

  

在官方文档上推荐了很多种安装的方式,这里以docker-compose的方式为例,进行安装Graylog,蒙戈elasticsearch。

  

docker-compose.yml内容如下(这里是在官网的基础上改了一下):

  

        版本:' 2 '   服务:   # MongoDB: https://hub.docker.com/_/mongo/mongodb:   图片:mongo: 3   # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/docker.html   elasticsearch:   图片:docker.elastic.co/elasticsearch elasticsearch-oss: 6.6.1   环境:   - http.host=0.0.0.0   - transport.host=localhost   - network.host=0.0.0.0   ——“ES_JAVA_OPTS=-Xms256m -Xmx256m”   ulimit:   memlock:   软:1   困难:1   mem_limit: 512   # Graylog: https://hub.docker.com/r/graylog/graylog/graylog:   图片:graylog/graylog: 3.0   环境:   #改变我(必须至少16字符)!   - GRAYLOG_PASSWORD_SECRET=somepasswordpepper   #密码:admin   - GRAYLOG_ROOT_PASSWORD_SHA2=8 c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918   - GRAYLOG_HTTP_EXTERNAL_URI=http://106.13.35.42:9000   链接:   mongodb: mongo   ——elasticsearch   depends_on:   ——mongodb   ——elasticsearch   港口:   # Graylog web界面和REST API   ——9000:9000   # Syslog TCP   ——1514:1514   # Syslog UDP   - 1514:1514/udp   # GELF TCP   ——12201:12201   # GELF UDP   - 12201:12201/udp      

其中106.13.35.42是我的外网ip,本地服务使用127.0.0.1即可。

  

其他方式可以查看官方文档,https://docs.graylog.org/en/3.0/pages/installation.html

  

  

在浏览器访问http://ip: 9000年,如图:

  

 SpringBoot使用Graylog日志收集的实现示例

  

这里默认用户名密码都是管理,进入后如图所示。

  

 SpringBoot使用Graylog日志收集的实现示例

  

选择系统按钮中的输入,录入一个输入源,如图

  

 SpringBoot使用Graylog日志收集的实现示例

  

这里以GELF UDP为例,在图中位置选择GELF UDP,选择完成后点击推出新的输入,如图

  

 SpringBoot使用Graylog日志收集的实现示例

  

在节点处选择自己安装的,剩下的就根据需要填写即可,如图

  

 SpringBoot使用Graylog日志收集的实现示例

  

保存完成后如图,到这里就已经配置完成了。

  

<强>  SpringBoot使用Graylog日志收集的实现示例

  

  

这里分别举例Logback日志和Log4j2日志。

  

<强> 4.1 Logback日志

  

这里使用的logback-gelf向Graylog输出日志,在github上有对logback-gelf的详细使用介绍,这里只是简单举例.Github地址:https://github.com/osiegmar/logback-gelf。

  

新建项目,加入logback-gelf依赖,pom文件如下:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;项目xmlns=" http://maven.apache.org/POM/4.0.0 " xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xsi: schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”比;   & lt; modelVersion> 4.0.0   & lt; parent>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-parent   & lt; version> 2.1.4.RELEASE   & lt; relativePath/比;& lt; !——从库中查找父——比;   & lt;/parent>   & lt; groupId> com.dalaoyang

SpringBoot使用Graylog日志收集的实现示例