[data analytics showcase] b12: サーバー1,000台を監視するということ by...

47
1000台のサーバをリアルタイム に分析するということ

Upload: insight-technology-inc

Post on 08-Feb-2017

251 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

1000台のサーバをリアルタイムに分析するということ

Page 2: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

利用広がるSNMP監視

Page 3: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

SNMP table: HOST-RESOURCES-MIB::hrStorageTable

hrStorageIndex hrStorageType hrStorageDescr hrStorageAllocationUnits hrStorageSize hrStorageUsed1 HOST-RESOURCES-TYPES::hrStorageFixedDisk C:¥ Label:Acer Serial Number dc55ed43 4096 Bytes 118146047 412409782 HOST-RESOURCES-TYPES::hrStorageCompactDisc D:¥ 0 Bytes 0 03 HOST-RESOURCES-TYPES::hrStorageRemovableDisk F:¥ Label:TOSHIBA Serial Number 893867a8 16384 Bytes 943873 104656

4 HOST-RESOURCES-TYPES::hrStorageVirtualMemory Virtual Memory 65536 Bytes 149636 460185 HOST-RESOURCES-TYPES::hrStorageRam Physical Memory 65536 Bytes 129156 43369

hrStorageIndex 3

hrStorageType HOST-RESOURCES-

TYPES::hrStorageRemovableDisk

hrStorageDescr F:¥ Label:TOSHIBA Serial Number 893867a8

hrStorageAllocationUnits 16384 Bytes

hrStorageSize 943873

hrStorageUsed 104656

ストレージ情報

Page 4: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

SNMP table: HOST-RESOURCES-MIB::hrSWRunTable

hrSWRunIndex hrSWRunName hrSWRunPath hrSWRunParameters hrSWRunStatus1 "init" "/sbin/init" "" runnable2 "kthreadd" "kthreadd" "" runnable3 "migration/0" "migration/0" "" runnable

4 "ksoftirqd/0" "ksoftirqd/0" "" runnable5 "stopper/0" "stopper/0" "" runnable6 "watchdog/0" "watchdog/0" "" runnable

5221 "rsyslogd" "/sbin/rsyslogd" "-i /var/run/syslogd.pid -c 5" runnable5240 "httpd" "/usr/sbin/httpd" "" runnable5252 "crond" "crond" "" runnable

プロセス情報

hrSWRunIndex 5313

hrSWRunName "sendmail"

hrSWRunPath "sendmail: Queue runner@01:00:00 for

/var/spool/cli..."

hrSWRunParameters ""

hrSWRunStatus runnable

Page 5: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

秒間 10,000 を超えるデータ量って?

Page 6: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
Page 7: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
Page 8: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

秒間 10,000 を超える監視項目

Page 9: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

データをストリームで扱い分析する

Page 10: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

1日100件の警告では無意味

Page 11: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

1億件/日からどうやって100件を出すか

Page 12: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
Page 13: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
Page 14: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

正規分布されたデータを自動判別・異常検知

Page 15: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

<fixme>

Page 16: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
Page 17: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

異常検知と変化検知 (機械学習プロフェッショナルシリーズ)

より

Page 18: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
Page 19: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

StarBED 環境 insert 状況

insert query update delete getmore command flushes vsize res qr|qw ar|aw netIn netOut conn time

3937 *0 *0 *0 0 2|0 0 32.3G 12.1G 0|0 0|3 836k 24k 16 21:55:34

5288 *0 *0 *0 0 2|0 0 32.3G 12.0G 0|0 0|4 1m 25k 16 21:55:35

5306 *0 *0 *0 0 3|0 0 32.3G 12.1G 0|0 0|5 1m 25k 16 21:55:36

4144 *0 *0 *0 0 2|0 0 32.3G 12.1G 0|0 0|3 876k 25k 16 21:55:37

4109 *0 *0 *0 0 3|0 0 32.3G 12.0G 0|0 0|3 881k 25k 16 21:55:38

2989 *0 *0 *0 0 2|0 0 32.3G 12.3G 0|0 0|4 631k 24k 16 21:55:39

4330 *0 *0 *0 0 2|0 0 32.3G 11.9G 0|0 0|7 930k 24k 16 21:55:40

5166 *0 *0 *0 0 3|0 0 32.3G 11.8G 0|0 0|4 1m 24k 16 21:55:41

5653 *0 *0 *0 0 2|0 0 32.3G 11.7G 0|0 0|1 1m 24k 16 21:55:42

