Observability Pipelines でログを CloudPrem に送信する
This product is not supported for your selected
Datadog site. (
).
CloudPrem は Preview 版です
CloudPrem Preview に参加すると、新しいセルフ ホスト型のログ管理機能を利用できます。
Request Access概要
Observability Pipelines は、Datadog Agent と CloudPrem の間に柔軟な中間レイヤーを提供します。これにより、ログが CloudPrem デプロイメントに届く前に、処理、変換、ルーティングを行えます。Datadog Agent から受け取ったログを CloudPrem に転送するよう、Observability Pipelines を次の手順で設定します。
- パイプラインを作成して設定する - Observability Pipelines UI で、パイプラインの構成 (ソース、プロセッサー、宛先) を定義します。ここで作成した定義を、後で Worker が使用します。
- Observability Pipelines Worker をデプロイする - パイプライン設定を使って Worker をインストールします。Agent が接続する前に、Worker が起動してログを待ち受けている必要があります。
- Datadog Agent を設定する - デプロイ済みの Worker にログを送るよう、Agent の送信先を設定します。この手順は最後に行ってください。Agent が接続するには、先に Worker のアドレスが利用可能になっている必要があるためです。
Observability Pipeline を作成して設定する
- Observability Pipelines に移動します。
- Log Volume Control テンプレート を選択します。
- 次のようにパイプラインを設定します。
- Datadog Agent ソース を選択します。
- パイプラインに初期設定で含まれているプロセッサーはすべて削除します。
- Datadog CloudPrem 宛先 を選択し、CloudPrem インスタンスにログを転送するようにします。設定欄は空のままにします。
Observability Pipelines をデプロイする
UI でパイプラインを作成したら、Observability Pipelines Worker をデプロイします。Worker は作成したパイプライン設定に従って動作し、Datadog Agent から送られるログを待ち受けます。
次の Helm コマンドは、Worker をインストールまたはアップグレードし、ログを受信して CloudPrem の indexer に転送するように設定します。
注: 前の手順で作成したパイプラインの pipelineId が必要です。この ID によって、Worker とパイプライン設定が関連付けられます。
helm upgrade --install opw \
-f values.yaml \
--set datadog.apiKey=XXXXXXX \
--set datadog.pipelineId=XXXXXXX \
--set env[0].name=DD_OP_SOURCE_DATADOG_AGENT_ADDRESS,env[0].value='0.0.0.0:8282' \
--set env[1].name=DD_OP_DESTINATION_CLOUDPREM_ENDPOINT_URL,env[1].value='http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280' \
--set service.ports[0].name=dd-op-source-datadog-agent-address-port,service.ports[0].protocol=TCP,service.ports[0].port=8282,service.ports[0].targetPort=8282 \
datadog/observability-pipelines-worker
1 分ほど待ってから、ログがパイプラインを通り、CloudPrem 宛先に届いていることを確認します。これで Worker が稼働し、ログを受け取れる状態になっていることがわかるので、次に Agent の設定へ進めます。
Datadog Agent の構成
Observability Pipelines Worker のデプロイと起動が完了したら、Datadog Agent がそこへログを送るように設定します。Agent は、Worker のサービス アドレスを使って接続します。詳しくは、Datadog Agent を Observability Pipelines Worker に接続する を参照してください。
Datadog Agent の設定を更新し、ログを Observability Pipelines Worker に送信するようにします。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
clusterName: your-cluster
site: datadoghq.com
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
env:
- name: DD_OBSERVABILITY_PIPELINES_WORKER_LOGS_ENABLED
value: "true"
- name: DD_OBSERVABILITY_PIPELINES_WORKER_LOGS_URL
value: "http://observability-pipelines-worker:8282"
features:
logCollection:
enabled: true
containerCollectAll: true
確認
ログがパイプラインを通過していることを確認します。
# Observability Pipelines Worker の状態を確認する
kubectl get pods -l app=observability-pipelines-worker
# Worker のログを確認する
kubectl logs -l app=observability-pipelines-worker
# ログが CloudPrem に届いていることを確認する
kubectl exec -it <RELEASE_NAME>-searcher-0 -n <NAMESPACE_NAME> -- curl 'http://localhost:7280/api/v1/datadog/search?query='
参考資料