時系列データベースにメトリクスを格納するためのTelegrafとQuestDBの使用


Telegrafは、収集、処理、集約、およびメトリクスを書くためのプラグイン駆動サーバーエージェントです.With more than 200 plugins , それは、実行中のサーバー、アプリケーションデータまたはファイルシステムの変更についてのほぼすべての種類のデータを収集することができます.
telegrafは例外的な量とデータの多様性を収集することができますが、我々はいくつかの時点でこの情報を格納し、可視化する必要があります.我々は時間をかけてメトリックを収集することを考えると、時系列データを格納する便利な方法は、時系列データベースを使用しています.使いましょうQuestDB 摂取のために、そして、このチュートリアルの若干の基本的な可視化を実行してください.

複数のテレグラフクライアントと順序データ


複数のクライアントを使用すると、同時にさまざまなソースからのデータが順番に到着することができます.QuestDBはこの種のデータを削除する欠点を持っていました.QuestDBチームはthe 6.0 release , 意味を挿入する前に自分自身をソートするような任意の回避策を適用する必要はありません.
このチュートリアルでは、複数の仮想マシンを設定すると、telegraf、questdbをインストールし、どのように我々はサーバーのステータス(負荷、CPU、スワップ、メモリの使用量についての着信データを視覚化することができます)を介して時間をかけて設定します.

必要条件