4755 *0 *0 *0 0 3|0 0 32.3G 11.8G 0|0 0|4 1m 25k 16 21:55:43

insert query update delete getmore command flushes vsize res qr|qw ar|aw netIn netOut conn time

4306 *0 *0 *0 0 3|0 0 32.3G 11.9G 0|0 0|3 961k 25k 16 21:55:44

4124 *0 *0 *0 0 2|0 0 32.3G 11.9G 0|0 0|1 895k 25k 16 21:55:45

2204 *0 *0 *0 0 3|0 0 32.3G 11.8G 0|0 0|4 516k 23k 14 21:55:46

4983 *0 *0 *0 0 2|0 0 32.3G 11.9G 0|0 0|2 1m 23k 14 21:55:47

5356 *0 *0 *0 0 3|0 0 32.3G 12.0G 0|0 0|5 1m 23k 14 21:55:48

6000 *0 *0 *0 0 2|0 0 32.3G 12.0G 0|0 0|6 1m 23k 14 21:55:49

5103 *0 *0 *0 0 2|0 0 32.3G 12.1G 0|0 0|5 1m 23k 14 21:55:50

6356 *0 *0 *0 0 3|0 0 32.3G 12.2G 0|0 0|5 1m 23k 14 21:55:51

5662 *0 *0 *0 0 2|0 0 32.3G 12.2G 0|0 0|3 1m 23k 14 21:55:52

5207 *0 *0 *0 0 3|0 0 32.3G 12.2G 0|0 0|4 1m 23k 14 21:55:53

Page 20: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

同等構成の環境でどれくらいスケールするか確認

Page 21: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

mongoDBはこんな感じでメモリを使ってます

mmap (insert)

mmap (aggregate)

WiredTiger (insert) ※cachesize = 1GB

WiredTiger (aggregate) ※cachesize = 1GB

StrageEngineが選択できるようになって、メモリ管理が自前でできるようになった。

Page 22: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

Current Fan Temperature Voltage

ifHCInBroadca

stPktsifHCInOctets

ifHCInUcastPkt

s

ifHCInMulticast

Pkts

...

IPMI~Hardware_Resource~Current

IPMI~Hardware_Resource~Fan

IPMI~Hardware_Resource~Temperature

IPMI~Hardware_Resource~Voltage

...

SNMP~IF-MIB~ifHCInBroadcastPkts

SNMP~IF-MIB~ifHCInMulticastPkts

SNMP~IF-MIB~ifHCInOctets

SNMP~IF-MIB~ifHCInUcastPkts

...

All

"time" : 1262271600,

"major" : "MAJORNAME1",

"node" : "NODENAME1",

"item" : "ITEMNAME1",

"d" : [

{

"p" : "PARAMETER1",

"v" : 1.1

},

...

{

"p" : "PARAMETER3",

"v" : 3.3

}

]

"time" : 1262271600,

"major" : "MAJORNAME1",

"node" : "NODENAME1",

"item" : "ITEMNAME1",

"d" : [

{

"p" : "PARAMETER1",

"v" : 1.1

},

...

{

"p" : "PARAMETER3",

"v" : 3.3

}

]

比較

詰め込み型

個別型

Page 23: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

検索文:db.daily.aggregate(

{'$match':{'major':'MAJORNAME3'

,'node':{'$in':['NODENAME7','NODENAME17','NODENAME27','NODENAME37','NODENAME47']}

,'time':{'$gte':1262314800,'$lt':1262401200}}} // 2010-01-01 12:00:00 ~ 2010-01-02 12:00:00

,{'$unwind':'$d'}

,{'$match':{'d.p':'PARAMETER2'}}

,{'$sort':{'time':1}}

,{'$group':{'_id':{'p':'$d.p','node':'$node'},'d':{'$push':{'time':'$time','v':'$d.v'}}}}

,{'$sort':{'_id.node':1}}

,{'$group':{'_id':{'p':'$_id.p'},'d':{'$push':{'node':'$_id.node','d':'$d'}}}}

)

データ:● major 種類 = 100、node 種類 = 100、item 種類 = 2

● 1組みのデータについて、time = 2880 ( 1 日 1 分に 1 データとして 2 日分 )

● インデックスは、(詰め込み型)major+node、(個別型) node に昇順で作成

検索:● major = 全体の 1/100、node = 全体の 1/20、timeレンジ = 全体の 1/2、綜合して、全体の 0.02 %

