Telegraf と Timestream for InfluxDB 3 の統合 - Amazon Timestream

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Telegraf と Timestream for InfluxDB 3 の統合

Telegraf は、さまざまなソースからメトリクスを収集するための 300 を超える入力プラグインと、さまざまな宛先にデータを書き込むための出力プラグインを備えたプラグインベースのデータ収集エージェントです。「プラグアンドプレイ」アーキテクチャにより、InfluxDB 3 へのメトリクスの迅速な収集と報告に最適です。

要件

Telegraf 設定オプション

Telegraf には、InfluxDB 3 との互換性がある次の 2 つの出力プラグインが用意されています。

  1. outputs.influxdb_v2 – 新しいデプロイに推奨されます。

  2. outputs.influxdb (v1) – 既存の v1 設定用です。

outputs.influxdb_v2 プラグインを使用して InfluxDB v2 Compatibility API に接続することをお勧めします。

[[outputs.influxdb_v2]] urls = ["https://your-cluster-endpoint:8086"] token = "${INFLUX_TOKEN}" # Use environment variable for security organization = "" # Can be left empty for InfluxDB 3 bucket = "DATABASE_NAME" ## Optional: Enable gzip compression content_encoding = "gzip" ## Optional: Increase timeout for high-latency networks timeout = "10s" ## Optional: Configure batching metric_batch_size = 5000 metric_buffer_limit = 50000

レガシー v1 出力プラグインの使用

v1 プラグインを使用する既存の Telegraf 設定の場合:

[[outputs.influxdb]] urls = ["https://your-cluster-endpoint:8086"] database = "DATABASE_NAME" skip_database_creation = true username = "ignored" # Required but ignored password = "${INFLUX_TOKEN}" # Use environment variable content_encoding = "gzip" ## Optional: Configure write parameters timeout = "10s" metric_batch_size = 5000 metric_buffer_limit = 50000

基本的な Telegraf の設定の例

以下は、システムメトリクスを収集し、InfluxDB 3 に書き込む例の全文です。

# Global Agent Configuration [agent] interval = "10s" round_interval = true metric_batch_size = 5000 metric_buffer_limit = 50000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s" precision = "s" hostname = "" omit_hostname = false # Input Plugins - Collect system metrics [[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] [[inputs.mem]] [[inputs.net]] interfaces = ["eth*", "en*"] [[inputs.system]] # Output Plugin - Write to InfluxDB 3 [[outputs.influxdb_v2]] urls = ["https://your-cluster-endpoint:8086"] token = "${INFLUX_TOKEN}" organization = "" bucket = "telegraf_metrics" content_encoding = "gzip"

InfluxDB 3 と Telegraf の統合のベストプラクティス

  • セキュリティ

    • 環境変数またはシークレットストアにトークンを保存します。

    • 設定ファイルでトークンをハードコードしないでください。

    • 本番環境のデプロイには HTTPS エンドポイントを使用します。

  • パフォーマンスの最適化

    • content_encoding = "gzip" で gzip 圧縮を有効にします。

    • 適切なバッチサイズ (5000~10000 メトリクスを設定します)。

    • 使用可能なメモリに基づいてバッファ制限を設定します。

    • ユースケースに適した精度を使用します (多くの場合、秒単位で十分です)。

  • ネットワーク構成

    • プライベートクラスターの場合は、同じ VPC 内で Telegraf を実行します。

    • ネットワークレイテンシーに適したタイムアウトを設定します。

    • 書き込みオペレーションには、ライター/リーダーエンドポイントを使用します。

  • モニタリング

    • Telegraf の内部メトリクスプラグインを有効にして、エージェントのパフォーマンスをモニタリングします。

    • 書き込みエラーと再試行をモニタリングします。

    • バッファオーバーフロー条件のアラートを設定します。

  • データの整理

    • 入力プラグイン間で一貫したタグ命名を使用します。

    • Telegraf のプロセッサプラグインを活用してデータを正規化します。

    • タグフィルタリングをコントロールカーディナリティに適用します。

Telegraf の実行

独自の設定を使用して Telegraf を開始するには、次の手順を実行します。

# Test configuration telegraf --config telegraf.conf --test # Run Telegraf telegraf --config telegraf.conf # Run as a service (systemd) sudo systemctl start telegraf

時系列データ用の一般的な Telegraf プラグイン

一般的な入力プラグイン:

  • inputs.cpuinputs.meminputs.disk – システムメトリクス。

  • inputs.dockerinputs.kubernetes – コンテナのメトリクス。

  • inputs.prometheus – Prometheus エンドポイントのスクレイプ。

  • inputs.snmp – ネットワークデバイスのモニタリング。

  • inputs.mqtt_consumer – IoT データ収集。

  • inputs.http_listener_v2 – HTTP ウェブフックレシーバー。

便利なプロセッサプラグイン:

  • processors.regex – タグ/フィールド名を変換。

  • processors.converter – フィールドデータ型を変更。

  • processors.aggregator – メトリクス集約。

  • processors.filter – 条件に基づいてメトリクスをフィルタリング。

InfluxDB 3 で Telegraf の広範なプラグインエコシステムを活用すると、さまざまなソースからデータを収集し、時系列データベースに効率的に書き込む包括的なモニタリングソリューションを構築できます。