こんにちは,おにぎり担当の平尾です。
今まで、ソーシャルWEBアプリ開発、スマホアプリ開発を行ってきました。
今回が初投稿の記事になります。
今日中に記事を書かないと、罰として私の作業ディスプレイが50インチの巨大ディスプレイになってしまうので急ぎで!
記事の題名は
「複数WEBサーバのログを、一か所に集めて見やすくしよう!」
です。
WEBサーバが複数台ある場合、ログ集計・エラー発生状況などの確認時にサーバ分確認する必要があり面倒!!というときありますよね!
今回はApacheを例としてログをDBに入れる ところまでを説明します!
環境
CentOS 6.5
使用ミドルウェア
Apache WEBサーバ
fluentd(td-agent) ログの転送・集約を行うためのツール
mongoDB 「ビッグデータ」を処理可能なパフォーマンスをもつNoSQLの性能と,RDBのもつ豊富な機能をバランスよく取り込んだソフトウェアです(すげぇ)
では早速設定してみましょう
[すでにインストールしてある場合は手順を飛ばしてください]
(以下rootユーザで実行)
Apache のインストールと起動
yum install httpd
/etc/init.d/httpd start
確認
curl http://localhost
デフォルトのページのhtmlが表示さればOK
MongoDB のインストールと起動
yumでインストールするのでURLを追加する。
vi /etc/yum.repos.d/mongodb.repo 以下内容入力 [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1 ここまでね yum install mongodb-org /etc/init.d/mongod start
確認
mongo
mongoDBのコンソールが表示されればOK
fluentd のインストール
yumでインストールするのでURLを追加する。
vi /etc/yum.repos.d/td.repo 以下内容を入力 [treasuredata] name=TreasureData baseurl=http://packages.treasure-data.com/redhat/$basearch gpgcheck=0 ここまでね yum install td-agent vi /etc/td-agent/td-agent.conf 元々ある設定は全部消してOK <source> type tail format apache path /var/log/httpd/access_log tag apache.access </source> <match mongo.apache> type mongo database apache_log collection access host localhost port 27017 flush_interval 10s </match>
td-agent ユーザが見れるように権限を変える
chmod o+r /var/log/httpd
mongoDBに入れれるようにするためのプラグインのインストール
fluent-plugin-mongo
/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-mongo
起動
/etc/init.d/td-agent start
では確認してみよう!
curl http://localhost
mongo >use apache_log >db.access.find(); { "_id" : ObjectId("54d59a6e5031e02605000013"), "host" : "***.***.***.**", "user" : "-", "method" : "GET", "path" : "/", "code" : "403", "size" : "4954", "referer" : "-", "agent" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36" } >db.access.find().count(); 1
おおお!入ってます入ってます
DBに入れることによって抽出条件を簡単に変更できるので、いい感じですね!
mongoDBのIDEは「Robomongo」が個人的に一番よかったです。
本題の複数サーバで実施する場合は
対象のWEBサーバに
fluentd のインストール
mongoDBに入れれるようにするためのプラグインのインストール
/etc/td-agent/td-agent.conf
host を集計サーバに向ければOK!
たったこれだけです。
設定は結構簡単にできる感じですね!
お試しあれ!
今回のおすすめおにぎりは「新潟コシヒカリおにぎり 焼さけハラミ」!