vivo エンタープライズレベルのネットワークトラフィック分析システムを効率的に構築

著者: Vivo インターネット サーバー チーム - Ming Yujia

ネットワーク規模の急速な発展に伴い、ネットワークの状態が良好であるかどうかは企業の日々の収入に直接関係しており、毎秒の障害が大量のユーザーの損失と経済的損失につながることになります。したがって、ネットワークの問題を迅速に発見し、異常なトラフィックを特定する方法が大企業の優先課題となっており、同時に多くのネットワーク トラフィック分析テクノロジーが登場しています。

I. 概要

ネットワーク規模の急速な発展に伴い、ネットワークの状態が良好であるかどうかは企業の日々の収入に直接関係しており、毎秒の障害が大量のユーザーの損失と経済的損失につながることになります。各企業は独自のネットワーク監視方法を絶えず改善していますが、監視システムを構築する過程では、必然的に次のような困難に直面します。

  1. 膨大なネットワーク トラフィック データ: ネットワーク トラフィックは大規模で複雑であるため、大量のデータを効果的に監視して分析することは困難です。

  2. 交通データの収集・分析は構築コストが高く、正確な交通データを取得するには効率的なデータ収集技術や大容量の記憶装置、多量の開発リソースが必要となり、監視コストが高騰します。

  3. 単一の監視方法とスケーラビリティの欠如: 従来の監視方法では少数の固定データ ポイントしか監視できず、さまざまなネットワーク環境に合わせてカスタマイズしたり拡張したりすることが困難です。

  4. 問題を迅速に特定して解決することが難しい: ネットワーク トラフィック データが大量にあり、頻繁に変更されるため、問題の根本原因を突き止めるには多くの時間と労力がかかることがよくあります。

したがって、ネットワークの問題を迅速に発見し、できるだけ低い監視コストで異常なトラフィックを特定する方法が大企業の優先課題となっており、同時に多くのネットワーク トラフィック分析テクノロジーが登場しています。

sFlow テクノロジーは非常に効率的で柔軟なソリューションです。トラフィック サンプリング技術を通じてデータ パケット内の一部の情報を抽出し、大量のネットワーク トラフィック データの継続的な監視を実現します。同時に、sFlow テクノロジーは柔軟な構成と拡張性も備えており、実際のニーズに応じてカスタマイズでき、さまざまなネットワーク デバイスとプロトコルをサポートします。これらの利点により、sFlow テクノロジーは最新のネットワークの監視と管理で広く使用されています。

2. 共通ネットワークトラフィック収集技術

主流のネットワーク トラフィック収集は、主にフル トラフィック収集とサンプリング トラフィック収集の 2 種類に分類されます。

2.1 フルフロー収集

フルフロー収集には、ポートミラーリングや光分割装置などの方法が含まれます。大量のトラフィックがあるネットワークでポート ミラーリングを使用すると、リンク全体の遅延が増加するだけでなく、スループットが膨大になるとネットワーク デバイスへの負荷も増加します。光分割装置はリンク遅延を削減できますが、購入価格の閾値も高くなります。また、大企業のIDCの大規模化により、フルフローデータの量も急増しており、自己調査でフルフローデータ分析を行う場合、一定のストレージやコンピューティングリソースだけでなく、しかし、ソフトウェア開発サイクルがプロジェクトの迅速な構築に役立たないことも確かです。

2.2 サンプリング流量の収集

トラフィック分析システムがない場合、サンプリング分析を使用する利点が反映され、フルトラフィックと比較して導入コストが低く、データ分析のコストも少額であり、異常なトラフィックの迅速な位置特定と分析に非常に適しています。ネットワーク内のトレンド比率。以下では、主に sFlow と Netflow のサンプリング方式の長所と短所を比較します。

sFlowはより幅広いトラフィック監視を実現しており、ハードウェア要件を満たすIDC社内環境において、サンプリングトラフィック監視にsFlowを使用することで、ネットワーク機器の負荷を効果的に軽減し、突発的なネットワーク異常に対処するためのリアルタイムトラフィック監視手段を提供します。

3. sFlowをベースとしたシステム設計

