Fluentdの正規表現のチェック
Fluentdの設定する時に、ログをマッチさせる正規表現の設定にいつも悩みます。
そんな時にこのサイトが非常に役に立ちます。
http://fluentular.herokuapp.com/
使い方はマジ簡単で、
Regular Expressionに正規表現、Test Stringにログのサンプルを入力し
「Parse」をクリックすると、問題なければMatch Groupsに結果が表示されます。
Formatに表示されているものをFluentdのfluent.confにコピーすれば一丁上がりです。
いろいろとテストしてみました。
■テストケース1
#Regular Expression
^(?<time>[^ ]* [^ ]* [^ ]*) (?<hostname>[^ ]*) (?<user>[^ ]*)\: "(?<ip>[^\"]*)" "(?<BUST>[^\"]*)" "(?<WASTE>[^\"]*)" "(?<HIP>[^\"]*)" (?<message>.*)$
#Test String
Feb 8 18:58:32 localhost root: "202.11.12.32" "90" "53" "63" "iijan iijan"
これだと駄目でした。
最初の”Feb 8 18:58:32″が(?
■テストケース2
#Regular Expression
^(?<time>[^ ]* *[^ ]* [^ ]*) (?<hostname>[^ ]*) (?<user>[^ ]*)\: "(?<ip>[^\"]*)" "(?<BUST>[^\"]*)" "(?<WASTE>[^\"]*)" "(?<HIP>[^\"]*)" (?<message>.*)$
#Test String
Feb 8 18:58:32 localhost root: "202.11.12.32" "90" "53" "63" "genkai toppa!"
(?
■テストケース3
#Regular Expression
^(?<time>[^ ]* [ ][\d+]* [\d+:\d+:\d+]*|[^ ]* [\d+]* [\d+:\d+:\d+]*) (?<hostname>[^ ]*) (?<user>[^ ]*)\: "(?<ip>[^\"]*)" "(?<BUST>[^\"]*)" "(?<WASTE>[^\"]*)" "(?<HIP>[^\"]*)" (?<message>.*)$
#Test String
Feb 8 18:58:32 localhost root: "202.11.12.32" "90" "53" "63" "omaera jagaimo!!"
これが一番いいかもしれません。
ということで、Fluentdの設定がしやすくなりました。
このようなサービスは本当に助かりますね。ありがたいです。
関連する投稿:
- 2014-02-08:Fluentd + ElasticSearch + Kibana3でグラフ化
- 2015-05-01:XtraBackupバックアップ・リストアメモ
- 2014-08-30:PythonでApacheアクセスログをCSVファイルへ変換する方法
- 2017-09-03:influxDBからDataFrameの形にする方法
- 2011-02-13:test