MENU

SevOneで実現するNetwork Observabilityの第一歩 ~複数の基盤上に分散するネットワーク機能・サービスを統合監視する

Text=八島 保 日本アイ・ビー・エム システムズ・エンジニアリング

マイクロサービス・アーキテクチャで構築されたシステムは、複数の基盤上に分散している機能・サービスをネットワーク経由で接続・連携させているため、従来のモノリシック(単一基盤上にシステムが構築されている)なシステムと比較して、システムの品質がネットワークの品質に影響を受けやすい。

そのためネットワーク監視としても、これまでの障害検知・解決だけではなく、ネットワーク品質の維持・管理を担っていく必要がある。

ネットワーク品質を維持・管理する方法として、ネットワークの可観測性(Network Observability)を意識した監視のアプローチを考えていく。Network Observability とは、各ネットワーク機器や監視製品から出力されるテレメトリ情報(イベントログ、CPU・メモリ等の使用率、トレース情報など)を収集・分析することでネットワークの状態を観測する手法である。

Network Observabilityを意識した監視では、主に下記のような機能を監視システム上で実施できることが求められる。

・各ネットワーク機器のテレメトリ情報を集約する機能
・集約したテレメトリ情報を分析し、システムに関わるネットワークの全体像を可視化する機能
・集約したテレメトリ情報から、ネットワークの潜在的な障害の要因や、システムのサービスレベル低下に影響を与える要因を分析する機能

図表1にNetwork Observabilityを意識した監視のイメージを示す。

図表1 Network Observabilityの概要

ただし、これらの機能を現行の監視システムに一気に導入するのは容易ではない。本稿では、Network Observabilityを実現するためのソフトウェア製品として、IBMが提供する「SevOne」を利用し、どのようにNetwork Observabilityを実現できるかを紹介していく。

具体的には、下記のソリューションについて紹介する。

・各監視製品のテレメトリ情報を1つの監視製品に集約
・アプリケーション単位での通信状況の可視化
・ネットワークの正常状態を機械学習し、そのデータを元にした異常検知

各監視製品のテレメトリ情報を
1つの監視製品に集約 

マイクロサービス・アーキテクチャでは、複数の基盤上に分散して機能・サービスを構築し、監視製品が乱立するケースが多い。また、ネットワークに関してもさまざまな通信要件を満たすソリューション製品が登場しており、それぞれが独自のコントローラ経由で監視・運用するケースが多い。

以上のような要因で管理ツールが増えていくと、情報が監視製品ごとに分散し、システム全体の状況の把握が困難になっていく。これにより、通常業務の運用者への負担が増大するだけでなく、障害発生時やサービス品質低下時におけるRoot Causeの特定までの時間が増え、障害の影響度が大きくなるという課題が生まれる。

この問題の解決方法として、ネットワークに関する情報を1つの監視製品に連携し、集約化する。これにより各ソリューションから得られるメリットはそのまま享受しながら、システム全体を可視化できる。

SevOneでは、SevOne上にコレクターと呼ばれるコンポーネントを導入することで、無線LANやSoftware Defined Network (SDN)、SD-WANに関する管理コンポーネントの情報を SevOne上に連携することが可能である。

参考例として、無線LANコントローラの画面を図表2、無線LANコントローラの情報を連携したSevOneの画面を図表3に示す。図表2の無線LANコントローラの情報が、図表3のSevOne画面に連携されていることがわかる。

図表2 無線LANコントローラのGUI画面
図表3 無線LANコントローラの情報が共有されたSevOne画面

また、SevOneではクラウド上の監視製品と連携し、監視情報をSevOne上に集約することも可能である。

図表4は、AWS CloudWatchから収集した情報をSevOne上で表示している。

図表4 AWS CloudWatch上の監視情報を連携させたSevOne画面

このような連携機能により、クラウド環境に構築されたシステムでも、SevOne上でシステム全体の監視情報を集約することが可能となる。

アプリケーション単位での通信状況の可視化

機能・サービス間を繋ぐネットワークの品質によってシステムの品質が左右されるが、現行のネットワーク監視では、一般的には特定ポイントでの通信の受信/送信状況しか監視しておらず、通信の種別ごとに通信状況を監視することまでは実施できていないことが多い。

