Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ファイル内容の通知にFluentdを導入した話

 ファイル内容の通知にFluentdを導入した話

2017/04/15 にOpen Source UN-Conference 2017 Kawagoeで発表したときの資料です。正確にはtd-agentを導入した話かも…埼玉に行ったのは友達が通ってる大学の文化祭に行ったとき以来です。

Kutsuhimo Gochou

April 15, 2017
Tweet

More Decks by Kutsuhimo Gochou

Other Decks in Technology

Transcript

  1. $ whois • I’m イン腐ラエンジニア
 - I love CentOS and

    Vim • 生まれも育ちも横浜のはまっ子
 - 仕事の関係で札幌暮らし経験あり • PCとサーバは私が嫁 • 特技はWebサイトのFQDNを覚えること
 しかし日常生活では全く役に立たない • 漫画読む時間がほしい 普段はこんなアイコンで
 過ごしてる
  2. $ あじぇんだ • Fluentdて何? • 導入のきっかけ • インストール • 利用したプラグイン

    • 設定例 • まとめ ぼくはRuby製のOSSだよ ログの収集が得意だよ
  3. $ Fluentdて何? • ログの収集が得意なフレンズ • Ruby製のOSSで活発に開発が進んでいる • プラグイン次第であらゆるアプリと連携できる
 - これでハートを射抜かれました

    (20代女性) • Fluentdは開発版、td-agentは安定版
 インストールするならtd-agent! • 巨大システム(ポケモンGo)でも安定に動作
  4. $ 導入のきっかけ • お客様からの依頼がきっかけ
 お客様:「あるファイルに更新あればメールほしい」 わたし:「だいたいわかりました(まじか)」 • あるセミナーでFluentdを知る • なんやかんやでFluentdの導入をきめる


    決め手は↓のとおり。
 - やりたいと思っていたことだいたいできる!
 - スクリプトつくったらメンテナンス面倒くさい…
 - どういった条件でメールを送信するのか、
 通知失敗したときの処理とか…うわぁ/(^o^)\
  5. $ インストール # rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent
 # vi /etc/yum.repos.d/td.repo
 [treasuredata]


    name=TreasureData
 baseurl=http://packages.treasuredata.com/2/redhat/\$releasever/\ $basearch
 gpgcheck=1
 gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
 enabled=0
 # yum install --enablerepo=treasuredata td-agent
 # vi ~/.bash_profile
 PATH=$PATH:$HOME/bin
 ↓
 PATH=$PATH:$HOME/bin:/opt/td-agent/embedded/bin
 (ログインし直す)
 # which td-agent-gem
 /sbin/td-agent-gem ## パスが通る
  6. $ 利用したプラグイン • 利用したプラグインは↓のとおり
 - fluent-plugin-mail (メール通知)
 - fluent-plugin-grepcounter (ログ内容の絞込+カウント)

    • インストールコマンドは↓のとおり
 # td-agent-gem install fluent-plugin-mail ¥
 fluent-plugin-grepcounter • ほかにもたくさんのプラグインがあります!
  7. $ 設定例 # vi td-agent.conf
 <source>
 type tail
 format none


    path /var/log/td-agent/friendship.log
 tag friendship_log
 pos_file /var/log/td-agent/friendship_pos
 </source> <match friendship_log>
 type grepcounter
 count_interval 60
 input_key message
 regexp "Friendship is Magic"
 threshold 1
 add_tag_prefix get_count
 delimiter \n
 </match> <match get_count.friendship_log>
 type mail
 host localhost
 port ****
 user ***
 password ***
 enable_starttls_auto false
 from ***
 to ***
 subject 'subject 'You are specialty collecting logs!'
 message Total friendship count: %s\n %s
 message_out_keys count,message
 </match>
 
 # systemctl start td-agent