ライブドア様xklab合同勉強会...

29
Copyright © KLab Inc. All rights reserved. KLab 株式会社 ライブドア様×KLab 合同勉強会 システムモニタリングツール「Ganglia」の紹介 第弐開発部 横川 和哉 ~なんでもデータを取ってグラフ化しよう!~

Upload: kazuya-yokogawa

Post on 24-Jun-2015

7.873 views

Category:

Technology


3 download

TRANSCRIPT

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

Copyright © KLab Inc. All rights reserved.

KLab 株式会社

ライブドア様×KLab合同勉強会

システムモニタリングツール「Ganglia」の紹介

第弐開発部横川 和哉

~なんでもデータを取ってグラフ化しよう!~

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

Copyright © KLab Inc. All rights reserved. 2

自己紹介

目次

Ganglia の特徴

システムモニタリングツールとは

DSAS での利用例

ganglia のおかげで...

まとめ

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

Copyright © KLab Inc. All rights reserved. 3

自己紹介

横川和哉(31)

インフラストラクチャエンジニア

ネットワークに関すること全般が得意

プレグラムに関すること全般が苦手

トラブル(祭り)大好き

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

Copyright © KLab Inc. All rights reserved. 4

システムモニタリングツールとは

負荷試験の参考

トラブル時の原因究明

ボトルネックの発見 などなど

ネットワークトラフィックやサーバ負荷状況などを収集、蓄積し視覚化するツール

世の中の多くは rrdtool (データの蓄積/グラフ化を行うツール)のフレントエンド

主な利用用途

※ 監視ツールのお話ではありません

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

Copyright © KLab Inc. All rights reserved. 5

Ganglia の特徴

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

Copyright © KLab Inc. All rights reserved. 6

Ganglia とは

rrdtool のフレントエンドとしての実装の一つ

主に、カリフォルニア大学のElectrical Engineering and Computer Sciences 部でオープンソースで開発されている

はじめから、数千のノードまで対応できるように設計

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

Copyright © KLab Inc. All rights reserved.

データ収集サーバ

7

Ganglia の仕組み

一般的なシステムモニタリングツール Cacti の構成

WEB/DBサーバなど

snmpd

snmpd

MySQL

(設定情報)

Poller

RRD

SNMP

SNMP

収集サーバが各サーバに対してデータを取りに行く

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

Copyright © KLab Inc. All rights reserved.

データ収集サーバ

8

Ganglia の構成

WEB/DBサーバなど

gmond

gmetad/Poller(設定情報)

RRD

gmond

MulticastChannel

(専用プレトコル)

gmondgmetric

Ganglia の仕組み

etc

各サーバがデータを投げる

対象の port でListen

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

Copyright © KLab Inc. All rights reserved. 9

Ganglia の特徴まとめ

Multicast を利用

サーバの管理情報は自動生成

クライアントからのプッシュ型

snmp は使わずに、専用プレトコルを利用

プレトコルに従っていれば別のプレグラムからも送信が可能

収集サーバは対象 Multicast Channel の範囲で何台でも設置可能

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

Copyright © KLab Inc. All rights reserved. 10

DSAS での利用例

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

Copyright © KLab Inc. All rights reserved. 11

DSAS で Ganglia を使うワケ

Multicast を利用=> DSAS は基本的にぬとつのネットワークなので問題なし

サーバの管理情報は自動生成=> DSAS ではNetwork Boot のイメージに gmond をいれているのでサーバを追加しても設定追加などの手間がかからない

snmp は使わずに、専用プレトコルを利用=> DSAS は スイッチ 以外すべて Linux なので問題なし

プレトコルに従っていれば別のプレグラムからも送付が可能=> デフォルトで用意されているネットワークトラフィックやLoad Average 以外の情報取得が簡単

収集サーバは対象 Multicast Channel の範囲ならば何台でも設置可能=> 冗長化が簡単

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

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 )を指定するだけでデータ送信ができる

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

Copyright © KLab Inc. All rights reserved. 13

DSAS で追加取得しているデータ

ボトルネックになりせうなもの、なってきたもの

継続的にデータを取っておくことでトラブル解決に役に立ちせうなもの

具体例

Disk

Network

Apache

MySQL

Memcached/TokyoTyrant

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

Copyright © KLab Inc. All rights reserved. 14

Disk

/proc/stat から取得

ディスクIOの量

ディスクIOを発生させているプロセスの数

DiskI/O

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

Copyright © KLab Inc. All rights reserved. 15

Disk

Disk のSmart情報(smartctl)から取得

代替セクタ数

HDDの温度

Smart情報

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

Copyright © KLab Inc. All rights reserved. 16

Apache

http://localhost/server-status?auto から取得 各apacheプレセスの状態

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

Copyright © KLab Inc. All rights reserved. 17

Apache

Apache のログを CustomLog ディレクティブで解析プログラムに渡して取得

HTTP Status 毎の秒間リクエスト数

平均レスポンス時間

pv/sec

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

Copyright © KLab Inc. All rights reserved. 18

MySQL

show variables や show global status から取得 クエリ数など

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

Copyright © KLab Inc. All rights reserved. 19

MySQL

port 3306 への Established なコネクションを取得

show global status などでは取りにくい瞬間値を取るため

コネクション数

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

Copyright © KLab Inc. All rights reserved. 20

Memcached/TokyoTyrant

localhost:11211 などに繋ぎ、stats 情報を取得

接続数

レクエスト数

eviction

統計情報

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

Copyright © KLab Inc. All rights reserved. 21

Network

Traffic

IP毎のトラフィック量の測定

GWサーバの iptables を利用して取得

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

Copyright © KLab Inc. All rights reserved. 22

Ganglia のおかげで..

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

Copyright © KLab Inc. All rights reserved. 23

例1 パフォーマンス改善

TokyoTyrant で get miss が異様に多い

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

Copyright © KLab Inc. All rights reserved. 24

例1 パフォーマンス改善

アプリを改善した結果平均ルスポンスタイムも 数ms 改善

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

Copyright © KLab Inc. All rights reserved. 25

例2 パフォーマンス改善

MySQL への不要なクエリ発行をやめた

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

Copyright © KLab Inc. All rights reserved. 26

例2 パフォーマンス改善

ルスポンスタイムが改善してることがはっきりわかる

改善前 改善後

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

Copyright © KLab Inc. All rights reserved. 27

まとめ

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

Copyright © KLab Inc. All rights reserved. 28

まとめ

システムモニタリングツールは手軽に対象機器の追加や、モニタリング項目の追加ができるのが理想

Ganglia ならば簡単に対象機器の追加が行える

Ganglia ならば、モニタリング項目の追加もちょっとスクリプトをかくだけで簡単

Ganglia に限らず、いれいれとデータを取っておけば、ボトルネックを見つけることもできるし、トラブル発生時の原因特定もずいぶん楽になる

パフォーマンスの改善の結果がきっちり目に見えるとモチベーションも上がる

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

Copyright © KLab Inc. All rights reserved. 29

ご清聴ありがとうございました