上面介绍的都是graylog的基础使用和配置,在配置了之后,已经可以实现对日志的采集,日志的监控报警。下面就简单演示一下如何创建仪表盘,在过程中熟悉一下graylog中的搜索,流,索引,管道,装饰器等等。

 

途中就是search界面,最上面可以选择时间端,默认是最近5分钟,第二行是搜索的语法,这个语法很简单,最常用的如,搜索level为3的日志,就是 level:3,就这么简单,多条匹配规则可以通过AND,OR(连接词必须大写)进行连接。要搜索包含abc的日志,就直接输入 abc 就行了。整体来说相对于elk要简单很多。具体的完整用法,https://docs.graylog.org/en/4.0/pages/queries.html

然后我们要定义仪表盘,首先需要创建一个仪表盘,只需要输入标题和说明就行:

 

 

仪表盘技术暂未研究

索引

我们知道elasticsearch是以索引来存储数据的,启动graylog后,会自动生产一个默认的索引,索引地段值就为graylog,如下图。上面我们还在其中配置过数据存储限制,可以通过时间,大小,数量来进行存储限制。

 

为什么要说这个了,就是在实际生产情况中,日志来源并不是单一的,除了java应用服务日志,可能还有nginx访问日志,系统日志等等。这种时候就会产生重要性的问题,比如,生产环境的nginx访问日志,要保存1年。而测试环境的应用服务日志,只需要保存7天就可以了这种不同情况的需求,为了能更好的区分不同类型的日志,我们就可以创建不同的索引,来储存不同类型的日志。比如创建test环境,prod环境的索引来区分环境,创建nginx,web-app等来区分nginx和应用web服务等。如图创建prod环境日志:

 

 

 

索引创建后,需要创建stream(流)来将收到的日志进行匹配,将匹配的日志存入新的索引。以此来形成区分,系统默认存在all message流来存入default index set中,在创建流的时候,可以定义匹配到的数据,在存入新的索引时,是否删除默认存入的索引数据,以保存数据只存一份,不然会存在多份相同日志数据。创建stream,如图,创建时选择此stream匹配的日志存入的索引。

 

 

创建后,配置stream的匹配规则,匹配支持正则表达式,Type中选match regular expression(正则表达式),如下图。

 

 

 

 

如图所示,规则之间可以选择是 "且" 还是 "或" 。 就是多条规则是都匹配才成功,还是只需要匹配其中一条就成功。规则添加成功后,点击 i'm done 。然后点击 Start Stream启动Stream就可以了。

这样就可以将日志数据进行分类保存了。

如果是springboot项目直接推送日志到graylog的可以通过logback-spring.xml中配置

<!-- This are static fields -->
<additionalFields>fieldName1=local-springboot-integration</additionalFields>
<!-- Optional: Specify field types -->
<additionalFieldTypes>fieldName1=String</additionalFieldTypes>

 

为流匹配不同的日志

或者

<facility>springboot-integration</facility>

 

匹配facility 字段值为springboot-integration 的日志

 

 

Logo

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

更多推荐