我无法从日志文件/var/log/messages中获取特定的行。我在client-server中使用logstash-forwarder,在log-server中使用logstash、elasticsearch和kibana。我试图安装grep过滤器,但它给了我一些错误,所以我尝试实现下面的grok。我最初的帖子是here。我发现了this,但我很不满意。
以下是客户端服务器中logstash-forwarder文件名的配置: logstash-forwarder
{
"network": {
"servers": [ "logstashserver-ip:5000" ],
"timeout": 15,
"ssl ca": "xxx.crt"
},
"files": [
{
"paths": [
"/var/log/messages"
],
"fields": { "type": "syslog" }
}
]
}下面是logstashserver中的logstash配置
文件名:input.conf
input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "xxx.crt"
ssl_key => "xxx.key"
}
}文件名:filter.conf
filter {
grok {
match => ["message", "\[%{WORD:messagetype}\]: %{GREEDYDATA}"]
}
}文件名:output.conf
output {
elasticsearch { host => "logstashserver-ip" }
if [messagetype] == "ERROR" {
stdout {
codec => "rubydebug"
}
}
}有什么问题吗?
发布于 2015-03-18 01:02:41
不确定你是否仍然有这个问题,但我会考虑删除你不想要的消息。在我的服务器上,我得到了syslog严重级别,其中包括在http://en.wikipedia.org/wiki/Syslog#Severity_levels中定义的syslog_severity_code。
如果你想把它们放到你的索引里,试试下面这样的方法
filter {
if [type] == 'syslog' and [syslog_severity_code] > 5 {
drop { }
}
}https://stackoverflow.com/questions/25058191
复制相似问题