fluentdのデーモンスクリプトを自分で用意する

作業メモ

td-agent(fluentdのラッパー)がパッケージ管理ソフト(yumとかapt-get)からインストールできれば
全部セットで一番簡単なんですが、利用している他のミドルウェア(OSやRuby)の影響があって
fluentdをgemで入れたりした場合、起動スクリプトとか、デフォルトの設定ファイルとかは
存在しません。

でもデーモンとして起動したい!できるだけ『fluentd 入門』でぐぐるといっぱい出てくる
td-agentのチュートリアルみたいに扱いたい!( # /etc/init.d/td-agent start みたいなコマンドで管理)

ということがあったので、td-agentの起動スクリプトを少しだけ変えたものを書きました。

前提条件

適宜自分用に置き換えてください。

  1. 設定ファイルの配置場所
    • /etc/fluentd/fluent.conf
  2. ログファイルの配置場所
    • /var/log/fluentd/fluentd.log
  3. 起動中のPIDファイルの配置場所
    • /var/fluentd/fluentd.pid
  4. デーモン起動ユーザはroot
  5. fluentdはrbenvで入れたrubyのgemでインストールしたもので、実行ファイルのパスは/opt/rbenv/shims/fluentd
  6. 起動スクリプトはroot:root 755 /etc/init.d以下に配置

最初に

fluentdのオプションで設定ファイルやログファイルを指定しますが、存在しなかった場合に自動で作成
とかはしてくれないので、予め用意しておきます。

デーモンスクリプトを書く。

以下のようになりました。(他の起動スクリプトや、td-agent起動スクリプトにならいました。start,stop,restart,statusに対応)

ポイントとしては以下

  1. chkconfig: – 80 20 を書きましょう(# chkconfig add fluentdするため)
  2. /etc/init.d/functions はインポート(.やsourceで)しましょう(起動,終了関連の便利スクリプト集 daemon, failure, success, statusとか)
  3. stopは処理を見ればわかるけど、fluentd.pid見て、そこに書いてあるプロセスIDをkillしてるだけ

これを/etc/init.d/fluentdとして配置すれば

とかで起動できようになります。
あとはマシン起動時とかの設定をしたければ

とかやればOKです。かんたん

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です