FluentdからSlackboardを通してSlackに通知するプラグインを書いてみた。
SlackboardはSlackのIncoming Webhooksプロキシです。HTTPベースのAPIや同封されているCLIプログラム(slackboard-cli、slackboard-log)を利用してSlackboardとやりとりすることでSlackにメッセージをポストできます。
インストール
RubyGemsからインストールできます。
gem install fluent-plugin-slackboard
使い方
設定ファイルの書き方はこんな感じです。
<match slackboard>
type slackboard
# required
host host
port port
channel random
fetch_key message
# optional
username slackboard
icon_emoji :clipboard:
parse full
sync false
</match>
あとはfluent-cat
等でメッセージを流してやればSlackにポストできます。slackboard_fetch_key
で指定したキーの値に通知したいメッセージを埋め込むのがポイントです。
echo '{"message":"bokko"}' | fluent-cat slackboard
各パラメータの意味は以下の通り。
パラメータ名 | 解説 | 備考 |
---|---|---|
host | slackboardのホスト名 | |
port | slackboardのポート番号 | |
channel | 通知するSlackのチャンネル | |
fetch_key | 通知するメッセージを含むキー名 | |
username | 通知する際のユーザ名 | デフォルト値:slackboard
|
icon_emoji | 通知する際の絵文字アイコン | デフォルト値::clipboard:
|
parse | 通知するメッセージのパース方法を指定 | デフォルト値:full
|
sync | 通知を同期・非同期的に行う |
true だと同期、false だと非同期、デフォルト値:false
|