私のlog4jsログ用のgrok logstashフィルタを作成しようとしています。次のようにlog4jsのGrokフィルタ
私nodejsアプリのコードは次のとおりです。
var httpLogFormat = ':remote-addr - - [:date] ":method :url ' + 'HTTP/:http-version" :status :res[content-length] ' + '":referrer" ":user-agent" :response-time';
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/access.log'), 'access');
var logger = log4js.getLogger('access');
app.use(log4js.connectLogger(logger, { level: 'auto', format: httpLogFormat }));
これは、次のログメッセージで結果:
[2017-01-31 08:54:32.491] [WARN] access - 192.1.1.10 - - [Tue, 31 Jan 2017 07:54:32 GMT] "GET /api/test HTTP/1.0" 304 undefined "https://localhost.com/test" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36" 111
私の現在のGROKフィルタはこの(更新)のようになります。
grok {
match => { "message" => "\[%{HTTPDATE:timestamp}\] \[%{WORD:loglevel}\] %{WORD:logtype} - %{IPORHOST:clientip} %{USER:ident} %{USER:auth} \"%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})\" %{NUMBER:response} - \"%{DATA:rawrequest}\" \"%{QS:agent}\""}
}
構文解析エラーがありますが、[]が原因であると思われますが、わかりません。一致しない
:
http://grokconstructor.appspot.com/がで失敗します。この行の先頭に一致する最も長い正規表現プレフィックスは次のとおりです。一致前の 接頭辞「」:[2017-01-31 08:54:32.491] [WARN] access - 192.1.1.10 - - [Tue、31 Jan 2017 07 :54:32 GMT]一致後:GET/api/test HTTP/1.0 "304 undefined" https://test.localhost.com/test "Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.36(GeckoのようなKHTML)Chrome/55.0.2883.75 Safari /537.36 "111
こんにちは、私の間違い。上記の私のgrokフィルタを更新しました。 – Tony
ありがとうRumblesは、魅力のように動作します! – Tony