在使用GrayLog采集Linux服务器系统日志的过程,在GrayLog 查询界面source列中只能看到主机名, 当主机数量很多时,特别是多个主机有相同主机名时,这时就无法区分日志来自于是哪一台主机了
比如多台主机的hostname都为默认的localhost

(图片可点击放大查看)
为了解决这个问题,我的想法是能否将source这一列能否用主机IP来展示。
经过翻阅GrayLog社区上的文章,最终找到解决办法 具体文章链接
代码语言:javascript
AI代码解释
https://community.graylog.org/t/use-source-ip-for-source-field/20684

(图片可点击放大查看)

(图片可点击放大查看)
具体的配置方法如下
1、添加一个pipeline
pipeline名字为changehostname_to_ip

(图片可点击放大查看)

(图片可点击放大查看)
2、创建Pipeline Rules

(图片可点击放大查看)
描述为
代码语言:javascript
AI代码解释
replace source with sending IP
Rule source 规则语法如下
代码语言:javascript
AI代码解释
rule "Replace source with sending IP"
when
has_field("message")
then
set_field("source", to_string($message.gl2_remote_ip));
end
并点击应用

(图片可点击放大查看)
3、把pipeline应用到stream中

(图片可点击放大查看)

(图片可点击放大查看)
4、在stage0中应用rules规则

(图片可点击放大查看)
当匹配到pipeline中的规则中,就按规则中语法进行处理
可以通过Throughput查看匹配到规则的吞吐量

(图片可点击放大查看)

(图片可点击放大查看)
5、验证效果

