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が既にインストールされている

SPONSORED LINK


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

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

関連記事

AMIMOTO AMIのnginx上でvirtual hostを設定してphpサービスをリリースする

概要 みなさんこんにちはcandleです。今回はAMIMOTO AMIのnginx上でバーチャルホストを使う場合の設定をやってみたいと思います。 AMIMOTO AMIは高速でwordpressを作成 …

cakephp2系にphpunitとDebugkitをcomposerを使って最速で導入する

概要 みなさんこんにちはcandleです。今回はcakephp2.4以降でphpunitとdebugkitをcomposerを使って導入してみたいと思います。 cakephpは標準でphpunitを使 …

centos6.5にtd-agentサーバを構築する

English 日本語 概要 みなさん、こんにちはcandleです。 今回はcentos6.5にtd-agentサーバを構築してみたいと思います。 td-agentとは要はfluentdの事だと思いま …

wordpressのカテゴリーを削除する

概要 みなさんこんにちはcandleです。卒論が忙しくて、ブログの更新ができませんでした。まだ、全て終わったわけじゃありませんが、ちょくちょく更新していきます。 今回はwordpressのカテゴリー削 …

apache2.4でvirtualhost毎に環境変数を定義しphpで使用する方法

English 日本語 概要 みなさんこんにちはcandleです。 今回はapache2.4でバーチャルホスト毎に環境変数を定義して、それをphp側で受け取る方法を紹介します。 例えば、wordpre …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