3.1 基本設計

ハードウェア条件が満たされていれば、sFlowに基づく基本的なシステム設計は非常に簡単で、sFlowエージェント+sFlowコレクタ+sFlowアナライザを使用することでプロセス全体のデータ閉ループを実現できます。

sFlowエージェント:関連するネットワーク機器でsFlow機能を有効にし、サンプリング率などのパラメータを設定し、収集端の対応するアドレスを定式化することにより、ポートは送受信トラフィックを収集できます。エージェント側でより重要なのは、収集するネットワーク デバイスの範囲をどのように決定するかです。目的のないネットワーク デバイスの完全な導入と比較して、境界にコア ネットワーク デバイスを導入することは、最終的にすべての外部トラフィックが必要となるため、より有意義です。境界ネットワークデバイスを通過します。外部トラフィックの異常をより適切に監視する場合、データ ストレージの負担も軽減できます。

sFlowコレクター:エージェント側で収集・送信したsFlowデータグラムを収集・分析します。

sFlow Analyzer : ネットワーク管理者が効果的な観察と分析を行うための、フォーマットされたデータの視覚的な分析と表示。

写真

3.2 オープンソース + 自社開発: 高度なアーキテクチャ

基本的なアーキテクチャ、コンポーネントの選択、カスタマイズ機能の拡張方法を決定した後、オープンソース ソリューションの elastiflow が良い例を提供し、作成者はより多くのカスタマイズ機能に対応するためにオープンソースをベースに拡張しました。

sFlow エージェント: ポート トラフィック サンプリングにユニファイド VIP のレポート形式を使用し (正式なサンプリング比は 2^n である必要があります)、ロード バランシングに VIP の LB 機能を使用できるため、sFlow パケットが固定ポートに均等に送信されます。コレクションエンドのポート。ネットワーク回線ごとに異なるサンプリング率を設定すると、データストレージを削減しながら重要な回線の精度を高めることができます。

写真

sFlow コレクター: データ収集と視覚分析に ELK スイートを使用することは、より成熟した技術ソリューションの 1 つです。したがって、収集側では、logstash を使用してネイティブ データ パケットを収集および分析します。elastiflow の作者は、logstash の独自の udp-sFlow パケット分析コンポーネントをデータ分析に使用していますが、作者は実際のテストで、このソリューションはより優れた構造化データ形式を取得できるものの、データ分析のパフォーマンスが非常に低いことを発見しました。データ量が多い場合、大量のデータ パケット損失が発生し、データの精度が低下します。ただし、sFlowtool は最下層が C 言語ベースで記述されているため、パフォーマンスが優れています。物理マシン (32c64g) 1 台で 10w+tps に達します。sFlow パケットを解析した後のデータ構造は弱いものの、次のような場合にも使用できます。分析モジュールはデータをクリーンアップして構造化します。sFlowtoolで解析したデータの例を以下に示します。logstash 経由のデータは、kafka メッセージ キューに送信されます。

[root@server src]# ./sFlowtool -l
FLOW,10.0.0.254,0,0,00902773db08,001083265e00,0x0800,0,0,10.0.0.1,10.0.0.254,17,0x00,64,35690,161,0x00,143,125,80
FLOW后的字段释义如下
agent_address
inputPort
outputPort
src_MAC
dst_MAC
ethernet_type
in_vlan
out_vlan
src_IP
dst_IP
IP_protocol
ip_tos
ip_ttl
udp_src_port OR tcp_src_port OR icmp_type
udp_dst_port OR tcp_dst_port OR icmp_code
tcp_flags
packet_size
IP_size
sampling_rate

sFlow アナライザー: Kafka からのデータをリアルタイムで使用することにより、データがクリーンアップされて構造化され、サードパーティのメタデータの助けを借りて、ソフトウェアは後続のストレージと分析のために分析されたデータを定義します。

Database+display : ストレージと視覚化に Elasticsearch+Kibana を使用し、logstash の収集パフォーマンスを監視するために mertic Beat も使用します。Kibana は、Bi 型のデータ可視化ソリューションとして、視覚的な分析に使用できるチャートやダッシュボードのほとんどを無料で提供します。

