筆者は個人的に映画『Moneyball』が非常に好きです。台湾では『魔球』というタイトルで公開されました。
物語は、オークランド・アスレチックスのゼネラルマネージャーであるビリー・ビーンが、従来のように高額な資金でスター選手を獲得する手法を改め、データ分析を活用して選手を選抜し、チームを編成していく内容です。チーム全体の戦力によって勝利を重ね、アメリカンリーグ史上の連勝記録を更新しただけでなく、メジャーリーグ全体の中でも「1勝あたりのコスト」が最も低いチームとして伝説を残しました。
現代社会では、データ分析が私たちの生活に与える影響は、すでにさまざまな場面で見られるようになっています。N-Partnerの技術開発もまたデータ分析を中核領域としており、IT運用業務の高度化・効率化に向けたニーズに応用しています。
以下では、IT運用に必要となる主要な3種類のデータである SNMP、Flow、Syslog について、その技術的な仕組みと役割を簡単に説明します。
(1) SNMP (Simple Network management Protocol) ポーリング
SNMPプロトコルの主な用途は、機器のヘルスステータス(CPU、メモリ、温度、ファン、インターフェースのUp/Downなど)を監視することです。
ITサービスを安定して稼働させるためには、ネットワーク上に配置されたすべての機器が正常な状態を維持し、問題なく動作していることが重要です。
SNMPプロトコルを通じて機器のハードウェア稼働情報を収集する目的は、異常が発生している機器を検知し、管理者に速やかな復旧対応を促すことで、ITサービス品質への影響を未然に抑えることにあります。
(2) Flow(NetFlow/sFlow)レコード出力
Flow はネットワークトラフィックに関する情報を記録するための技術です。例えば、あるクライアント IP が送信したパケット数や通信量(Bytes)、あるサーバーが受け付けたセッション数や応答したパケット数・通信量、あるアプリケーション(例:TCP Port 80)が使用した帯域幅などを把握できます。
Flow 情報を分析することで、ネットワーク利用状況やトラフィック量の増減を把握し、利用実態を可視化できます。Flow 情報は通常、ルーターやコアスイッチなどのネットワーク機器、あるいはファイアウォールなどのセキュリティ機器から出力されます。また、トラフィック分析は、近年深刻化する DDoS 攻撃への対策としても有効な技術です。

図1:Flow には IP アドレス、Packet、Byte、Interface、TCP Flag などの重要な情報が含まれます。
(3) Syslog イベント出力
セキュリティ意識の高まりに伴い、多くのネットワーク環境ではセキュリティ対策機器やネットワーク利用制御を導入し、パケットのアプリケーション層(Layer 7)の内容を検査・制御するようになっています。現在では、多くのネットワーク機器やセキュリティ機器、OS が Syslog プロトコルによるログ出力に対応しています。これにより、管理者は P2P 通信、メッセージングアプリの利用状況、アクセス先 Web サイトなどのネットワーク利用状況や、各種セキュリティイベントを分析・把握できます。
Syslog が扱う情報は、OSI参照モデルにおけるレイヤー7(アプリケーション層)の情報が中心となります。一方で、ベンダーごとに Syslog のログフォーマットは異なるため、ログ受信プラットフォームには、それぞれのログを正しく解析し、正規化(Normalization)を行う機能が求められます。これにより、後続の分析処理を効率的に実施できるようになります。

図2:ログの正規化により、効率的な分析・集計を実現
SNMP、Flow、Syslog の3つのネットワーク運用技術を統合することは、次世代のIT運用基盤を構築するうえで不可欠です。それぞれの技術には得意分野と不得意分野がありますが、適切に統合することで、管理者はネットワーク全体の通信状況や利用状況を包括的に把握できるようになります。
Flow は、通信を構成する Source IP、Source Port、Destination IP、Destination Port、Protocol に加え、Packet 数や Byte 数などの通信統計情報を記録します。一方、Syslog は発生したイベントの内容を記録するものであり、イベント名や説明、Source IP、Source Port、Destination IP、Destination Port、Protocol、イベント発生回数(Hit Count)などの情報を含みます。
Flow と Syslog を関連付けるには、5 Tuple を用いた照合方式を利用します。一定時間内(通常は1分以内)において、Source IP、Source Port、Destination IP、Destination Port、Protocol の5つの要素が一致する場合、同一通信として判断できます。さらに、認証ログと連携することで、その IP を利用しているユーザーを特定できます。
最後に、SNMP により各 IP がどのスイッチのどのインターフェースへ接続されているかを把握できます。N-Partner のデータ分析技術は、このような異種データ間の関連性を自動的に分析・可視化し、従来は手作業で行っていた照合作業を大幅に効率化します。

図3:SNMP/Flow/Syslog の相関分析により、利用状況を統合的に可視化
ここまで紹介したように、インテリジェントなデータ分析は IT 運用業務に大きな価値をもたらします。
一方で、このような膨大なデータを効率的に処理することは容易ではありません。さらに、Flow と Syslog はデータ構造が異なるため、データ受信(Receive)、分類(Classify)、タグ付け(Tagging)、保存(Store)、検索(Search)、読込み(Read)、統計(Statistics)、AI 分析(AI Analysis)、アラート(Alert)、レポート(Reporting)、監査(Audit)といった一連の処理を効率よく実現するには、新しいアーキテクチャ設計が不可欠です。
以下では、N-Partner の開発チームが実現した高性能なビッグデータ処理アーキテクチャについて、データ処理フローを用いて説明します。Syslog と Flow のデータは受信後、まずメモリ上で正規化(Normalization)を実施します。その後、5 Tuple に基づく相関分析(Correlation)を行い、タグ付け(Tagging)を実施したうえで、ファイル形式でストレージへ保存され、後続の検索や統計処理に利用されます。

図4:ビッグデータ処理フロー
高速な検索性能を実現するため、N-Partner の開発チームは従来のリレーショナルデータベース(SQL)ではなく、NoSQL を採用したデータストレージアーキテクチャを採用しています。NoSQL には、複数条件による検索でも高速に応答できること、水平スケーリングに対応できること、さらにリレーショナルデータベースのスキーマ構造に制約されないことなどの特長があります。そのため、SQL よりも非構造化ビッグデータの保存・検索・分析基盤として適しています。
保存したデータを迅速かつ正確に検索するためには、適切なタグ付けが重要になります。このデータ処理の流れは、レストランの調理工程に例えることができます。料理を素早く提供するためには、あらかじめ食材を下ごしらえしておき、注文内容に応じて効率よく仕上げます。
以下の対応表をご参照ください。

