“ちょっとした異常”も検知今までのネットワーク監視運用では、静的な閾値による監視と通知がメインでした。しかし、最近では機械学習を利用して、閾値を人間が指定することなく、いつもの状態を学習してモデル化し、通常時と異なる振る舞いをしたときに検知することも可能になっています。
図表3のように、閾値を用いた監視では検知できなかったような“ちょっとした異常”も検知できる可能性が出てきます。従来に比べてより早く機器の異常に気がつける可能性があるのです。
機械学習と聞くとハードルが高いと感じる方もいるかもしれません。しかし、最近ではプログラムを書くことなく機械学習ができるツールが出てきているため、比較的容易に使い始めることができます。
図表3 機械学習を用いた異常検知
Telemetryを使うメリットこの自律化ネットワークに、SNMPではなくTelemetryを使うメリットをあらためて挙げてみます。
■機器にかかる負荷の削減
第1回で説明した通り、Telemetryはサブスクリプション方式(購読/配信型)を採用しているため、ネットワーク機器の処理が軽くなります。
SNMPでは、ネットワーク機器がリクエストを受ける毎に辞書形式を調べてレスポンスを返していますが、これに対してTelemetryでは、予め求められた情報をSubscriber(購読者)へ定期的に配信するだけなので、負荷がかかりにくいのです。
また、エンコーディングの面でも、より動作の軽いGPB(Google Protocol Buffers)を使用することができるというメリットがあります。Telemetryデータを小サイズで高速・シンプルに送信することができるため、よりリアルタイムに近い間隔でのデータ取得が必要であり、Subscriberが複数存在する場合でも、負荷や応答時間はそれほど変わらずTelemetry情報の発信(Push)性能を維持することができます。
■運用管理負荷の削減
こちらも第2回で説明した通り、機器のステータスを取得する時のモデルとして、ベンダー独自のモデルに加えて、OpenConfigで策定された共通データモデルが利用可能になります。
特に、OpenConfigモデルの利用によって運用の統一化につながるため、機器ベンダーに依存しない環境が構築できます。ネットワークが大規模になるにつれて管理機器が増えていくため、運用の統一化は特に重要になる点です。
■粒度の細かいデータの取得
Telemetryは、よりリアルタイムに近い間隔でネットワーク機器の情報を取得できるため、現実に近い状態を監視することができます。
例えば、SNMPを使って10分間隔で情報を取得していた場合、前回のデータ取得時から10分間のデータが平滑化されてしまいます(図表4)。10Mbpsという帯域情報が得られても、それが「1分間に10Mbpsの状態が10分間続いていた」のか、それとも「特定の1分間にのみ100Mbpsが発生していた」のかを判断することができません。
図表4 SNMPでデータを取得した場合
これに対して、数秒間隔でのデータ取得にも耐えられるTelemetryであれば、マイクロバーストのような一瞬のトラフィックの急増も追うことができるため、実際のネットワーク状況を把握することが可能になります(図表5)。
図表5 Telemetryでデータを取得した場合
また、取得したデータを使ってビッグデータ解析を行う、例えば機械学習を行うという場面でも、Telemetryで取得できるデータはSNMPよりも適していると言えます。
機械学習を行う際には大量のデータが必要になります。機械学習によってカウンター値の将来予測をしようと考えた場合、粒度の細かい時系列のデータを使った方が、多くの場合、精度が良くなります。
やりたいことによっては、数分間のデータの平均値を見たり、トレンドを把握するために移動平均を取ってならしたデータを使って分析することも考えられますが、粒度の細かいデータを取得していれば、どちらの場合も、そのデータを加工することで意図したデータにすることができます。
見たい指標によって、データの取り扱いは変わりますが、加工元のデータがないと加工もできないため、できるだけ多くのデータを収集しておくことが推奨されます。