程度のデータを集計。

Page 24: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

詰め込み型 vs 個別型

詰め込み型 個別型 (1/100)

データ件数 57,600,000 576,000

データサイズ 13183 MB 131 MB

インデックスサイズ 2270 MB 15 MB

インデックスなしでのクエリー時間 1m27.123s 0m3.567s

インデックスありでのクエリー時間 (初回) 1m21.860s 0m0.717s

インデックスありでのクエリー時間 (続けて2回目) 0m0.642s 0m0.628s

Page 25: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

分析基盤

Page 26: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

ソートするとデータサイズは割といい

Page 27: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

ソートしないとデータサイズはほんとうにわるい

InfiniDBは、入れ方まちがえるとこうなります!当たり前ですが。。。

Page 28: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

InfiniDB 使い方間違えたらこうなる!

+------------+

| count(*) |

+------------+

| 8083961328 |

+------------+

databaseSizeReport: /home/icm/insight/lib/libz.so.1: no version information available (required by

/usr/lib64/libxml2.so.2)

Schema Table Column Size

snmp raw major (token) 3.125771 GB

snmp raw major (string) 0.949005 GB

snmp raw minor (token) 3.230759 GB

snmp raw minor (string) 0.949005 GB

snmp raw date 3.125763 GB

snmp raw time 1.564735 GB

snmp raw offset 1.564728 GB

snmp raw node (token) 21.396988 GB

snmp raw node (string) 23.714630 GB

snmp raw item (token) 3.350883 GB

snmp raw item (string) 0.952698 GB

snmp raw p1name (token) 3.230728 GB

snmp raw p1name (string) 0.949005 GB

snmp raw p1value 2.500069 GB

snmp raw p2name (token) 3.230736 GB

snmp raw p2name (string) 0.949005 GB

snmp raw p2value 2.591858 GB

snmp raw p3name (token) 3.125763 GB

snmp raw p3name (string) 0.949005 GB

snmp raw p3value 1.564728 GB

Total 83.015862 GB

基本中の基本。ソートしてないとこうなる!

Page 29: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

InfiniDB 使い方間違えたらこうなる!

+------------+

| count(*) |

+------------+

| 1063563513 |

+------------+

databaseSizeReport: /home/icm/insight/lib/libz.so.1: no version information available (required by /usr/lib64/libxml2.so.2)

Schema Table Column Size

snmp raw_201608 node (token) 0.462891 GB

snmp raw_201608 node (string) 0.125488 GB

snmp raw_201608 nodehash 0.462906 GB

snmp raw_201608 majorminor (token) 0.482422 GB

snmp raw_201608 majorminor (string) 0.125488 GB

snmp raw_201608 majorminorhash 0.504456 GB

snmp raw_201608 item (token) 0.465240 GB

snmp raw_201608 item (string) 0.125977 GB

snmp raw_201608 time 0.416954 GB

snmp raw_201608 offset 0.231689 GB

snmp raw_201608 p1name (token) 0.482460 GB

snmp raw_201608 p1name (string) 0.125488 GB

snmp raw_201608 p1value 0.460922 GB

snmp raw_201608 p1alertavg 0.300049 GB

snmp raw_201608 p1alertstddev 0.295891 GB

snmp raw_201608 p1invalid 0.277184 GB

snmp raw_201608 alertidhash (token) 4.030823 GB

snmp raw_201608 alertidhash (string) 11.750488 GB

snmp raw_201608 insdate 0.462891 GB

snmp raw_201608 timehour 0.258949 GB

Total 21.848656 GB

ユニークキーをInfiniDB

に入れようとしたら圧縮されなかった。当然!

Page 30: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

InfiniDBデータ圧縮具合の確認

試験データとして、86,400,000 件 ( テスト環境 SNMP 1 日分ののおおよそ ⅔ 程度 ) を登録。

InfiniDB テーブル

+----------------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------------+--------------+------+-----+---------+-------+

| node | varchar(40) | YES | | NULL | |

| nodehash | char(8) | YES | | NULL | |

| majorminor | varchar(64) | YES | | NULL | |

| majorminorhash | char(8) | YES | | NULL | |

| item | varchar(160) | YES | | NULL | |

| time | int(11) | YES | | NULL | |

| offset | float | YES | | NULL | |

| p1name | varchar(80) | YES | | NULL | |

| p1value | float | YES | | NULL | |

