前回の続き
rbenvのgemを使ってインストールしたfluentdはserviceからの起動スクリプトが無いので、service fluentd startみたいなことをしたければ自分で登録するしかない。
でも1からスクリプトを書くのは面倒なので、td-agentのスクリプトを利用することにした。 まずはtd-agentのインストール、削除
$ sudo aptitude install td-agent
$ sudo aptitude remove td-agent
削除してもserviceで使うスクリプトは残るみたいなので、これを元に起動スクリプトを作る。
td-agentの起動スクリプトは
/etc/init.d/td-agentにある。
td-agentをfluentdに変えて、編集した。編集内容は主に以下の通り
- td-agentをfluentdに変更
- DAEMONをfluentdまでのパスに変更
- USER、GROUPをfluentdをインストールしたユーザー、グループに変更
- DAEMON_ARGSに"--config /path/to/config"を追加
- /var/log/fluentd/fluentd.logを作っておく。ユーザー、グループはfluentdのユーザー、グループにする
必要無くて消して良い部分も結構ある気がするが、とりあえず動く為に最小限の修正にしておく。 最後にserviceに登録するために
$ sudo update-rc.d fluentd defaults
でserviceにfluentdが登録される。ちなみにスクリプトのデバッグは
$ bash -x /etc/init.d/fluentd start
とすればある程度出来るので、変なエラーが出ないかはここでチェックしてしまうと良い。
以上をansibleで動かすようにしてみた。
参考: