kakkotetsu

ThousandEyes で NW 装置 monitoring を Free Try

はじめに

やること

ShowNet 2018 で「ネットワーク可視化 SaaS」として使われていた ThousandEyes を試用します(Free Try で)。
見る機能は「SNMP 対応 NW 装置から情報収集してインターネット経由で SaaS 環境に投げ込む probe 的な Enterprise Agents を動かして様子を見る(Devices 機能)」部分に絞ります。ザッと公式ページを見た感じ、本機能はオマケっぽいですが。

こんなんが見えるところまで。

f:id:kakkotetsu:20180617232453p:plain

構成概要・環境情報

以下の通りです。

  • 宅内
    • KVM+GNS3 上で以下を動かす
      • ThousandEyes の Enterprise Agents
        • 物理 NW では NAPT で The Internet に到達可能になっている
        • こいつ自体では The Internet に到達する為のネットワーク設定をするくらいで、ほとんど弄ることはない
        • こいつが SNMP manager になるので、以下の収集対象 NW 装置と疎通可能にしておくこと
      • 収集対象 NW 装置
        • 今回は Arista の vEOS-lab を使っているが、SNMP と LLDP が動けば何でも良い筈
  • SaaS 環境のダッシュボード
    • 設定や参照は全てここでやる
    • The Internet

今回物理装置や KVM+GNS3 部分の構築には触れません。Enterprise AgentsESXi とかベアメタルサーバとか Docker とかでも動くので、そこの動かし方はやりやすいようにやれば良かろうかと。
Cisco IOS XEJuniper NFX 上の専用コンテナとかもあるみたいですが、今回弄ってないです。

参考資料

  • ThousandEyes 公式
    • top
      • Try It Free というボタンがデカデカとあるので、ありがたく使わせて頂く
    • Pricing
      • 今回試用するフリー版で出来ること、課金すると出来ること、が並んでいる
      • Devices 機能観点では、課金することでカスタム MIB を使ってより多くの情報を収集可能になりそう
    • Knowledge Base
      • マニュアル
  • その他紹介記事など

動かす

環境準備

ThousandEye Free Try 登録

まずは ThousandEyes 公式Try It Free を押して、ユーザ登録します。2018/06/17 現在、個人ユーザ + Web メールでも弾かれたりせず。

f:id:kakkotetsu:20180617232412p:plain

メールが来るので、レジスター用のリンクから本登録しておわり。
公式ページ上の Login リンクからダッシュボードに飛べます。

ThousandEye Enterprise Agents 取得 ~ GNS3にインポートして起動 ~ 初期設定

probe として動く Enterprise Agents のイメージは、ダッシュボードで SETTINGS -> Agents -> Enterprise Agents と進めばダウンロードできます。
今回は Virtual Appliance を選択して OVA を頂いてきました。

f:id:kakkotetsu:20180617232607p:plain

ダウンロードした ova ファイルを展開して、qcow2 に変換して KVM+GNS3 が動いている母艦に放り込みます。

$ ll thousandeyes-va-0.126.ova
-rw-r--r-- 1 kotetsu kotetsu 965096448 Jun 16 23:43 thousandeyes-va-0.126.ova

$ tar -xvf thousandeyes-va-0.126.ova
thousandeyes-va-64-16.04.ovf
thousandeyes-va-64-16.04-disk1.vmdk

$ ll thousandeyes-va-*
-rw-r--r-- 1 kotetsu kotetsu 965096448 Jun 16 23:43 thousandeyes-va-0.126.ova
-rw-r--r-- 1 kotetsu kotetsu 965087744 May 10 05:23 thousandeyes-va-64-16.04-disk1.vmdk
-rw-r--r-- 1 kotetsu kotetsu      6261 May 10 05:21 thousandeyes-va-64-16.04.ovf

$ qemu-img convert -f vmdk -O qcow2 thousandeyes-va-64-16.04-disk1.vmdk thousandeyes-va-64-16.04.qcow2

$ file thousandeyes-va-*
thousandeyes-va-0.126.ova:           POSIX tar archive
thousandeyes-va-64-16.04-disk1.vmdk: VMware4 disk image
thousandeyes-va-64-16.04.ovf:        XML 1.0 document, ASCII text, with very long lines
thousandeyes-va-64-16.04.qcow2:      QEMU QCOW Image (v3), 21474836480 bytes

ThousandEyes 公式 KB / How to set up the Virtual Appliance あたりと、ova に入っていた ovf の中身を参考に以下の感じで GNS3 にデプロイ。

f:id:kakkotetsu:20180617232625p:plain

f:id:kakkotetsu:20180617232634p:plain

f:id:kakkotetsu:20180617232642p:plain

以下、生情報。

$ ps -ef | grep [T]housand
root      8862  5214  2 13:32 pts/12   00:10:10 /usr/bin/qemu-system-x86_64 -name ThousandEyes-va-64-16.04-1 -m 2048M -smp cpus=1 -enable-kvm -machine smm=off -boot order=c -drive file=/home/kotetsu/GNS3/projects/thousandeyes/project-files/qemu/2c910cdc-3d96-4de7-b8f5-42541188cd17/hda_disk.qcow2,if=ide,index=0,media=disk -uuid 2c910cdc-3d96-4de7-b8f5-42541188cd17 -serial telnet:127.0.0.1:5007,server,nowait -monitor tcp:127.0.0.1:41113,server,nowait -net none -device e1000,mac=0c:00:da:cd:17:00,netdev=gns3-0 -netdev socket,id=gns3-0,udp=127.0.0.1:10031,localaddr=127.0.0.1:10030 -nographic

ネットワークインターフェースは、The Internet に到達できるように適宜 GNS3Cloud とかを使って繋いでおきます。
あとは、起動してコンソールを見ていると Enterprise Agents の初期 URL (DHCPで得た IP アドレスに http で)と初期アカウント・パスワードが出るので、それに従って WebUI でアクセスします。

f:id:kakkotetsu:20180617232716p:plain

ポチポチして、ログインパスワードや Static IP アドレスや DNS サーバや NTP サーバや Default Gateway 情報や ssh ログイン用の公開鍵を設定します。
試していないですが、ssh で入って様子を見ると Ubuntu 16.04 なので、WebUI で出来ない細かい設定も可能かもです。

f:id:kakkotetsu:20180617232741p:plain

Enterprise Agents がインターネット上の SaaS サービスに情報を送ることができていれば、ダッシュボードにこのエージェントが登場します。

f:id:kakkotetsu:20180617232835p:plain

f:id:kakkotetsu:20180617232849p:plain

SNMP + LLDP が動く NW 機器を GNS3 で動かす

何か適当にどうぞ(クソ雑)。
今回は以下の通り Arista の vEOS-lab を 3 個並べておきました。

Enterprise AgentsSNMP manager として情報を取得にくるので、そこの到達性を確保し、SNMP 設定はしておきます。あとは LLDP を動かしておくとトポロジ情報も出してくれるので、動かしておきます。

f:id:kakkotetsu:20180617232918p:plain

ダッシュボードで色々やる

Devices の登録

Enterprise Agents から情報収集する対象(Devices というらしい)の NW 装置を設定してみます。

まずは Device Credentials として収集対象の SNMP Community 設定を登録して

f:id:kakkotetsu:20180617233027p:plain

Device Settings にて Find New Devices で対象の IP アドレスや先の Device Credentials や、どの Enterprise Agents を manager として使うか、を入力すると

f:id:kakkotetsu:20180617233055p:plain

以下のように登録されます。

f:id:kakkotetsu:20180617233120p:plain

情報収集対象の Interface を選択するときには Monitored Interfaces 設定のチェックボックスをポチポチと。
interval5 minutes から変えられないっぽいですね......。

Views で Device Layer を眺める

これで何となくそれっぽいのが出力されている筈なので、ダラダラと様子を見ていきます。

Topology として LLDP ベースで勝手にそれらしい絵が出来ています(今回は vEOS 側で管理インターフェースである Ma1 の LLDP を無効化してみた)。良いねー。
なお、上の時間軸を弄ることで特定時刻の Topology や Interface Metrics の様子を見ることができます。

f:id:kakkotetsu:20180617233143p:plain

Topology はノードを DD で動かすこともできます。

2 本接続して ECMP させているリンクは、こんな風にもなるし

f:id:kakkotetsu:20180617233159p:plain

ワンクリックでバラして見ることもできます。

f:id:kakkotetsu:20180617233229p:plain

今回、仮想環境だから Et インターフェースの speed 値を取得できていなかったので、まともに動かせたのは Ma1 だけだったのですが、Highlighting で「この時間帯に帯域の XX % 以上使っていたリンクを赤くする」ってのを出来ます。まあ、interval は 5 minutes なんですが......。

Interface Metric の様子...は、まあ単に標準 ifMib 見ているだけですね。無課金なので。

f:id:kakkotetsu:20180617233245p:plain

f:id:kakkotetsu:20180617233258p:plain

通知系設定

Devices にできる設定としては以下があるようです。

  • Devices -> Notification Rules
    • トリガ
      • 対象 Devices への到達性変化 (SNMP Get の失敗とか)
      • 対象 Devices のインターフェースの増減
    • 通知方法
      • メール
      • 各種 Webhooks
      • Slack や Hipchat など
  • Alerts -> Alert Rules
    • トリガ
      • インターフェースの以下が特定の条件・閾値を超えた時
        • Throughput
        • Error
        • Discards
        • Admin Status
        • Operational Status
    • 通知方法は上のと一緒

標準 MIB ベースで SNMP Manager が拾えるトリガなので、このくらいでしょうねー。
以下設定例です。Topology の Highlighting 機能で赤くするやつだと「speed の X%」っていう設定しか出来ないのですが、こちらでは Mbps での設定も出来るようです。

f:id:kakkotetsu:20180617233316p:plain

検知を WebUI で参照した例

f:id:kakkotetsu:20180617233432p:plain

で、View の Device Layer でも Alert は時系列でオレンジ色で出してくれています。

f:id:kakkotetsu:20180617233443p:plain

おしまい

以下ダラダラtp所感です。

  • WebUI は綺麗だしサクサク (この規模だと)
  • 1000台単位で Devices を長期間動かした時の様子を見てみたい
    • Topology が一体どうなってしまうのか
    • インターフェース数はどこまで拾えるのか
    • 中身は rrd 的な動作してるのか・データの持ち方どうなっているのか(SaaS側?)
  • 5 minutes interval 固定だとすると、「メンテナンス時や障害時に設計通りにトラフィックが切り替わったかのリアルタイム/事後確認」用途には使いづらいかも (バースト検知とかは言うまでもなく...)
  • LLDP の自動描画系のは割と聞くけど、良い
    • 静的に描画するものでも描画設定ファイルを自動生成すれば良かろう、だけど面倒くさいことはしたくない
    • Network Weathermap とかで手をかけて人間が分かりやすいものをちゃんと作ってやるか、こういうので手抜きしてそれなりにやるか、ってのは情報量とか用途次第かな...
  • 適用対象によっては 「SaaS 型である」という一点で一発アウトなやつかも
  • 無課金の Devices 機能は「標準 MIB の SNMP で出来ること」が限度なので、こんなもんでしょうなー
    • 多分今回見ていない RIPE Atlas みたいな機能がメインなんだと思う
    • でもオマケにしてはよく出来ていた