logentriesにfluentdから簡単にデータを送る方法


logentriesにfluentdで集めたログから特定のものを送りたくて、試してみたが意外と苦戦したのでメモしておく

結論

fluent-plugin-out-httpsで、logentriesの[Token TCP]で作ったエンドポイントにPOSTするのが一番簡単

※httpsでPOSTしたかったので、fluent-plugin-out-httpは使わなかった。。

所感

  • logentriesのドキュメントが中々読みづらく苦戦した
  • ネット上にも簡単だから??かほとんど情報はない印象
  • fluent-plugin-out-httpにuse_sslオプションがつくと一番いいなと思った。

設定

1.プラグインを設置
fluent-plugin-out-httpsをcloneしてきて、out_https.rbを/etc/td-agent/plugin/配下に設置

2.こんな感じのconfigを書く

match句の部分は、適宜自分の環境に読み替える

<match *>
  type            http
  use_ssl         true
  include_tag     true
  endpoint_url    https://webhook.logentries.com/noformat/logs/[logentriesの画面が取得出来るtokenをset]
  http_method     post
  serializer      json
  rate_limit_msec 100
</match>

3.td-agentを再起動

4.logentries上で、ログが確認出来るはず

その他にやってみたこと

fluent-plugin-logentries

自分の知識が足りなかったのかもしれないが、軽くコード見たところエンドポイント/認証方法が古かったりしたように見えて自分の環境では使えなかった。。。

ファイルを吐いて、logentriesエージェントでエンドポイントに送る

下記の構成でやろうとも検討したが、fluentdで完結したかったのでやらなかった。只、検証はして問題なくlogentriesにPOST出来る事は確認した。