サーバーエンジニアの方にお聞きします。
現在2000万pv/dayのサイトを運営しておりますが
各WEBサーバーのアクセスログの運用について困っております。
現状、毎日日付変更後に、ログ収集サーバーから各WEBサーバーに前日分の
アクセスログを取得し、ログ収集サーバー上で保存・解析をしているのですが、
転送に時間がかかる上(自作シェルでscpしている)、ログ収集後、各WEBサーバー上のログ削除処理などの
後処理がなにぶん面倒です。
このアクセスログ処理をもっと簡素化したいのですが、
皆様はどのように大量ログを処理されているのでしょうか。
ぜひお聞かせください。
環境は以下の通りです。
・Apache2+php
今考えていることは以下の通りです。
・syslogで飛ばす
→ ネットワーク負荷が心配。
→ 取りこぼしが心配。
・mod_log_spreadはどうか
→ ドキュメント少なく、未検証。
※ここで言う中規模・大規模サイトは1000万pv/day~とさせてください。
※「このサイトを参照」的なアンサーではなく「こうやって運用してるよ」的な現場の声を望んでおります。
アクセスログは共有ストレージに保管しています。
アプリケーションサーバとは別のサーバ(テスト機を流用)でその日のアクセス解析などを行った後、アーカイブします。
アクセスログは共有ストレージに保管しています。
アプリケーションサーバとは別のサーバ(テスト機を流用)でその日のアクセス解析などを行った後、アーカイブします。
ありがとうございます。
アプリケーションサーバーから共有ストレージをマウント(NFSマウントでしょうか?)して、
リアルタイムにログを書き出しているということでしょうか?
NFSマウントでリアルタイムに書きだす場合、大量アクセス時でも問題なく書き出しに成功しておりますか?
私なら、、、
newsyslogで100KBとか1MBとかにブチブチ切って、
ログサーバーにドンドン転送して、
ログサーバー側でDBにガンガン突っ込んで、
集計・照会ロジックをガリガリ書いて、
Viewerでサクサク見れるように、
しますが、残念ながら、そんなにアクセスの多い
サーバーを管理したことが無いので実現性は自信
が無いです。でも「newsyslogでブチブチ切る」
ところからとっかかれば行けるんじゃないですかね。
newsyslogですか。ありがとうございます。
さっそく調査してみます。
ありがとうございます。
アプリケーションサーバーから共有ストレージをマウント(NFSマウントでしょうか?)して、
リアルタイムにログを書き出しているということでしょうか?
NFSマウントでリアルタイムに書きだす場合、大量アクセス時でも問題なく書き出しに成功しておりますか?