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

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

関連記事

centos6.5にdaemon toolsをインストールする

概要 みなさんこんにちはcandleです。今回はdaemon toolsというcent osのソフトウェアを入れてみましょう。 daemon toolsというのは簡単に言えば、サーバの電源をオンにした …

fabricでmysqlコマンドを実行する関数を自作する

概要 皆さんこんにちはcandleです。今回はfabricからリモート先のサーバのmysqlを実行するための環境変数と関数を作成したいと思います。 mysqlは一般にmysqlコマンドをログインしてか …

railsのfluent-logger gemを使ってユーザーのアクセスをfluentdサーバに収集する

概要 みなさんこんにちはcandleです。前回からfluentd関連の記事を続けていますが、今回辺りから実用的な使い方を書いていきたいと思います。 fluentdと言えば、ビックデータで扱うようなデー …

CentOS6.5にcakephp2.5.6をインストールする

概要 みなさんこんにちはcandleです。今回はCentOSのapacheサーバー上にcakephpを導入してみましょう。 前提 CentOSにapacheがインストールされている mysqlがインス …

ubuntuでnginxの起動と最低限のコマンド

概要 今回は、nginxの起動と最低限のコマンドをまとめました。 前提 nginxがインストールされている nginxの起動と停止と再起動 nginxはインストールした当初の設定ではubuntuを起動 …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