【问题标题】:Filter syslog message with logstash grok filter使用 logstash grok 过滤器过滤系统日志消息
【发布时间】:2015-03-17 16:21:07
【问题描述】:

我通过 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 轻松实现这一点?

有什么线索吗?例子?

谢谢:)

【问题讨论】:

    标签: logstash


    【解决方案1】:

    我会定义两个 grok 模式:

    1. 以日期开头的php-fpm
    2. 以ip开头的nginx

    您可以根据需要在每个 grok{} 中添加_tag。

    【讨论】:

    • 好的,谢谢,有什么方便的方法来测试 grok 过滤器吗? logstash 作为服务运行,例如,如果我想测试来自 stdin 的输入并输出到 stdout,我该怎么做?
    • 当然使用调试器是个好方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多