Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介

8,962 views

Published on

Published in: Technology
  • Be the first to comment

ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介

  1. 1. Copyright © KLab Inc. All rights reserved. KLab 株式会社 ライブドア様×KLab 合同勉強会 システムモニタリングツール「Ganglia」の紹介 第弐開発部 横川 和哉 ~なんでもデータを取ってグラフ化しよう!~
  2. 2. Copyright © KLab Inc. All rights reserved. 2  自己紹介 目次  Ganglia の特徴  システムモニタリングツールとは  DSAS での利用例  ganglia のおかげで...  まとめ
  3. 3. Copyright © KLab Inc. All rights reserved. 3 自己紹介  横川和哉(31)  インフラストラクチャエンジニア  ネットワークに関すること全般が得意  プレグラムに関すること全般が苦手  トラブル(祭り)大好き
  4. 4. Copyright © KLab Inc. All rights reserved. 4 システムモニタリングツールとは  負荷試験の参考  トラブル時の原因究明  ボトルネックの発見 などなど  ネットワークトラフィックやサーバ負荷状況などを収集、 蓄積し視覚化するツール  世の中の多くは rrdtool (データの蓄積/グラフ化を行う ツール)のフレントエンド  主な利用用途 ※ 監視ツールのお話ではありません
  5. 5. Copyright © KLab Inc. All rights reserved. 5 Ganglia の特徴
  6. 6. Copyright © KLab Inc. All rights reserved. 6 Ganglia とは  rrdtool のフレントエンドとしての実装の一つ  主に、カリフォルニア大学のElectrical Engineering and Computer Sciences 部でオープンソースで開発されている  はじめから、数千のノードまで対応できるように設計
  7. 7. Copyright © KLab Inc. All rights reserved. データ収集サーバ 7 Ganglia の仕組み  一般的なシステムモニタリングツール Cacti の構成 WEB/DBサーバなど snmpd snmpd MySQL (設定情報) Poller RRD SNMP SNMP 収集サーバが各サーバに 対してデータを取りに行く
  8. 8. Copyright © KLab Inc. All rights reserved. データ収集サーバ 8  Ganglia の構成 WEB/DBサーバなど gmond gmetad/Poller (設定情報) RRD gmond Multicast Channel (専用プレ トコル) gmondgmetric Ganglia の仕組み etc 各サーバがデ ータを投げる 対象の port で Listen
  9. 9. Copyright © KLab Inc. All rights reserved. 9 Ganglia の特徴まとめ  Multicast を利用  サーバの管理情報は自動生成  クライアントからのプッシュ型  snmp は使わずに、専用プレトコルを利用  プレトコルに従っていれば別のプレグラムからも送信が可能  収集サーバは対象 Multicast Channel の範囲で何台でも設置 可能
  10. 10. Copyright © KLab Inc. All rights reserved. 10 DSAS での利用例
  11. 11. Copyright © KLab Inc. All rights reserved. 11 DSAS で Ganglia を使うワケ  Multicast を利用 => DSAS は基本的にぬとつのネットワークなので問題なし  サーバの管理情報は自動生成 => DSAS ではNetwork Boot のイメージに gmond をいれているのでサ ーバを追加しても設定追加などの手間がかからない  snmp は使わずに、専用プレトコルを利用 => DSAS は スイッチ 以外すべて Linux なので問題なし  プレトコルに従っていれば別のプレグラムからも送付が可能 => デフォルトで用意されているネットワークトラフィックやLoad Average 以外の情報取得が簡単  収集サーバは対象 Multicast Channel の範囲ならば何台でも設置可能 => 冗長化が簡単
  12. 12. Copyright © KLab Inc. All rights reserved. 12 簡単にデータ送信 gmetric コマンド $ gmetric -–name=‘ftp_user’ ¥ –-value=` netstat -an|grep ':21 ' |wc -l` ¥ --type=int8  単体で、ganglia 用のデータ送信ができるコマンド  送信先アドルスなどは conf ファイルを読み込んでくれるので gmond (デフォルトの収集daemon) を動かしていれば設定がい らない  名前(rrd のファイル名となる) と値、タイプ(string |int8 |uint8 |int16 |uint16|int32|uint32|float|double )を指定するだけでデ ータ送信ができる  例
  13. 13. Copyright © KLab Inc. All rights reserved. 13 DSAS で追加取得しているデータ  ボトルネックになりせうなもの、なってきたもの  継続的にデータを取っておくことでトラブル解決に役に立ちせう なもの  具体例  Disk  Network  Apache  MySQL  Memcached/TokyoTyrant
  14. 14. Copyright © KLab Inc. All rights reserved. 14 Disk  /proc/stat から取得  ディスクIOの量  ディスクIOを発生させているプロセスの数  DiskI/O
  15. 15. Copyright © KLab Inc. All rights reserved. 15 Disk  Disk のSmart情報(smartctl)から取得  代替セクタ数  HDDの温度  Smart情報
  16. 16. Copyright © KLab Inc. All rights reserved. 16 Apache  http://localhost/server-status?auto から取得  各apacheプレセスの状態
  17. 17. Copyright © KLab Inc. All rights reserved. 17 Apache  Apache のログを CustomLog ディレクティブで解析プログラ ムに渡して取得  HTTP Status 毎の秒間リクエスト数  平均レスポンス時間  pv/sec
  18. 18. Copyright © KLab Inc. All rights reserved. 18 MySQL  show variables や show global status から取得  クエリ数など
  19. 19. Copyright © KLab Inc. All rights reserved. 19 MySQL  port 3306 への Established なコネクションを取得  show global status などでは取りにくい瞬間値を取るため  コネクション数
  20. 20. Copyright © KLab Inc. All rights reserved. 20 Memcached/TokyoTyrant  localhost:11211 などに繋ぎ、stats 情報を取得  接続数  レクエスト数  eviction  統計情報
  21. 21. Copyright © KLab Inc. All rights reserved. 21 Network  Traffic  IP毎のトラフィック量の測定  GWサーバの iptables を利用して取得
  22. 22. Copyright © KLab Inc. All rights reserved. 22 Ganglia のおかげで..
  23. 23. Copyright © KLab Inc. All rights reserved. 23 例1 パフォーマンス改善  TokyoTyrant で get miss が異様に多い
  24. 24. Copyright © KLab Inc. All rights reserved. 24 例1 パフォーマンス改善  アプリを改善した結果 平均ルスポンスタイムも 数ms 改善
  25. 25. Copyright © KLab Inc. All rights reserved. 25 例2 パフォーマンス改善  MySQL への不要なクエリ発行をやめた
  26. 26. Copyright © KLab Inc. All rights reserved. 26 例2 パフォーマンス改善  ルスポンスタイムが改善してることがはっきりわかる 改善前 改善後
  27. 27. Copyright © KLab Inc. All rights reserved. 27 まとめ
  28. 28. Copyright © KLab Inc. All rights reserved. 28 まとめ  システムモニタリングツールは手軽に対象機器の追加や、モニ タリング項目の追加ができるのが理想  Ganglia ならば簡単に対象機器の追加が行える  Ganglia ならば、モニタリング項目の追加もちょっとスクリプトを かくだけで簡単  Ganglia に限らず、いれいれとデータを取っておけば、ボトルネッ クを見つけることもできるし、トラブル発生時の原因特定もずい ぶん楽になる  パフォーマンスの改善の結果がきっちり目に見えるとモチベー ションも上がる
  29. 29. Copyright © KLab Inc. All rights reserved. 29 ご清聴 ありがとうございました

×