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の設定がしやすくなりました。
このようなサービスは本当に助かりますね。ありがたいです。