joppot

コピペで絶対動く。説明を妥協しない

サーバ

centosのfluentdをdaemon toolsを使って自動起動する

投稿日:2014年7月24日更新日:

Pocket

feawoifff

概要

みなさんこんにちはcandleです。今回は、fluentdの自動起動を試したいと思います。
centosかつfluentdかつdaemon toolsって誰に需要があるのか分からない記事ですがよろしくお願いします。

恐らく多くの人が最初はwindowsかmacをOSに使っていたと思います。
この2つのOSは素晴らしく、GUIで自動起動の設定がホイホイできるのですが、CUIともなると、色々設定をする必要があります。


前提

fluentdが既に入っている
damontoolが既にインストールされている


daemontフォルダを作る

始めに、ルートディレクトリのvarフォルダにdaemontというフォルダを作ります。
ちなみに、必ずしもdaemontというフォルダにする必要はありません。私が参考にしたサイトはsvと名づけていました。
chownで権限をrootから今ログインしているユーザーに変更します。

sudo mkdir /var/daemont
sudo chown `whoami`. /var/daemont

daemontfolder


fluentdの設定ファイルを作る

fluentdは簡単なコマンドで設定ファイルを作れます。

fluentdを起動した時に初期設定で、fluentdが設定ファイルを参照する場所は/etc/fluent/fluent.confです。特に理由がなければ、そこにfluent.confを作りましょう。

fluentフォルダをetcの中に作ります。

sudo mkdir /etc/fluent/

続いて、管理者をrootと今ログインしているユーザにします。

sudo chown root:ユーザー名 /etc/fluent/

私の場合はユーザーはvagrantなので、下のようになります。
sudo chown root:vagrant /etc/fluent/

権限を変更します。

sudo chmod 775 /etc/fluent/

chmodfluent

fluentdの設定ファイルを作成します。

fluentd --setup /etc/fluent/

hewhgoia

fluentdの設定ファイルが作成されました。

daemon toolsの実行ファイルを作る

daemon toolsの設定をやっていきましょう。daemon toolsの設定方針として、/var/daemontフォルダの中に自動起動させたいサービスのフォルダを作り、そこに自動起動の設定ファイルを作っていく方法を取ります。概念図的には下のようになります。

data

先ほど作成した/var/daemont/フォルダの中にfluentフォルダを作り、そこに移動します。

mkdir /var/daemont/fluent/
cd /var/daemont/fluent/

indaemont

daemon toolが参照するrunファイルを作成します。

touch ./run

エディタでrunファイルを開いて、下の内容を書き込みましょう。エディタはemacsでもviでもvimでもなんでもよいです。
書く内容はつまりはシェルスクリプトですね。

 #!/bin/bash
exec 2>&1
exec /home/vagrant/.rbenv/shims/fluentd -c /etc/fluent/fluent.conf

settingdaemonconf

補足として、一番初めの行のシェルの種類は各自使っているシェルで良いと思います。私は単純にbashを使っているのでbashを宣言しています。
3行目のコマンドですがfluentdコマンドのフルパスを記述しています。
もしも、gemではなくてrvmや自力でfluentdを入れた人はwhich fluentdでfluentdコマンドの絶対パスを調べて、書き換えてください。

保存したら、runファイルの実行権限を変更します。

chmod +x run

0ihgiera

最後に、/var/daemont/fluent/と/service/をリンクでつなげます。

sudo ln -s /var/daemont/fluent/ /service/

これで設定が完了しました。
lnservice


設定がうまくいった確認する

面倒なのですが、サーバを再起動して、ちゃんとfluentdが稼働するか確認しましょう。

再起動したら、下のコマンドを入力します。

ps aux | grep fluent

もしも、下のようになっていればうまくfluentdが起動しています。

startokfluentd

fluentdにデータが送れるか試します。下のコマンドを投げてエラーが出なければ成功です。

echo '{"first":"hello"}' | fluent-cat debug.test

echosetup

できましたね。fluentdが動いています。


まとめ

どうでしょうか、daemontoolsを使えば自動的にサービスが動くので、万が一サーバがダウンしても気に病むようなことはなくなりました。fluentdの具体的な使い方に関してはまた別の記事でやっていきましょう。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ
-,

執筆者:


comment

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

関連記事

let’s encryptのssl証明書をvagrantのubuntuを使用して取得する

概要 みなさんこんにちはcandleです。2014年の後期にmozillaあたりが主導して、無料のssl証明書作ろうという動きがありました。ついに去年の12月にβ版がでたので、早速試してみました。 ち …

fabricでvagrantのデフォルトの秘密鍵を使ってサーバにアクセスする

概要 みなさんこんにちはcandleです。今回はfabricを使ってvagrant上のvmにアクセスする方法を紹介します。様々なサイトを閲覧すると、あまりvagrantのデフォルトの鍵を使用して、fa …

awsのec2上でredmineをnginxで使用する方法

概要 みなさんこんにちはcandleです。今回はredmineをec2上で使用する方法を紹介します。 redmineはrailsで作られたwebアプリケーションです。railsで作られているということ …

vagrantで取得したlet’s encryptのssl証明書をec2のnginxで使用する

概要 みなさんこんにちはcandleです。今回は取得したvagrantのubuntuで取得したlet’s encryptを実際に使用してみます。 もしも、まだ取得してない人は前回の記事を確 …

apacheのmod_rewriteでphpのGETパラメータのurlを書き換える

概要 みなさんこんにちはcandleです。今回はphpでgetでパラメータを受け取る際のurlの書き換えです。 例えば、phpよくあるのがこのようなurlではないでしょうか。 http://local …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