3.3 解析ソフトウェアの定義

元のデータを使用すると、いくつかの IP 5 組などに基づいて基本的なセッション トラフィック分析を実行できました。しかし、トラフィック データが反映できる価値はそれをはるかに超えており、企業内で cmdb などの他のプラットフォームを使用すると、トラフィック データにより大きな価値を提供できます。

ネットワーク デバイスのディメンション: データ内のスイッチ アドレスと受信ポートおよび送信ポートを通じて、収集および設定されたスイッチ ポート インデックスに従ってトラフィックの受信方向と送信方向を判断できます。ネットワーク デバイスの IP に基づいて、チャネル、回線、デバイス名などの他の属性を割り当てることもできます。

IP 次元: ip の 5 つ組はデータを探索できる可能性が高く、属性 ip に基づいてプロジェクト、部門、その他の属性情報を判断し、ドメイン名を逆に関連付けることもできます。これにより、異常なトラフィックを分析・判断する際に、取引先を迅速に特定することができ、運用・保守の効率が大幅に向上します。

3.4 自社開発の圧縮ストレージと可視化

Elasticsearch自体のデータ圧縮効果は理想的ではないため、データを長期間保存すると巨大化してしまいます。これに対応して、OLAP タイプのデータベースである Druid はこの問題をうまく解決しており、データがサンプリングされた後、分析側で厳密な構造処理が行われるため、Druid では良好なデータ圧縮が実現されます。さらに、Druid に組み込まれたデータ事前集計機能も、履歴データの精度を下げ、ストレージの負担を軽減するのに役立ちます。ストレージエンジンを切り替えると、通常の表示にはKibanaを利用できなくなりますが、自社開発のWebサービスフレームワークを利用することで、柔軟な需要シナリオへの対応や、よりカスタマイズされた分析も実現できます。

3.5 Celery 設計に基づく軽量ストリーム処理モデル

トラフィック データはサンプリングされ洗練されていますが、全体のデータ量は依然として膨大です。効率的かつ高速なストリーム処理により、システム全体の遅延が 30 秒以内に減少し、ネットワーク管理者が問題をより迅速に発見できるようになります。従来のストリーム処理ツールの使用に加えて、Celery を使用して、軽量で効率的で拡張しやすいディストリビューションを構築することもできます。ストリーム処理クラスター。

写真

Celery は、リアルタイム処理のための非同期タスク キューに重点を置き、大量のメッセージを処理するシンプルで柔軟かつ信頼性の高い分散システムであり、タスク スケジューリングもサポートしています。セロリのリアルタイム非同期処理特性を踏まえ、ストリーム処理を行うためのセロリビート→ウォッチャー→プロデューサー→コンシューマーという消費リンクを設計します。

Celery Beat : スケジュールされたタスクのトリガーとして、新しいタスクが 1 秒ごとにウォッチャー キューにディスパッチされます。

watcher worker : キューにタスクを取得後、プロデューサーに転送し、設定されたキューの最大値に従ってプロデューサーキューの輻輳制御を行います。

プロデューサー ワーカー: キューにタスクを取得した後、収集されたトラフィック データを Kafka から取得し、バッチ サイズに従ってバッチでコンシューマー キューに送信し、設定された最大値に従ってコンシューマー キューの輻輳制御を実行します。待ち行列。

Consumer Worker : キューにタスクを取得した後、ローカル キャッシュ/共有キャッシュ内のビジネス情報に従って、収集されたデータに対してデータ クリーニング、ビジネス ラベル付け、その他の操作を実行し、別の kakfa に書き込むか、データベースに直接書き込みます。

各ロールとノードは Celery ブローカーを介して通信し、分散クラスター デプロイメントを実現します。コンシューマー ユニットの操作では、イベントレットを使用してコルーチン モードで開始し、クラスターの同時使用量を確保できます。

4. 応用シナリオ

4.1 コンピュータ室のトラフィック分析の寸法