DigitaloceanとQuestDBの市場提供の最近の公開市場デビューを祝って、我々は祝賀に参加するつもりです.したがって、チュートリアルには以下のリソースが必要です.
  • DigialAcealアカウント(無料で100ドルのクレジットを得るためにサインアップすることによって)this link )
  • 基本shell 知識
  • 基礎知識vi/vim/nano または任意の端末ベースのテキストエディタ
  • 十分に話して、右にジャンプして、我々の水滴を作成しましょう!

    ディジタル海洋液滴の設置


    作成するリソースは以下の通りです.
  • 保存し、メトリクスを可視化するための1つのx QuestDB液滴.
  • テレグラフエージェント収集システムメトリクスを実行する2 x液滴
  • QuestDB液滴を作成する


    データベース液滴から始めましょう.DigialOceanは、そのスタッフによってレビューされた、ワンクリックのアプリ、いわゆる、プリインストールされた優れた市場を提供しています.QuestDBは市場で入手可能です.したがって、セットアップは30秒未満です.
  • 移動するmarketplace listing
  • をクリックします
  • あなたの液滴と望ましい資源の基本計画を選択してください
  • あなたに最も近いあなたの選択の領域を選択してください
  • 「認証」セクションで、SSHキーを選択するか、ドロップダウンのアカウントのパスワードを設定します
  • ホスト名を設定するtelegraf-questdb-tutorial
  • 他のすべての設定をデフォルトで残し、ページの一番下にある「液滴を作成」をクリックします

  • 約30秒で、QuestDBは使用可能です.我々がすべてを首尾よくセットアップすることを確認するために、それをクリックしてhttp://<IP ADDRESS>:9000/ どこ<IP ADDRESS> IPアドレスをコピーしました.対話的なコンソールはロードしなければなりません、そして、我々はデータベースに質問し始めることができて、データを挿入することができます!

    Telegrafエージェントを使ってデジタルの滴を作成


    私たちはまだクエリのためにデータベース内の任意のデータを持っていないので、次の手順は、検査のためのQuestDBにいくつかのメトリックを送信することです.ダミーデータを作成するスクリプトは常に開始するのに良いですが、この場合、デモマシンで収集された実際のデータを使用しますので、合成データの代わりに適切なメトリックを再生できます.

    QuestDB exposes a reader for InfluxDB line protocol which allows using QuestDB as a drop-in replacement for InfluxDB and other systems which implement this protocol. – questdb.io


    EndexDBラインプロトコルを使用して、直接QuestDBにTelegrafを介してデータを送信します.次のステップは、いくつかの液滴を作成し、telegrafエージェントを起動し、questdbにそれらを指すことです.次の手順に従って液滴を作成します.
  • 移動するDroplets dashboard
  • ページの右上部で、「Create」をクリックして
  • セクションを選択しますUbuntu ( 20.04 LTS x64 執筆時
  • あなたの液滴と最小のリソースタイプの基本計画を選択してください
  • あなたに最も近いあなたの選択の領域を選択してください
  • 「認証」セクションで、SSHキーを選択するか、ドロップダウンのアカウントのパスワードを設定します
  • 液滴の数を2に設定します
  • ホスト名を設定するtelegraf-agent-1 and telegraf-agent-2
  • 他のすべての設定をデフォルトで残し、ページの一番下にある「液滴を作成」をクリックします
  • 以前の滴の作成と比較して、DigitalAceanは1つの代わりに2つの液滴を作成します.数秒で、液滴はtelegrafエージェントを始める準備ができています.

    QuestDBにメトリクスを送信するためのテレグラフの設定


    この節では、3つの液滴にテレグラファー剤をインストールします.Telegrafをインストールするには、公式のインストール方法に従います.

    QuestDB液滴へのtelegrafのインストール


    まず第一に、ログインtelegraf-questdb-tutorial 液滴ssh root@<IP ADDRESS> どこ<IP ADDRESS> 液滴のIPアドレスです.次に、サーバー上で、次のように実行して、インストール用にtelegrafクライアントを使用します.
    # Download the signing keys from influxdata.com
    curl -s https://repos.influxdata.com/influxdb.key | apt-key add -
    
    # Source release information
    source /etc/lsb-release
    
    # Add influxdata.com APT repository to the APT repository list
    echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | tee /etc/apt/sources.list.d/influxdb.list
    
    # Fetch available repositories and read package lists
    apt-get update
    
    我々は、利用可能なリポジトリのリストにaptリポジトリを追加するために上記のコマンドを実行しています.今、我々は実行することにより、任意のパッケージで行うようにエージェントをインストールすることができますapt-get install -y telegraf .
    エージェントはインストールされますが、まだ構成されません.設定するには、新しい設定ファイルを作成しましょう/etc/telegraf/telegraf.d/questdb.conf 次のコンテンツを使用します.
    # Configuration for Telegraf agent
    [agent]
      ## Default data collection interval for all inputs
      interval = "5s"
    
    # Write results to QuestDB
    [[outputs.socket_writer]]
      # Write metrics to a local QuestDB instance over TCP
      address = "tcp://127.0.0.1:9009"
    
    # Read metrics about CPU usage
    [[inputs.cpu]]
    
    # Read metrics about memory usage
    [[inputs.mem]]
    
    # Read system statistics, like load on the server
    [[inputs.system]]
    
    設定ファイルを保存した後、我々は1つのことを残しているsystemctl restart telegraf . 5秒で、エージェントはQuestDBに報告を開始します.

    デモ液滴にテレグラフをインストールする


    最後に、残りの液滴にtelegrafをインストールします.あなたが予想するように、QuestDB液滴と同じプロセスを実行しなければなりません.両方の液滴にssh.telegraf-agent-1 and telegraf-agent-2 .
    必要な署名キーを追加し、ローカルAPTリポジトリリストを準備します.
    # Download the signing keys from influxdata.com
    curl -s https://repos.influxdata.com/influxdb.key | apt-key add -
    
    # Source release information
    source /etc/lsb-release
    
    # Add influxdata.com APT repository to the APT repository list
    echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | tee /etc/apt/sources.list.d/influxdb.list
    
    # Fetch available repositories and read package lists
    apt-get update
    
    実行してtelegrafをインストールしますapt-get install -y telegraf と設定ファイルを編集/etc/telegraf/telegraf.d/reporter.conf 次のようにします.
    以下に注意してくださいsocket_writer 設定のアドレス<QUESTDB IP ADDRESS> , questdb液滴のIPアドレスです.
    # Configuration for Telegraf agent
    [agent]
      ## Default data collection interval for all inputs
      interval = "5s"
    
    # Write results to QuestDB
    [[outputs.socket_writer]]
      # Write metrics to a local QuestDB instance over TCP
      address = "tcp://<QUESTDB IP ADDRESS>:9009"
    
    # Read metrics about CPU usage
    [[inputs.cpu]]
    
    # Read metrics about memory usage
    [[inputs.mem]]
    
    # Read system statistics, like load on the server
    [[inputs.system]]
    
    テレグラファーエージェントを再起動しますsystemctl restart telegraf QuestDB液滴と同じように;数秒後に、エージェントは我々のデータベースに報告を始めます.

    遠隔グラフメトリクスにおけるSQL質問の実行


    この時点で、いくつかの着信データを可視化するために、すべてのコンポーネントを設定して実行している.移動するhttp://<QUESTDB IP ADDRESS>:9000 ここで<QUESTDB IP ADDRESS> QuestDB液滴のIPアドレスで、SQLエディタで次のSQL文を書きます.
    SELECT * FROM cpu
    
    これは、テレグラフによって送られたCPUメトリックのテーブル内のすべてのデータを返します.マシンあたりの平均CPU使用量のような集約を簡単に作成できます.
    SELECT 
        host,
        avg(usage_system) cpu_average,
        timestamp
    FROM cpu
    
    より複雑なクエリを実行したいなら、3つのテーブル間の結合を行うことができます.
    SELECT 
        cpu.host,
        avg(mem.used_percent) mem_usage_average,
        avg(cpu.usage_system) cpu_average,
        avg(system.load1) load1_average,
        cpu.timestamp as timestamp 
    FROM cpu
    INNER JOIN mem ON mem.host = cpu.host
    INNER JOIN system ON system.host = cpu.host
    SAMPLE BY 5m
    ORDER BY timestamp DESC
    
    このデータを可視化するには、次のSQLを使用してクエリのメモリ使用状況を確認します.
    SELECT 
        host,
        avg(mem.used_percent) usage_average,
        timestamp 
    FROM mem
    WHERE host = 'telegraf-agent-1'
    SAMPLE BY 30s
    ORDER BY timestamp DESC
    
    QuestDBは、このように使用することができますビルド機能の基本的な:
  • グラフタブをクリック
  • グラフの種類をline
  • ラベルを設定するtimestamp
  • プロットusage_average シリーズとクリック
  • 概要


    QuestDBのための新しい市場提供を使用して、QuestDBをQuestDBをインストールしました.そして、Telegrafを通してQuestDBに実際のメトリクスを報告するために、複数の液滴をセットアップして、対話的なコンソールでこれらのメトリクスを視覚化しました.このチュートリアルでは、レポートと可視化のためのQuestDBのようなデータベースへの時系列データとして実際のシステムメトリクスを送信する方法を示しています.
    次のステップについては、他のアプリケーションからの洞察をつかむためにtelegrafがサポートする追加の統合のいくつかを実験することができますuse the Grafana integration that QuestDB offers 視覚化のためのより詳細なダッシュボードを設定したり、警告や通知も.
    あなたの注意をありがとう!