使用logstash grok过滤器过滤syslog消息

时间:2015-03-17 16:21:08

标签: logstash

我通过syslog输入将以下日志发送到logstash(日志来自通过logspout发送到logstash的docker容器)

因此,在以下日志示例中,第一行是php-fpm错误第二行是nginx访问日志

docker-nginx-php-composer|2015/03/17 16:31:28 [error] 9#0: *41 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Call to undefined function teetstst() in /var/www/index.php on line 3" while reading response header from upstream, client: 10.10.37.110, server: _, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "turing:49213"
docker-nginx-php-composer|10.10.37.110 - - [17/Mar/2015:16:31:28 +0100] "GET /favicon.ico HTTP/1.1" 200 134 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"

```

好了所以现在我想过滤所有这些混乱所以我可以“标记”PHP-FPM日志例如或仅过滤PHP-FPM的警告和错误......

我想我必须使用logstash中的grok过滤器,但我不知道具体如何?

假设我想只过滤掉PHP错误,在其上加上“php”标签,并过滤掉nginx中的404和500错误,如何使用logstash / grok轻松实现?

任何线索?例子?

谢谢:)

1 个答案:

答案 0 :(得分:0)

我会定义两个grok模式:

  1. 以日期开头的php-fpm
  2. 以ip开头的nginx
  3. 您可以根据需要在每个grok {}中添加add_tag。