アプリケーションやデータベースにはログがつきものです。プログラムが実行されたときの経過情報をあらかじめ決められた出力先に書き出します。このログは大抵の場合、そのサーバのローカル領域に保存されるため、ログの内容を確認するだけでも大変です。これではログをうまく活用することなんてそうそうできません。
このシリーズでは、弊社取扱い製品であるERESとFluentdというオープンソースミドルウェアを利用して、このようなログを一ヶ所に集約し、チャートやレポートとして、どのように活用していくかを紹介していきます。
図は構成のイメージ図です。次のような処理を行っています。
①アプリケーションサーバからログを収集
②DBサーバへのログの出力
③ログ収集サーバ上でログのフィルタリング
④ERESサーバからDBを参照し、チャートやレポートを作成
今回、ログを収集するために利用しているのは、Fluentdというオープンソースのミドルウェアです。豊富なプラグインを組合せ、データの取り込み、加工そして各種ミドルウェアやAPIコール、ファイルへの出力を実現できます。詳しくは、公式サイトをご覧ください。
そして、収集対象のログには、弊社製品のDBMotoが出力するhistoryログを使用します。DBMotoはDBで行われた変更(insert,update,deleteなど)を検知し、異種DBへほぼリアルタイムに反映させることができるDRや移行、データ連携に最適なツールです。historyログには何時に何件のデータがソースDBからターゲットDBへコピーされたのかなどの情報が記載されています。
それでは、早速Fluentdをインストールしてみましょう。インストールを行うのは、アプリケーションサーバ(Windows)とログ収集サーバ(Linux)の2つです。
ログ収集サーバへのインストール
OSはRHEL 7.2を使用しています。インストールは次のコマンドを実行します。RPMリポジトリにシェルスクリプトが登録され、RPMパッケージがインストールされます。詳細については、こちらをご参照ください。
インストール後、次のコマンドでtd-agentサービスが起動します。
Starting td-agent: [ OK ]
アプリケーションサーバへのインストール
OSはWindows 8です。Windowsはつい最近、正式サポートが行われたようです。事前に次のソフトをインストールする必要があります。詳しくはこちらをご参照ください。
- Ruby 2.2.x (6.4bit)
- DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
- Git for Windows
これらをインストール後、コマンドプロンプトから次のコマンドを実行することでインストールが行われます。
cd fluentd
git checkout windows
gem install bundler
bundle
bundle exec rake build
gem install pkg\fluentd-0.12.9.gem –no-ri –no-rdoc
インストール後、次のコマンドでサービスを起動できますが、
後々楽になので、Windowsサービスとして登録しておきます。
その① ログの収集へつづく
関連するトピックス:
- サーバ・ライセンスと開発キットを同じマシンにインストールする場合【Javaグラフ作成ツールEspressChart】
- ERES + Fluentd かんたんログ活用術 – その② DBへの出力
- EspressChartのインストール方法【Javaチャート・グラフ作成ツールEspressChart】
- 旧バージョンのインストールが失敗する際の対処法【Javaチャート・グラフ作成ツールEspressChart】
- ERES + Fluentd かんたんログ活用術 – その① ログの収集
- ERES + Fluentd かんたんログ活用術 – その④ EspressReport ESによる可視化
- ERES + Fluentd かんたんログ活用術 – その③ フィルタリング
- EspressChart評価版インストール手順
- Espress製品の日本語化適用手順(EspressChart/Reort/Report ES)
- Ver4XからVer5Xへのアップグレード【Javaチャート・グラフ作成ツールEspressChart】
記事ありがとうございます!
Windows版ですが,masterにすでにマージされているので,windowsブランチにいかなくてもそのままビルドしてもらえれば大丈夫です(devkitが入っているのであれば,gem install fluentd –preで入るv0.14.pre1でも大丈夫なはずです).
上記のqiitaの記事の方には,masterを使うよう修正を頼んでおきました.