monitoring intelligence

Post on 14-Apr-2017

2.766 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MonitoringIntelligence

北島直紀MicrosoftJune 27 2016

Microsoft Cloud Network

2010 2015

100K MillionsCompute

Instances

10’s of PBExabytesAzure

Storage

10’s of TbpsDatacenter

Network Pbps

4

問題解決フロー

Chaotic

Manage

DefineMeasure

Continuous

Improvement

新たなデータ収集の必要性

迅速なコラボレーション必要→セルフサービス型の

データ解析、共有プラットフォームが必要

閾値、警報を定義

5

問題解決フロー

Chaotic

Manage

DefineMeasure

Continuous

Improvement

新たなデータ収集の必要性

迅速なコラボレーション必要→セルフサービス型の

データ解析、共有プラットフォームが必要

閾値、警報を定義

ここをもっと何とかしたい。と始めたのが2.5年前

• すぐに新たな時系列データ収集を開始できること(SNMP, CLI, etc.)

データ収集段階

• 最新のライブデータを多角的に分析できるUIを備えること

• 元データに簡単なAPIでアクセスできること

分析段階

• 分析結果やモデルを簡単に共有し、最新データに適用できること

共有段階

• 各ネットワークエンジニアがすぐに直接check-in(または追加変更)できること

全過程を通じて

プラットフォームへの要求

データ収集 蓄積 分析時系列データを扱うためのOSS

Graphite

fluentd

Kafka

Influx DB, OpenTSDB

Druid

Grafana (Kibana)

NorikraStorm

ElasticSearch Kibana

Graphiteで何ができるか 基本機能デモ

誰かが作ったdashboard

を使う

自分のdashboardを作ってみんなと共有

時系列データを収集して蓄積する

API経由でデータを分析する

Use case 1: Router code upgrade dashboard

9

http://gnsgraphite/dashboard#temp-

RFC535884

非公開

Use case 2: Fiber cut時の挙動とその相関

10

http://gnsgraphite/dashboard#temp-

RFC535884

非公開

Use case 3: ISIS table size per region

11

非公開

Use case 4: IGP収束時間

12

非公開

Use case 5: 各ルータの微視的データの相関

13

http://gnsgraphite/dashboard#temp-

RFC535884

非公開

Graphite、Grafanaと各モジュールの関係

Router Router Router

whisper

SNMP, CLI, etc

Data Feeders

User

StatsD/Carbon

(Twisted Python)

Graphite-web

Django on

WSGI

MySQL or sqlite

8125/udp

2003/tcp

80/tcp

Grafana

provides more

rich UI

Code

Graphite[carbon]へのデータの送り方

Perl sample codeuse IO::Socket;

our $CARBON_SERVER = '10.20.1.1';our $CARBON_PORT = 2003;

our $sock = IO::Socket::INET->new(PeerAddr => $CARBON_SERVER,PeerPort => $CARBON_PORT,Proto => 'tcp'

);

my $time = time; my $value = something;

$sock->send("test.metric_name $value $time¥n");16

Graphite[carbon]へのデータの送り方 2

Graphiteからのデータの取得

http://10.20.1.1/render?target=rtrA.isis.table.active_cnt&from=-60min&rawData=true&format=csv

Graphiteからのデータの取得 2

• ifInErrorsカウンタの上位10インターフェースリストwget 'http://10.10.1.1/render?target=highestMax(perSecond(*.intf. *.ifInErrors),10) &from=-15min&rawData=true&format=csv‘

• 便利な関数• perSecond()

• HighestAverage(*, 10)

• HighestCurrent(*, 10)

• sumSeries(*, 10)

• movingAverage(*, ’1hour’)

• timeShift(*, ’30d’)

• mostDeviant(10, *)

どんなデータを送っているか• データソース

• SNMP, CLI, syslog

• データ量• 400K+700Kくらい (e.g. 1,000 router x 100 intf x 5 snmp = 500K)

様々な試み –デモ [Use case 6, 7]• Recent Code Upgrade – New code, new eyeballs, new problems

• Fabric – Understanding an overall health

Use case 8: Optical LevelとifInErrorsの関係

Use case 9: Black Hole検知

Use case 10: Black Hole検知

Use case 11: Black Hole検知

Scripted Dashboard• URL e.g.

• http://<server>/dashboard/script/<script_name>.js?router=<router_name>

• Javascript code on Grafana serverdashboard = { rows : [] };

routerName = ARGS.router;

dashboard.rows.push({

"panels": [

{"targets": [{"target": "prefix." + routerName + ".5minloadavg"}]}

]

});

return dashboard;

学んだこと• Data-driven decision makingの有意性

• コラボレーションの素晴らしさと難しさ• トレーニング、データ収集、分析、APIを通じて

• ダッシュボードのライフサイクル管理• 生成タイミング、手法、寿命

• システム管理コスト

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,

it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related