このページの目次
時系列データベース(TSDB)の概要
Paragon Insightsは、さまざまな取り込み方法を通じて、時間に敏感なデータを大量に収集します。このため、Paragon Insightは時系列データベース(TSDB)を使用して、さまざまなネットワークデバイスから受信したすべての情報を保存および管理します。このトピックでは、TSDB の概要について説明します。
Paragon Insightsマイクロサービス
Paragon Insightでは、Kubernetesを使用して、複数の物理サーバーまたは仮想サーバー(ノード)間でDockerベースのマイクロサービスをクラスタリングしています。Kubernetesクラスターは、プライマリノードと複数のワーカーノードで構成されます。 Healthbot setup
Paragon Insightsマルチノードのインストール中に、インストーラはKubernetesプライマリノードとワーカーノードのIPアドレス(またはホスト名)を尋ねます。必要な数のワーカー ノードをセットアップに追加できます。ただし、追加するノードの数は、レプリケーション係数の値より多くなければなりません。
TSDB 要素
Paragon Insightsは、TSDBの高可用性(HA)を提供するために、以下のTSDB要素をサポートしています。
データベースシャーディング
データベースシャーディングとは、特定のノードにデータを選択的に格納することです。この方法では、使用可能な TSDB ノード間でデータを分散し、より大きなスケーリングが可能になります。これにより、TSDB インスタンスはデバイスからの時系列データの一部のみを処理します。
シャーディングを実現するために、Paragon Insightはデバイスグループ/デバイスペアごとに1つのデータベースを作成し、結果のデータベースを、1つ(または複数)のParagon InsightsノードでホストされているTSDBのシステム決定インスタンスに書き込みます。
たとえば、D1 と D2 の 2 つのデバイスと、G1 と G2 の 2 つのデバイス グループがあるとします。D1 がグループ G1 と G2 に存在し、D2 がグループ G2 にのみ存在する場合、G1:D1、G2:D1、G2:D2 の 3 つのデータベースが作成されます。各データベースは、 図1に示すように、個別のParagon Insightsノードにある独自のTSDBインスタンスに格納されます。新しいデバイスがオンボーディングされ、デバイスグループ内に配置されると、Paragon Insightsはそのデバイスデータを保存するTSDBデータベースインスタンスを選択します。
図1は、3つのParagon Insightsノードを示しています。これらの各ノードでは、TSDBインスタンスと他のParagon Insightsサービスが実行されています。
TSDBインスタンスは、特定のParagon Insightsノード上で最大1つまで許可されます。そのため、Paragon Insightsノードは、いつでも0個または1個のTSDBインスタンスを持つことができます。
Paragon Insightsノードは、TSDB機能の実行専用にすることができます。TSDB関数の実行専用のノードでは、他のParagon Insights関数を実行することはできません。これにより、他の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グループ1 と TSDBグループ2です。 図 2 では、データベース 1 から 10 からのデータが、TSDB グループ 1 の TSDB インスタンス 1 および 2 に書き込まれています。データベース 11 から 20 からのデータは、TSDB グループ 2 の TSDB インスタンス 3 および 4 に書き込まれます。TSDB インスタンスの周囲のアウトラインは、TSDB レプリケーショングループを表します。レプリケーショングループのサイズは、レプリケーション係数によって決まります。
データベースの読み取りと書き込み
図1に示すように、Paragon Insightsでは分散型メッセージングキューを利用できます。特定のTSDBインスタンス内でパフォーマンスの問題またはエラーが発生した場合、これにより、データベースへの書き込みを順次実行して、すべてのデータが適切な時間順序で書き込まれるようにすることができます。
すべてのParagon Insightsマイクロサービスは、標準化されたデータベースクエリ(読み取り)および書き込み機能を使用します。これは、基礎となるデータベースシステムが将来のある時点で変更された場合でも使用できます。これにより、成長と将来の変更に柔軟性を持たせることができます。データベースシステムのその他の読込および書込機能には、以下のものがあります。
通常の操作では、データベース書き込みは TSDB グループ内のすべての TSDB インスタンスに送信されます。
データベースの書き込みは、TSDB インスタンスあたり最大 1GB までバッファリングできるため、失敗した書き込みは成功するまで再試行できます。
問題が解決せず、バッファーがいっぱいになると、最も古いデータが削除され、新しいデータが使用されます。
バッファリングがアクティブな場合、データベースの書き込みは順番に実行されるため、前の書き込み試行が成功するまで新しいデータを書き込むことはできません。
データベースクエリ(読み取り)は、過去5分間に最も少ない書き込みエラーを報告したTSDBインスタンスに送信されます。すべてのインスタンスが同じように実行されている場合、クエリは必要なグループ内のランダムな TSDB インスタンスに送信されます。