現在、BluemixコンテナにELKスタックを設定しています。このblogに続いて、私はlogstash Drainを作成し、Bluemix WebアプリケーションからすべてのCloud Foundryログをlogstashに取得できました。BluemixクラウドファウンドリをフィルタリングするlogstashのERRログ
ログレベルに基づいてログをフィルタリングする方法はありますか?私はlogstashの出力でERRをフィルタリングしてSlackに送信しようとしています。私はERRとログレベルが検出されたときに、エラーメッセージがあるようにlogstash.conf
出力にスラックウェブフックを追加しようとしています
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOG5424PRI}%{NONNEGINT:syslog5424_ver} +(?:%{TIMESTAMP_ISO8601:syslog5424_ts}|-) +(?:%{HOSTNAME:syslog5424_host}|-) +(?:%{NOTSPACE:syslog5424_app}|-) +(?:%{NOTSPACE:syslog5424_proc}|-) +(?:%{WORD:syslog5424_msgid}|-) +(?:%{SYSLOG5424SD:syslog5424_sd}|-|) +%{GREEDYDATA:syslog5424_msg}" }
}
:
次のコードは、logstash.conf
ファイルのフィルタ構成でありますスラックチャンネルに投稿されました。この作業を取得する方法はあり
2016-05-25T13:14:51.269-0400[App/0]ERR npm ERR! There is likely additional logging output above.
2016-05-25T13:14:51.269-0400[App/0]ERR npm ERR! npm owner ls pca-uiapi
2016-05-25T13:14:51.274-0400[App/0]ERR npm ERR! /home/vcap/app/npm-debug.log
2016-05-25T13:14:51.274-0400[App/0]ERR npm ERR! Please include the following file with any support request:
2016-05-25T13:14:51.431-0400[API/1]OUT App instance exited with guid cc73db5d- 6e8c-4ff4-b20f-a69d7c2ba9f4 payload: {"cc_partition"=>"default", "droplet"=>"cc73db5d-6e8c-4ff4-b20f-a69d7c2ba9f4", "version"=>"f9fb3e09-f234-43d4-94b1-a337f8ad72ad", "instance"=>"9d7ad0585b824fa196a2a64e78df9eef", "index"=>0, "reason"=>"CRASHED", "exit_status"=>1, "exit_description"=>"app instance exited", "crash_timestamp"=>1464196491}
2016-05-25T13:16:10.948-0400[DEA/50]OUT Starting app instance (index 0) with guid cc73db5d-6e8c-4ff4-b20f-a69d7c2ba9f4
2016-05-25T13:16:36.032-0400[App/0]OUT > [email protected] start /home/vcap/app
2016-05-25T13:16:36.032-0400[App/0]OUT > node server.js
2016-05-25T13:16:36.032-0400[App/0]OUT
2016-05-25T13:16:37.188-0400[App/0]OUT PCA REST Service is listenning on port: 62067
2016-05-25T13:19:02.241-0400[App/0]ERR at Layer.handle_error (/home/vcap/app/node_modules/express/lib/router/layer.js:71:5)
2016-05-25T13:19:02.241-0400[App/0]ERR at /home/vcap/app/node_modules/body-parser/lib/read.js:125:7
2016-05-25T13:19:02.241-0400[App/0]ERR at Object.module.exports.log (/home/vcap/app/utils/Logger.js:35:25)
:クラウドファウンドリーから
output {
if [loglevel] == "ERR" {
http {
http_method => "post"
url => "https://hooks.slack.com/services/<id>"
format => "json"
mapping => {
"channel" => "#logstash-staging"
"username" => "pca_elk"
"text" => "%{message}"
"icon_emoji" => ":warning:"
}
}
}
elasticsearch { }
}
サンプルログ:
スラックHTTPポストと私の出力confファイルには、このコードのようになりますか?各メッセージのログレベルを確認する方法はありますか?私はちょっと固まって、あなたが私を助けることができるかどうか疑問に思っていました。
Bluemix UIでは、チャネルのERRまたはOUTに基づいてログをフィルタリングできます。私はlogstashで同じことをする方法を理解できませんでした。
この問題を調査していただきありがとうございます。
関連するサンプルログ行をいくつか提供する必要があります。 – Val
@Val:上記のログのいくつかを追加しました。どうぞご覧ください。 –