Nomad でCollectorをデプロイする 🔗
Nomad 導入オーケストレーターを使用して、Splunk Observability Cloud のメトリクスデータとトレースデータを受信、処理、エクスポートする統一された方法を提供するジョブを作成します。
注釈
ジョブファイルは参考として提供されるものであり、本番での使用を意図したものではありません。
はじめに 🔗
ジョブファイルを実行するには、以下が必要です:
Nomad クラスターへのアクセス
(オプション)Consulクラスターへのアクセス
NomadとConsulのローカル開発エージェントを立ち上げます:
nomad バイナリファイル と consul バイナリ をダウンロードします。
以下のコマンドを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以降、システムジョブを配置するのに十分な容量がない場合、システムスケジューラはノード上で実行されている優先順位の低いタスクをプリエンプトします。プリエンプトされるタスクがどのように選択されるかについては、プリエンプトを参照してください。
システムジョブは、オペレーターまたは先取りによって明示的に停止されるまで実行されます。システムタスクが終了した場合、それは失敗とみなされ、ジョブの再起動スタンザに従って処理されます。