首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤logstash中日志文件中的特定行

过滤logstash中日志文件中的特定行
EN

Stack Overflow用户
提问于 2014-07-31 19:49:54
回答 1查看 2K关注 0票数 1

我无法从日志文件/var/log/messages中获取特定的行。我在client-server中使用logstash-forwarder,在log-server中使用logstash、elasticsearch和kibana。我试图安装grep过滤器,但它给了我一些错误,所以我尝试实现下面的grok。我最初的帖子是here。我发现了this,但我很不满意。

以下是客户端服务器中logstash-forwarder文件名的配置: logstash-forwarder

代码语言:javascript
复制
{
  "network": {
    "servers": [ "logstashserver-ip:5000" ],
    "timeout": 15,
    "ssl ca": "xxx.crt"
  },
  "files": [
    {
      "paths": [
        "/var/log/messages"
       ],
      "fields": { "type": "syslog" }
    }
   ]
}

下面是logstashserver中的logstash配置

文件名:input.conf

代码语言:javascript
复制
input {
  lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "xxx.crt"
    ssl_key => "xxx.key"
  }
}

文件名:filter.conf

代码语言:javascript
复制
filter {
    grok {
        match => ["message", "\[%{WORD:messagetype}\]: %{GREEDYDATA}"]
    }
}

文件名:output.conf

代码语言:javascript
复制
output {
  elasticsearch { host => "logstashserver-ip" }
  if [messagetype] == "ERROR" {
        stdout {
            codec => "rubydebug"
        }
}
}

有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-18 01:02:41

不确定你是否仍然有这个问题,但我会考虑删除你不想要的消息。在我的服务器上,我得到了syslog严重级别,其中包括在http://en.wikipedia.org/wiki/Syslog#Severity_levels中定义的syslog_severity_code。

如果你想把它们放到你的索引里,试试下面这样的方法

代码语言:javascript
复制
filter {
    if [type] == 'syslog' and [syslog_severity_code] > 5  {
        drop { }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25058191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档