| p1alertavg | float | YES | | NULL | |

| p1alertstddev | float | YES | | NULL | |

| p1invalid | int(11) | YES | | 0 | |

...

| p8name | varchar(80) | YES | | NULL | |

| p8value | float | YES | | NULL | |

| p8alertavg | float | YES | | NULL | |

| p8alertstddev | float | YES | | NULL | |

| p8invalid | int(11) | YES | | 0 | |

| insdate | datetime | YES | | NULL | |

| timehour | int(11) | YES | | NULL | |

+----------------+--------------+------+-----+---------+-------+

データサイズ

サイズ インポート用ファイルと比べての割合

インポート用ファイル(csv形式のplain text)

40.56 GB

InfiniDB データファイル(アロケート分)

6.89 GB 約 1/6

実データ(カラム圧縮された後のサイズ)

4.96 GB 約 1/8

Page 31: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

ソートしないとエクステントマップも無意味ない

Page 32: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

ソートされていない

Page 33: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

mysql> select count(*) from snmp.raw_201609 where nodehash='a94517c0' /*'192.10.12.101'*/ and majorminorhash='88abe3de' /*'IP-

MIB~ipSystemStatsInBcastPkts'*/ and time>=1472655600 and time<1473087600;

+----------+

| count(*) |

+----------+

| 1383 |

+----------+

1 row in set, 1 warning (6.79 sec)

(トレース情報)

mysql> select calgettrace();

+-----------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------+

| calgettrace()

|

+-----------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------+

|

Desc Mode Table TableOID ReferencedColumns PIO LIO PBE Elapsed Rows

BPS PM raw_201609 7460 (majorminorhash,nodehash,time) 857296 530026 1272528 6.645 44032

TAS UM - - - - - - 6.481 1

|

+-----------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------+

検索 (9/1から9/5までのデータ数をカウント)

Page 34: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

ソートされている

Page 35: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

mysql> select count(*) from snmp.raw_201609 where nodehash='a94517c0' /*'192.10.12.101'*/ and majorminorhash='88abe3de' /*'IP-

MIB~ipSystemStatsInBcastPkts'*/ and time>=1474383600 and time<1474815600;

+----------+

| count(*) |

+----------+

| 1437 |

+----------+

1 row in set, 1 warning (3.15 sec)

(トレース情報)

mysql> select calgettrace();

+--------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------

----+

| calgettrace()

|

+--------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------

----+

|

Desc Mode Table TableOID ReferencedColumns PIO LIO PBE Elapsed Rows

BPS PM raw_201609 7460 (majorminorhash,nodehash,time) 388388 247396 1362640 3.115 21504

TAS UM - - - - - - 3.084 1

|

+--------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------

----+

検索 (9/21から9/25までのデータ数をカウント)

ソートしてないときは、6.79

sec

ソートしてないときは、857,296 /

530,026

Page 36: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

エクステントマップのTips

Tips1:

文字列キーでエクステントマップを聞かせたい場合は、長さに注意。char 型で 8 バイト、varchar 型で 7 バイトまでのものしかエクステントマップが利かない! Tips2:

1エクステントのデータ件数が 8,000,000 件 (=行)

ということは、定型的にその数の中で繰り返し発生するようなデータについては、エクステントマップが利かない!

Page 37: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

3,000,000,000 件を10秒強で集計する

mysql> select majorminor,count(*),min(p1value),max(p1value),avg(p1value),stddev(p1value) from

snmp.raw_201609 where nodehash = '934af399' /*192.10.72.105*/ group by 1;

...

229 rows in set (14.77 sec)

Page 38: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

新技術が可能にするセキュリティツールの可能性

Page 39: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

内部漏洩が80%

http://www.secomtrust.net/infomeasure/rouei/column1.html

Page 40: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

ICMカメラの仕組み

Unknown person!

Page 41: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

OpenFaceとは Free and open source face recognition with deep neural networks.

http://cmusatyalab.github.io/openface/

Page 42: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

利用が広がるカメラ

コンビニでのマーケティングカメラ利用例http://itpro.nikkeibp.co.jp/article/Watcher/20140519/557622/

Page 43: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

マルチデータベース環境におけるSQL分析

Page 44: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

プロアクティブ監視が実現するハードウェアダウンタイムの削減

Page 45: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

IPMIの主な監視項目

Page 46: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

SMART監視で見るディスクの故障パターン例

Page 47: [data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎

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