【Hinemos】アプリケーションログをfluentdで転送する

投稿日: / 更新日:

この記事は2年以上前に書かれたものです。情報が古い可能性があります。

今回はfluentdを使用して、アプリケーションログをマネージャへ転送するよう設定してみます。

1. fluentdのインストールと動作確認

fluentdはオープンソースのログ収集基盤ミドルウェアで、ログをJSONストリームとして転送、受信するという大きな特徴があります。またログの入出力や加工は、目的にあったプラグインを使用して行います。プラグインは標準でいくつか用意されているほか、公式サイトのプラグインディレクトリに多数公開されており、簡単に機能を追加することができます。

今回は、Hinemos ver4.0.2のエージェントサーバ上で監視しているアプリケーションログを、fluentdを使用してマネージャサーバへ転送し、マネージャサーバ上で保存するよう設定してみたいと思います。

まず、マネージャ、エージェントの両サーバ上で、fluentdインストール前の環境設定を行います。詳細は、fluendt公式サイトのBefore Installing Fluentdというドキュメントに記載されていますので、これに従って実施します。

次に、fluentdをインストールします。Red Hat Enterprise Linux 6.xの場合、Treasure Data社のサイトで公開されているシェルスクリプトをcurlでダウンロードしてシェルへ渡すだけで、そのままインストールすることができます(とても簡単です)。

インストールが完了したら、とりあえず両サーバとも起動してみます。サービス名はtd-agentです。

1

簡単に動作確認してみます。fluentdのデフォルトの設定では、HTTP(8888)でログメッセージを待ち受けして、受信した内容を自身のログファイル(/var/log/td-agent/td-agent.log)へ出力するようになっています。上記のドキュメントに従って、以下のコマンドを実行します。

早速、ログファイルを確認してみます。

期待どおり、ログが出力されていることが確認できました。

2. Hinemosによる、アプリケーションログの監視設定

ここでは、あらかじめエージェントサーバ上にインストールしたhttpdのエラーログ(/var/log/httpd/error_log)を、Hinemosで監視するよう設定します。便宜上、httpdがシャットダウンしたことを示すログ(caught SIGTERM, shutting down)が出力された場合に、危険のイベントを通知するようにしています。

設定できたら、httpdを再起動して、ログが検知されることを確認します。

期待どおり、エラーログがHinemosで監視されていることが確認できました。

3. fluentdでアプリケーションログを転送する

次は、ログ転送元、転送先両サーバでfluentdの設定変更を行います。
設定内容は次のとおりです。

設定ファイルを編集した後は、両サーバともtd-agentを再起動すれば設定が反映されますが、その前に転送元サーバ(エージェントサーバ)において、td-agentが転送対象のログファイルを読み取ることができるよう、権限を設定しておく必要があります。

これで、準備は完了です。転送元サーバのhttpdを再起動し、Hinemosでログが検知されるとともに、ログが転送先サーバへ転送されるかどうかを確認します。

まず、Hinemosで検知されたことを確認します。

通常どおり、Hinemosで検知されました。次に、転送先サーバへログが転送されたかどうかを確認します。

httpd_error.log.*というファイルが作成されています。これが、受信したログを出力したファイルだと思われます。中身を確認してみます。

フォーマットが多少異なりますが、確かにhttpd再起動時のログのようです。できれば、出力形式をオリジナルと同様にしたいところですが、今回、それを実現するための方法を見つけることができませんでした。どうやら、デフォルトのout_fileでは、そのための設定方法が用意されていないようですfluent-agent-lite、もしくはfile-alternativeプラグインを使用することで、未加工のログのまま転送できるようです。追って検証したいと思います。プラグインはRubyで簡単に記述することができるようです。機会があれば、その方法も検討してみたいと思います。

以上、中途半端な内容になってしまいましたが、fluentdに関する話題を簡単にご紹介しました。

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。