之前一直想搭建一下ELK日志平台,但是ELK组件之间各种配置让人感觉不是很好用,然后就发现了GrayLog这个日志管理和收集平台,上手以后发现确实简单。这里就记录一下整合到springboot项目中的过程。

一、简介和对比

(一)官方网站

GrayLog开源官方网站为:https://www.graylog.org/

:下载安装GrayLog以后安装然后修改配置文件中es和mongodb的地址,其中es是用来存储丢到GrayLog中的日志,mongodb是用来存储GrayLog本身的数据的。

(二)GrayLog与ELK的对比

GrayLog与ELK的对比可参考:Graylog和ELK的简单对比

二、安装

前提:由于GrayLog依赖es和mongodb,因此需要提前安装好es和mongodb。安装es可参考:Linux下安装ElasticSearch,至于mongodb的安装可自行百度。

(一)下载和安装

访问官方网站以后,可以选择直接下载rpm压缩包还是docker直接安装,官方都提供了对应的方式
在这里插入图片描述
默认的是要你登录然后才能下载的,你可以点击下面的小字不登录
在这里插入图片描述
然后最终你会进到一个文档,这里我直接贴地址:https://docs.graylog.org/docs/operating-system-packages。访问以后你可以下载包或者直接使用yum安装,我选择的是yum安装
在这里插入图片描述
安装以后直接根据操作系统运行对应的启动命令和自启命令就行了。

(二)修改配置文件

进入GrayLog的安装目录/etc/graylog/server,然后修改该目录下的server.conf文件,修改文件中es的地址和mongodb的地址。由于GrayLog的日志控制台默认是9000端口,我已经使用了,所以修改成了9398端口。我把es装在了其他机器,mongodb跟GrayLog安装在了同一台机器,所以es和mongodb的配置改成了如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(三)访问GrayLog的控制后台

直接访问安装GrayLog机器的ip+上面的端口即可(若未修改则直接访问9000,修改以后就按照修改后的访问),我修改后的端口是9398,默认账号密码admin/admin,于是访问以后如下:

在这里插入图片描述
在这里插入图片描述

三、整合到springboot中

(一)GrayLog控制台配置

在GrayLog控制台创建一个日志输入方式,我们选择UDP的方式,System–>Inputs
在这里插入图片描述
创建类型选择GELF UDP然后点击Launch new input然后在弹框里面勾选Global,输入title,默认的端口是12201,日志大小都有,可以按照各自情况改,然后保存就好了
在这里插入图片描述

(二)springboot项目配置

springboot项目直接向GrayLog输出日需要依赖logback,用的也是logback的插件

1、导入依赖

<!-- Graylog-->
        <dependency>
            <groupId>de.siegmar</groupId>
            <artifactId>logback-gelf</artifactId>
            <version>1.1.0</version>
        </dependency>

2、修改logback的输出

在logback的xml文件中增加一个appender

    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
        <graylogHost>GrayLog的ip</graylogHost>
        <graylogPort>12201</graylogPort>
    </appender>
    <root level="debug">
        <appender-ref ref="GELF" />
    </root>

这样就配置完成了,下面就是去GrayLog控制后台查询输入过去的日志了

四、GrayLog控制后台使用

登录GrayLog控制后台以后点击Searchr然后就能看到输入过来的日志了
在这里插入图片描述
这里也可以根据条件搜索日志结果,也能设置让系统固定的时间内刷新日志,也能生成数据大屏和报警信息,具体的使用方式可以参考官方文档:https://docs.graylog.org/docs/queries
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