Logstash: パスから部分文字列を抽出する

Logstash: パスから部分文字列を抽出する

Logstash構成のパスフィールドから部分文字列を抽出しようとしています。

パスフィールドは次のとおりです。

/storage/logs/deployment/servers/hostname.example.com/server.log

フィルタセクションには次のものがあります。

ruby {
     code => "event.set('log_filename', 
     event.get('path').split('/').last)"
}

これは素晴らしい作品です。 「log_filename」という新しいフィールドが作成されました。

しかし、サーバー名(hostname.example.com)にも興味があります。

だから私はこれを試しました:

ruby {
      code => "event.set('log_filename', event.get('path').split('/').[-1]) event.set('server_name', event.get('path').split('/').[-2])"
}

これはまったく機能しません。私のLogstashログにはエラーはありませんが、Logstashデータは表示されません。

ファイル名とその前のフィールドに従います。これはそのファイルが出たホストを表します。

私の文法に問題があるのでしょうか?

ベストアンサー1

おすすめ記事