この結果を得るために、基本的に2つのネストされたフィールド、syslog部分とメッセージ部分に解析したいdrupalウォッチドッグsyslogファイルがあります
syslogpart: {
timestamp: "",
host: "",
...
},
messagepart:{
parsedfield1: "",
parsedfield2: "",
...
}
次のようなカスタム パターンを作成してみました。
DRUPALSYSLOG (%{SYSLOGTIMESTAMP:date} %{SYSLOGHOST:logsource} %{WORD:program}: %{URL:domain}\|%{EPOCH:epoch}\|%{WORD:instigator}\|%{IP:ip}\|%{URL:referrer}\|%{URL:request}\|(?<user_id>\d+)\|\|)
そして実行しますmatch => ['message', '%{DRUPALSYSLOG:drupal}'}
しかし、ネストされた応答は得られません。テキストブロックを取得し、drupal: "ALL THE MATCHING FIELDS IN ONE STRING"
すべての一致も個別に取得しますが、drupal の下ではなく、同じレベルでネストされます。