概要
fluentd-plugin-slack は fluentd に来たログを slack に投げることができます
今回は docker で試してみました
環境
- Ubuntu 18.04
- docker 20.10.7
Dockerfile
- vim Dockerfile
FROM fluent/fluentd
RUN apk add --update --virtual .build-deps sudo build-base ruby-dev \
&& sudo gem install fluent-plugin-slack \
&& sudo gem sources --clear-all \
&& apk del .build-deps \
&& rm -rf /var/cache/apk/* /home/fluent/.gem/ruby/2.5.0/cache/*.gem
イメージ作成
- docker build -t my_fluentd .
fleunt.conf 作成
- vim fluent.conf
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match docker.**>
@type copy
<store>
@type stdout
</store>
<store>
@type slack
webhook_url https://hooks.slack.com/services/xxx/xxx/xxxxxx
channel private
username test
message_keys log
icon_emoji :ghost:
flush_interval 60s
</store>
</match>
message_keys で fluentd に流れてきた JSON ログのキーを指定することでその値を Slack のメッセージとして流すことができます
fluentd コンテナ起動
-
docker run -d -p 24224:24224 -p 24224:24224/udp -v $(pwd):/fluentd/etc -e FLUENTD_CONF=fluent.conf --name my_fluentd my_fluentd
動作確認
-
docker run --rm --log-driver=fluentd --log-opt fluentd-address=192.168.100.1:24224 --log-opt tag="docker.{{.Name}}" alpine /bin/sh -c "date"
今回は flush_interval 60s なので 1 分ごとにまとめて通知されます
特定のログだけ通知するには
grep プラグインと組み合わせます
こちらは次回紹介します
0 件のコメント:
コメントを投稿