More Related Content
Similar to ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介
Similar to ライブドア様xKLab合同勉強会 システムモニタリングツール「Ganglia」の紹介(20)
ライブドア様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 (データの蓄積/グラフ化を行う
ツール)のフレントエンド
主な利用用途
※ 監視ツールのお話ではありません
- 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 の範囲で何台でも設置
可能
- 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 を利用して取得
- 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 パフォーマンス改善
ルスポンスタイムが改善してることがはっきりわかる
改善前 改善後
- 28. Copyright © KLab Inc. All rights reserved. 28
まとめ
システムモニタリングツールは手軽に対象機器の追加や、モニ
タリング項目の追加ができるのが理想
Ganglia ならば簡単に対象機器の追加が行える
Ganglia ならば、モニタリング項目の追加もちょっとスクリプトを
かくだけで簡単
Ganglia に限らず、いれいれとデータを取っておけば、ボトルネッ
クを見つけることもできるし、トラブル発生時の原因特定もずい
ぶん楽になる
パフォーマンスの改善の結果がきっちり目に見えるとモチベー
ションも上がる