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

More Related Content

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

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