ネットワークの品質を管理するには、ネットワークの通信状況に関する情報をより細かい粒度で、かつリアルタイムに近いレベルで監視する必要がある。

そのような監視を実施する第一歩として、ネットワーク機器に対してxflowを用いたフロー情報の監視を考えていく。フロー情報とは、ネットワーク装置を通過する、共通の属性(送信元/宛先IPアドレスやポート番号など)をもった一方通行の連続したパケットのことを指し、フロー情報を使用してネットワークのトラフィックを監視・分析する技術を総称してxflowと呼ぶ。

またxflowを用いたフロー情報監視の次のステップとして、ネットワークベンダーが提供するアプリケーション識別機能を用いて、送信元/宛先ごとのフロー情報だけでなく、アプリケーション単位での通信状況の監視することも合わせて検討していきたい。

SevOneでは、ネットワーク機器で取得したフロー情報やアプリケーションごとの通信状況に関する情報を収集し、アプリケーション単位における通信状況をグラフとして可視化することができる。

図表5は、SevOneが取得したフロー情報をSankeyチャート(分類した流量の内訳を幅の太さで表す図)で表示したレポート画面で、End to Endでどの通信がどれだけ帯域を使用しているかを把握できる。

図表5 フロー情報をグラフ化したSevOne画面

図表6 は、特定の通信経路におけるアプリケーションごとの通信状況をバーチャートで表示させた画面で、通信経路内でどのアプリケーションがどの程度通信できているかをリアルタイムに近い状態で監視できる。実際の運用であれば、どの機能・サービスの通信品質が低下しているかを監視することが可能になる。

図表6 アプリケーション単位の通信状況をグラフ化したSevOne画面

ネットワークの正常状態を機械学習し
そのデータを元にした異常検知

現行のネットワーク監視は主に障害検知が目的であるため、基本的に運用担当者は障害発生後に機器が出力するログ情報から障害に関連するログを精査し、障害の原因を解析する。

性能監視では、静的な閾値による監視が一般的で、たとえばCPU使用率やメモリ使用率などのリソース監視の場合、xx%を超過したらアラートを発報するのが基本である。

そのため、想定外の対応が必要なアラートなのか、あるいは一時的なスパイクなど静観できるアラートなのかの判断は、その都度人間が行う必要がある。

これに対してSevOneでは、静的な固定値やパーセンテージによる閾値監視だけでなく、過去のデータに基づいて算出したベースラインを用いて、ベースラインに対する標準偏差や勾配条件に基づくアラートを発生させることが可能である。

これにより、スパイクなど誤検知によるアラートを低減し、本当に対応が必要な異常値のみにフォーカスすることが可能になる。さらにトレンド分析により過去のデータから推移予測も可能であり、潜在的な異常値などの傾向を捉えることも可能である。

図表7はベースライン分析を元にした閾値監視の状況を紹介している。

図表7 ベースライン分析を用いたSevOneの監視イメージ

今後ネットワーク監視の中でネットワーク品質を維持していくためには、障害発生時だけでなく、通常運用時にも潜在的な障害要因となり得るログや、サービス品質低下に影響を与えるログの精査・特定が必要となる。

それらのログ情報を運用担当者が常時監視し、精査するのは困難なので、システム的にサービスレベルを監視する必要がある。SevOneとIBM Watson AIOpsを連携し、AIOpsの機械学習機能とデータサイエンス機能を利用することで、より高度な分析を行うことも可能となる。

またAIOpsだけでなく、サードパーティのサービスと連携することで、SevOneのアラート情報から運用の自動化やChatOps、チケット管理なども実現できる。

 

著者
八島 保氏

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
クラウド・ネットワーク所属
アドバイザリーITスペシャリスト


2018年に日本アイ・ビー・エム システムズ・エンジニアリングに入社。ネットワークスペシャリストとして、主にCisco社の無線製品に関する技術レビューやサポートに従事。近年はネットワーク自動化の検証も担当している。

[i Magazine・IS magazine]

新着