Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

時系列データベース(TSDB)の概要

Paragon Insightsは、さまざまな取り込み方法を通じて、時間的制約のあるデータを大量に収集します。このため、Paragon Insightsは時系列データベース(TSDB)を使用して、さまざまなネットワークデバイスから受信したすべての情報を保存および管理します。このトピックでは、TSDB の概要について説明します。

Paragon Insightsマイクロサービス

Paragon Insightsは、Kubernetesを使用して、複数の物理サーバーまたは仮想サーバー(ノード)間でDockerベースのマイクロサービスをクラスタリングします。Kubernetesクラスタは、1つのプライマリ・ノードと複数のワーカー・ノードで構成されます。Paragon Insightsマルチノードインストールの Healthbot setup 部分で、インストーラーはKubernetesプライマリノードとワーカーノードのIPアドレス(またはホスト名)を要求します。ワーカー・ノードは、必要な数だけセットアップに追加できます。ただし、追加するノードの数は、レプリケーション係数の値より大きくする必要があります。

TSDB の要素

Paragon Insightsは、TSDBの高可用性(HA)を提供するために、以下のTSDB要素をサポートしています。

データベースシャーディング

データベースシャーディングとは、特定のノードにデータを選択的に保存することを指します。この方法では、使用可能なTSDBノード間でデータを分散し、より大きなスケーリングが可能になります。これにより、TSDB インスタンスは、デバイスからの時系列データの一部のみを処理するようになります。

シャーディングを実現するために、Paragon Insightsはデバイスグループ/デバイスペアごとに1つのデータベースを作成し、結果のデータベースを、1つ(または複数)のParagon InsightsノードでホストされているTSDBのシステム決定インスタンスに書き込みます。

たとえば、D1 と D2 の 2 つのデバイスと、G1 と G2 の 2 つのデバイスグループがあるとします。D1 がグループ G1 と G2 に存在し、D2 がグループ G2 にのみ存在する場合、G1:D1、G2:D1、G2:D2 の 3 つのデータベースになります。各データベースは、個別のParagon Insightsノード上の個別のTSDBインスタンスに保存されます( 図1参照)。新しいデバイスがオンボーディングされ、デバイスグループ内に配置されると、Paragon Insightsは、そのデバイスデータを保存するTSDBデータベースインスタンスを選択します。

図 1: 分散 TSDB Distributed system architecture with multiple nodes labeled Node 1, Node 2, and Node n, each containing services, a TSDB, and a message queue. TSDB Load Balancer in Node 1 handles requests across nodes. Green arrows show TSDB communication, gray arrows show services interacting within Node 1.

図1は、3つのParagon Insightsノードを示しています。これらの各ノードには、TSDBインスタンスがあり、他のParagon Insightsサービスが実行されています。

手記:
  • Paragon Insightsノードには、最大1つのTSDBインスタンスが許可されます。したがって、Paragon Insightsノードは、いつでも0個または1個のTSDBインスタンスを持つことができます。

  • Paragon Insightsノードは、TSDB機能の実行専用にすることができます。他のParagon Insights機能は、TSDB関数の実行専用のノードでは実行できません。これにより、他のParagon Insights機能がTSDBインスタンスのリソースを枯渇させるのを防ぎます。

  • 最高のパフォーマンスを提供するために、ノードを TSDB 専用にすることをお勧めします。

  • Paragon InsightsおよびTSDBノードは、Paragon Insights CLIを使用して実行中のシステムに追加できます。

データベース レプリケーション

他のデータベースシステムと同様に、レプリケーションとは、複数のノード上の複数のインスタンスにデータを格納することを指します。Paragon Insightsでは、レプリケーション係数を設定して、必要なデータベースのコピーの数を決定します。

レプリケーション係数が 1 の場合、データのコピーは 1 つしか作成されないため、HA は提供されません。複数のParagon Insightsノードが使用可能で、レプリケーション係数が1に設定されている場合、シャーディングのみが達成されます。レプリケーション係数によって、必要なParagon Insightsノードの最小数が決まります。レプリケーション係数が 3 の場合、データのコピーが 3 つ作成され、少なくとも 3 つの Paragon Insights ノードが必要になり、HA が提供されます。レプリケーション係数が高いほど、HAが強くなり、Paragon Insightsノードに関するリソース要件が高くなります。システムをさらに拡張する場合は、レプリケーション係数の正確な倍数でParagon Insightsノードを追加する必要があります。たとえば、3、6、9 などです。

前述のデバイス/デバイスグループのペアリングに基づいて、Paragon Insightsが20個のデータベースを作成した例を考えてみましょう。問題のParagon Insightsシステムのレプリケーション係数は2で、4つのノードでTSDBが実行されています。これに基づいて、2 つの TSDB レプリケーション グループが作成されます。この例では、 TSDB グループ 1TSDB グループ 2 です。 図 2 では、データベース 1 から 10 のデータが、TSDB グループ 1 の TSDB インスタンス 1 と 2 に書き込まれています。データベース 11 から 20 のデータは、TSDB グループ 2 の TSDB インスタンス 3 および 4 に書き込まれます。TSDB インスタンスの周りのアウトラインは、TSDB レプリケーション グループを表します。レプリケーション グループのサイズは、レプリケーション係数によって決まります。

図2:TSDBデータベース System architecture diagram for a Time Series Database setup with load balancing; features two TSDB groups, databases 1-20, and a message queue.

データベースの読み取りと書き込み

図1に示すように、Paragon Insightsでは分散メッセージングキューを利用できます。特定のTSDBインスタンス内でパフォーマンスの問題やエラーが発生した場合、これにより、データベースへの書き込みを順次実行できるようになり、すべてのデータが適切な時系列で書き込まれるようになります。

すべてのParagon Insightsマイクロサービスでは、標準化されたデータベースクエリー(読み取り)および書き込み機能を使用します。これは、基盤となるデータベースシステムが将来のある時点で変更された場合でも使用できます。これにより、成長と将来の変更に柔軟に対応できます。データベースシステムのその他の読み取りおよび書き込み機能には、次のものがあります。

  • 通常の操作では、データベースの書き込みは TSDB グループ内のすべての TSDB インスタンスに送信されます。

  • データベースの書き込みは、TSDBインスタンスあたり最大1GBまでバッファリングできるため、失敗した書き込みは成功するまで再試行できます。

  • 問題が解決せず、バッファーがいっぱいになると、最も古いデータが削除され、新しいデータが優先されます。

  • バッファリングがアクティブな場合、データベースの書き込みは順番に実行されるため、前の書き込みが成功するまで新しいデータを書き込むことはできません。

  • データベース クエリ (読み取り) は、過去 5 分間に報告された書き込みエラーが最も少ない TSDB インスタンスに送信されます。すべてのインスタンスのパフォーマンスが同等である場合、クエリは必要なグループ内のランダムな TSDB インスタンスに送信されます。