Webサーバ勉強会#5

3,432 views

Published on

Published in: Technology
  • Be the first to comment

Webサーバ勉強会#5

  1. 1. 今回のお題 ■Apache2.4 新機能とかについて ■Varnishについて■Webサーバログ運用について←これやります
  2. 2. Webサーバログ運用について ログ大事ですね! まずログが出ていないと・・・・
  3. 3. 恐いですね!!>< でもなんで こんなに怒るんでしょうか。 kazeburoさんとfujiwaraさん それは、通常運用時、障害対応時、 あらゆる所でログを見て判断します。 ログは何が起きたのかを知っています。ログが無いと障害時の原因究明・対応も出来ないし、 アクセスログを元に今サービスがどんな状況か 正確に把握出来ないですね!
  4. 4. なのでログは大事ですね! (完)
  5. 5. さすがにこれだけだとアレなので、もう少し。で、そんなに大事なログなんですけど、 今までうちはこんな感じでした。
  6. 6. さすがにこれだけだとアレなので、もう少し。で、そんなに大事なログなんですけど、 今までうちはこんな感じでした。
  7. 7. 旧構成(と言っても今もだけど) Webサーバ日次処理によるログ退避 集約サーバ DBサーバ 各Webサーバの生Apacheログをパー ス、追加情報を付与して整形する 各log_data{yyyymm}テーブルを元に 日次、月次での各テー 解析用のテーブルとか分割したテーブ ル作る ブル作成、及び集計処 理を実行 必要な元ネタテーブルが作成完了した DBにINSERTする ら、各集計用スクリプトを実行し、それぞ れのテーブルを更新して行く
  8. 8. この方式の欠点・ログが大量だと全部DBに入れるのに糞重い・ログが大量だと日次処理、月次処理が糞重い・基本処理が日次なので、昨日の状況を見たい時でもDBに格 納されてからバッチ実行を待って、それからデータをCSVで 落としてExcelでグラフ・・・・ヽ(`Д´)ノムキー・じゃあ、なんで他の方式にしないの?
  9. 9. それはね 大人の事情が色々あるんやで。「今までの実績」(笑)とか調整とかね。 ※と言いつつも個人的な技術力不足もあります。
  10. 10. そこに!
  11. 11. Twitterとかでも良く見たなんかログ収集が手軽らしい。ストリーミングで行けるらしい。lived○○rさんとかでも使っているらしい今のログの方式とか変えずに非破壊的に行けるらしい収集時点でログが構造化されるとかオシャレっぽい
  12. 12. で、色々と試してみた結果1ヶ月くらいで「~~触ってみた」blogを2012-03-23 #fluentd fluentd(td-agent)構築時に気をつけるポイントについて2012-03-22 #fluentd fluentdでcsvファイルのログをin_tailで読むconfig2012-03-16 #fluentd fluentd+fluent-plugin-datacounterでログの可視化が便利2012-03-13 #fluentd include httpを使ったけど上手くいかなかったのは、僕のせ2012-03-12 #fluentd include httpを使ったけど、上手くいかなかった。2012-02-29 #fluentd やっつけのfluentd監視用Nagiosプラグインを書いた2012-02-23 #fluentd fluent-plugin-datacounterがリリースされたので試してみた2012-02-06 fluentdの記事まとめメモこんだけ書いていた。
  13. 13. で、fluentdを導入した結果今の構成
  14. 14. ざっくり内部概要
  15. 15. 各サーバ用のConfig配布方法
  16. 16. Configについて2なぜconfigをPSGIで動的生成しているかというと、fluentdでaggregate側に投げる 時に各ホストがミドルウェア名.ミドルウェア内のタグ(付けないかも).サービス名.IPアドレス(ex tag: apache.access.web_A.192.168.0.1というtagを付与したい為。最終的にdatacounter等で集計する際にtagでグループ化する等を想定している。※現段階で使うかどうかは別として。ミドルウェア関連はホスト毎に共通になる想定なのでユニークじゃなくても良いが、IP 等はホスト毎に切り替えが発生し、その為にconfig直書きで作業が発生するのは 馬鹿らしい事とconfigを一元化して管理したい為。なので、PSGIではREMOTE_ADDRESSを元に、とりあえず正規表現で各ホストを 判別し、それをconfigに埋め込んで、リクエストを投げた各ホストに合ったconfigを 返す。
  17. 17. で、fluentd+ fluent-plugin-datacounter+Cacti を使うと、ほぼリアルタイムでWebサーバのレスポンスタイムを可視化したり
  18. 18. 他にWebサーバのレスポンスステータスの状況とか
  19. 19. 更にアプリログでなんのかは説明できないけど、サービス的に意味のある統計情報がリアルタイムで見れる訳 ですよ!ログ読むことによって!今まで日次だったのに!担当者がサボるともっと時間掛かっていたけど!
  20. 20. まとめ ログは大事。サーバの状況も分かれば対応も早い。リソース管理等を考えるとグラフ等で可視化しておくともっと良い。その手段としてfluentdはとても(・∀・)イイ!!fluent-plugin-datacounterについては多分作者が会場にいるので、この後ビールをご馳走すると機能が追加される可能性が!細かい設定とかは質問で聞いて貰えれば。

×