我有一些微服务,它们是用Docker部署的。它们通过日志驱动程序syslog
将日志发送到我的Logstash。
input {
syslog {
port => 9771
type => "syslog"
}
}
filter {
}
output {
file {
path => "/var/log/logstash/%{+YYYY-MM-dd}/logstash-%{+HH}.log"
}
if "www.envoyproxy.io" in [message] {
file {
path => "/var/log/logstash/%{+YYYY-MM-dd}/test-%{+HH}.log"
codec => line { format => "%{message}" }
}
}
}
我可以在文件test-01.log
中看到如下日志:
<30>Mar 8 11:42:45 2867370d06d5[8119]: 172.16.0.226,48982,envoy,2023-03-08T03:42:39.340Z,34.142.199.10,443,-,www.envoyproxy.io,HTTP/1.1,GET,/,HTTP/1.1,200,17304,2023-03-08T03:42:39.340Z,17304,-,-,curl/7.29.0,-,1000,0,0,0,0,0,0,0,0,0,0,0
我想在将日志写入文件test-01.log
之前删除部分<30>Mar 8 11:42:45 2867370d06d5[8119]:
,但我不知道如何删除。
1条答案
按热度按时间zpgglvta1#
您可以将Logstash grok过滤器(docs)添加到管道中,以提取消息部分并删除不需要的前缀,然后再将其写入输出文件。