Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » Other Collector deployment tools and options: ECS/EC2, Fargate, Nomad, PCF » Nomad でCollectorをデプロイする

Nomad でCollectorをデプロイする 🔗

Nomad 導入オーケストレーターを使用して、Splunk Observability Cloud のメトリクスデータとトレースデータを受信、処理、エクスポートする統一された方法を提供するジョブを作成します。

注釈

ジョブファイルは参考として提供されるものであり、本番での使用を意図したものではありません。

はじめに 🔗

ジョブファイルを実行するには、以下が必要です:

  • Nomad クラスターへのアクセス

  • (オプション)Consulクラスターへのアクセス

NomadとConsulのローカル開発エージェントを立ち上げます:

  1. nomad バイナリファイルconsul バイナリ をダウンロードします。

  2. 以下のコマンドを2つの異なるターミナルで実行します:

$ nomad agent -dev -network-interface='{{ GetPrivateInterfaces | attr "name" }}'

$ consul agent -dev

NomadクラスターにCollectorジョブをデプロイするには、次の例に示すようにNomadジョブ構成で環境変数を設定します:

env {
  SPLUNK_ACCESS_TOKEN = "<SPLUNK_ACCESS_TOKEN>"
  SPLUNK_REALM = "<SPLUNK_REALM>"
  SPLUNK_MEMORY_TOTAL_MIB = 2048
  // You can specify more environment variables to override default values.
}

次の例に示すように、独自のCollector設定ファイルを使用する場合は、テンプレートスタンザ でコンテンツを指定できます:

template {
 data        = <<EOF
# The following example shows how to set up your Collector configuration file.
extensions:
  health_check: null
  zpages: null
receivers:
  hostmetrics:
    collection_interval: 10s
    scrapers:
      cpu: null
      disk: null
      filesystem: null
      load: null
      memory: null
      network: null
      paging: null
      processes: null
processors:
  batch: null
  memory_limiter:
    check_interval: 2s
    limit_mib: ${SPLUNK_MEMORY_LIMIT_MIB}
exporters:
  signalfx:
    access_token: ${SPLUNK_ACCESS_TOKEN}
    api_url: https://api.${SPLUNK_REALM}.signalfx.com
    correlation: null
    ingest_url: https://ingest.${SPLUNK_REALM}.signalfx.com
    sync_host_metadata: true
  debug:
    verbosity: detailed
service:
  extensions:
  - health_check
  - zpages
  pipelines:
    metrics:
      exporters:
      - logging
      - signalfx
      processors:
      - memory_limiter
      - batch
      receivers:
      - hostmetrics
      - signalfx
EOF
    destination = "local/config/otel-agent-config.yaml"
}

デプロイモード 🔗

Collector をゲートウェイまたはエージェントとして実行します。詳細は、Collector のデプロイモード を参照してください。

Collector をゲートウェイとして実行する 🔗

次の例に示すように、サービスジョブを登録して Collector をゲートウェイ として実行します:

$ git clone https://github.com/signalfx/splunk-otel-collector.git
$ cd splunk-otel-collector/deployments/nomad
$ nomad run otel-gateway.nomad

service スケジューラは、決してダウンしてはならない長寿命サービスのスケジューリングに使用します。このように、 service スケジューラは、ジョブの制約を満たすノードの大部分をランク付けし、タスクグループを配置する最適なノードを選択します。

サービスジョブは、オペレーターによって明示的に停止されるまで実行されます。サービスタスクが終了した場合、それは失敗とみなされ、ジョブの再起動と再スケジュールスタンザに従って処理されます。

Collector をエージェントとして実行する 🔗

以下の例に示すように、システムジョブを登録して Collector をエー ジェントとして実行します:

$ git clone https://github.com/signalfx/splunk-otel-collector.git
$ cd splunk-otel-collector/deployments/nomad
$ nomad run otel-agent.nomad

ジョブの制約を満たすすべてのクライアントで実行されるべきジョブを登録するには、system スケジューラを使用します。system スケジューラは、クライアントがクラスターに参加したり、レディ状態に移行したときにも呼び出されます。これは、すべての登録されたシステムジョブが再評価され、制約が満たされていればそのタスクが新しく利用可能になったノードに配置されることを意味します。

system スケジューラタイプは、クラスター内のすべてのノードに存在すべきタスクをデプロイして管理するのに便利です。これらのタスクはNomadによって管理されるため、ジョブの更新やサービスの発見などを利用することができます。

Nomad 0.9以降、システムジョブを配置するのに十分な容量がない場合、システムスケジューラはノード上で実行されている優先順位の低いタスクをプリエンプトします。プリエンプトされるタスクがどのように選択されるかについては、プリエンプトを参照してください。

システムジョブは、オペレーターまたは先取りによって明示的に停止されるまで実行されます。システムタスクが終了した場合、それは失敗とみなされ、ジョブの再起動スタンザに従って処理されます。

このページは 2024年07月05日 に最終更新されました。