通过logstash filter过滤屏蔽不需要的日志

今天是12-24号,又一个平安夜,祝大家赚多多钱, 泡更美的妹子.  


正题,

今天朋友问我关于elk日志过滤的问题。java程序虽然会写大量的日志(包括垃圾日志) .   但为了精简数据需要logstash agent做日志的过滤,也就是说过滤掉不需要的日志. 


文章写的不是很严谨,欢迎来喷,另外该文后续有更新的,请到原文地址查看更新. 

http://xiaorui.cc/2015/12/24/%E9%80%9A%E8%BF%87logstash-filter%E8%BF%87%E6%BB%A4%E5%B1%8F%E8%94%BD%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%E6%97%A5%E5%BF%97/

下面是解决过滤屏蔽日志的logstash配置文件.

写入配置文件后,我们开始测试:

首先在客户端测试下.  为什么要和xiaorui.cc这字符串较劲?  我想大家注意到我上面filter配置有个 =~ “^xiaorui.cc” .    只有当日志是xiaorui.cc开头的才会drop屏蔽.

[ root@bj-buzz-dev01:/data/buzzMaster {extractor} ]$ echo “1xiaorui.cc” >>extractor.log
[ root@bj-buzz-dev01:/data/buzzMaster {extractor} ]$ echo “blog.xiaorui.cc” >>extractor.log
[ root@bj-buzz-dev01:/data/buzzMaster {extractor} ]$ echo “xiaorui.cc” >>extractor.log
[ root@bj-buzz-dev01:/data/buzzMaster {extractor} ]$ 

我们再看下logstash server端的反应.  

[ root@bj-buzz-dev01:/data/buzzMaster {extractor} ]$ /usr/local/logstash-1.4.2/bin/logstash -f conf/agent.conf

{
       ”message” => “1xiaorui.cc”,
      “@version” => “1″,
    “@timestamp” => “2015-12-24T07:45:58.099Z”,
          “type” => “producer”,
          “host” => “bj-buzz-dev01″,
          “path” => “/data/buzzMaster/extractor.log”
}

{
       ”message” => “blog.xiaorui.cc”,
      “@version” => “1″,
    “@timestamp” => “2015-12-24T07:46:12.117Z”,
          “type” => “producer”,
          “host” => “bj-buzz-dev01″,
          “path” => “/data/buzzMaster/extractor.log”
}

通过日志我们可以分析确定drop起到效果了.  需要注意的是在logstash里所有的日志都会放入message里. 

logstash filter还可以根据日志的级别进行drop

如果你有个更加奇特的需求,上面的需求是过滤屏蔽不需要的日志,那如果你想抽样?要部分的随机日志. filter percentage有个百分比抽样参数. 

filter {
  if [loglevel] == “debug” {
    drop {
      percentage => 40
    }
  }
}

另外可以增加字段.

filter {
  drop {
    add_field => { “foo_%{somefield}” => “Hello world, from %{host}” }
  }
}

我们可以通过filter删除指定字段. 

filter {
  drop {
    remove_field => [ "foo_%{somefield}" ]
  }
}

结论,  logstash的filter插件还是很多的.

1 Response

  1. xianjie 2016年3月9日 / 下午5:23

    非常感谢。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">