ネットワーク cmdb に基づく IP マッチングを通じて、フロー データがコンピュータ ルームのディメンションに要約され、コンピュータ ルームの全体的な外部インバウンドおよびアウトバウンド トラフィック分析が取得できます。IDC が外部と対話すると、トラフィックの傾向が変化します。全体のトラフィックは、帯域幅占有の程度を判断するための直接的な基準となります。

写真

4.2 ネットワーク回線情報の関連付け

ip+ifindexに基づいたネットワーク機器の論理情報マッピングにより、コアチャネル回線を集約して表示することができ、一部の公衆網回線や専用線の帯域が満杯などの異常時にも、直接かつ正確に障害箇所を特定することができます。ライン分析を観察することによって、最初の時点が発生します。

写真

4.3 IPセッション情報マイニング

sflow はメッセージのヘッダー情報のみをインターセプトし、データ パケットは含まれませんが、ip 5 組自体も優れたネットワーク トラフィック分析値を提供します。

セッション情報を使用すると、異常なトラフィックの IP 属性を正確かつ効果的に特定でき、IP + サービス ポートを通じて、異常なトラフィックを生成した特定のサービスとプロセスを特定して、次のステップの決定を行うこともできます。さらに、ip を企業内の CMDB にリンクして、ip が属するリソースのリソース グループを特定し、さまざまな部門/管理グループによって生成されたトラフィックの割合の分析を取得することもできます。これも役立ちます。異常トラフィック発生時から初回まで対象業務を短時間で把握し、通知管理・制御を行います。

4.4 IP 帰属分析

内部情報を組み合わせるだけでなく、運営者が提供するアトリビューション情報を通じて、IPアクセス元の確認、関連アトリビューション分析、ダッシュボード作成などを行うことができます。

写真

V. まとめ

ネットワークの包括的かつリアルタイムの監視と分析を実現するには、高度で効果的なネットワーク監視プロトコルとテクノロジーを利用して、増大するビジネスの需要に対応する必要があります。sFlow ベースのトラフィック分析は、軽量な構築という点で大きな利点がありますが、異常なトラフィックに直面した場合には、トラフィックの傾向と分散率に基づいて迅速に対応することもできます。ただし、sFlow のサンプリング自体にはメッセージ内のデータ パケットの情報が含まれていないため、SQL インジェクションやデータ セキュリティなどの一部のネットワーク セキュリティ攻撃と防御に対する正確な位置特定とソリューションを提供できません。したがって、将来的には完全なトラフィック分析もトラフィック分析システムに不可欠な要素となり、この 2 つを組み合わせることで、より包括的かつ洗練されたトラフィック監視を提供し、データセンターのネットワーク セキュリティを守ることができます。

6. 今後の展望

sFlow テクノロジーはネットワーク パフォーマンスの監視と管理の分野で広く使用されていますが、将来的には大規模なネットワーク トラフィック シナリオの影響を受けて、より多くの機能が必要となります。

1. より多くのプロトコルとアプリケーションをサポート: sFlow モニタリングのアイデアはネットワーク トラフィックに適用できるだけでなく、アプリケーション トラフィック、仮想化環境、クラウド プラットフォームなどもモニタリングできます。将来的には、sFlow テクノロジーは、新しいネットワーク環境によりよく適応するために、より多くのプロトコルとアプリケーションをサポートする必要があります。

2. 適応型トラフィック収集技術: sFlow テクノロジーのトラフィック収集技術は一定期間ですが、ネットワーク トラフィックが変化するため、一定期間の収集はネットワークのリアルタイムの状態を正確に反映しない可能性があります。将来的には、sFlow 監視テクノロジーは、実際のネットワーク トラフィックの変化に応じて収集サイクルを自動的に調整できる適応型トラフィック収集テクノロジーをサポートする必要があります。

3. 便利な管理機能: 現在の sFlow の設定はネットワーク管理者によるスイッチの設定に依存しており、ワンクリック配信、自動検出、サンプリング比の素早い調整などの機能は実現できません。ディストリビューションには、ホット ロード構成変更用の sFlow 管理プラットフォーム コマンドが必要です。

おすすめ

転載: blog.csdn.net/vivo_tech/article/details/132097894