This product is not supported for your selected Datadog site. ().

概要

1 台のホストで複数のパイプラインを動かして、異なるソースからログを送信したい場合は、追加の Worker 向けに Worker ファイルを手動で追加する必要があります。このドキュメントでは、それらの Worker を実行するために追加・修正が必要なファイルを説明します。

前提条件

最初のパイプラインをセットアップする を実施し、ホストに Worker をインストールしてください。

追加のパイプラインを作成する

同じホストで動かしたい追加の Worker 用に、別のパイプラインをセットアップする を実行します。Install ページまで進んだら、以下の手順に従ってこのパイプライン用の Worker を実行してください。

追加のパイプライン用の Worker を実行する

最初の Worker をインストールすると、デフォルトで次のものが用意されます。

  • サービス バイナリは /usr/bin/observability-pipelines-worker です。
  • 次のようなサービス定義ファイルが作成されます。

    /lib/systemd/system/observability-pipelines-worker.service

        [Unit]
        Description="Observability Pipelines Worker"
        Documentation=https://docs.datadoghq.com/observability_pipelines/
        After=network-online.target
        Wants=network-online.target
    
        [Service]
        User=observability-pipelines-worker
        Group=observability-pipelines-worker
        ExecStart=/usr/bin/observability-pipelines-worker run
        Restart=always
        AmbientCapabilities=CAP_NET_BIND_SERVICE
        EnvironmentFile=-/etc/default/observability-pipelines-worker
    
        [Install]
        WantedBy=multi-user.target
        
  • 次のような環境ファイルが作成されます。

    /etc/default/observability-pipelines-worker

        DD_API_KEY=<datadog_api_key>
        DD_SITE=<dd_site>
        DD_OP_PIPELINE_ID=<pipeline_id>
        
  • データ ディレクトリは /var/lib/observability-pipelines-worker です。

追加の Worker を設定する

この例では、Fluent ソースを使う別のパイプラインを作成しています。このパイプライン用の Worker を設定するには、次の手順を行います。

  1. op-fluent を用途に合ったディレクトリ名に置き換えたうえで、次のコマンドを実行して新しいデータ ディレクトリを作成します。

    sudo mkdir /var/lib/op-fluent
    
  2. 次のコマンドを実行して、データ ディレクトリの所有者を observability-pipelines-worker:observability-pipelines-worker に変更します。あわせて op-fluent は自分のデータ ディレクトリ名に更新してください。

    sudo chown -R observability-pipelines-worker:observability-pipelines-worker /var/lib/op-fluent/
    
  3. 新しい systemd サービス用の環境ファイルを作成します。たとえば /etc/default/op-fluent のようにし、op-fluent は任意のファイル名に置き換えてください。ファイル内容の例は次のとおりです。

    /etc/default/op-fluent

        DD_API_KEY=<datadog_api_key>
        DD_OP_PIPELINE_ID=<pipeline_id>
        DD_SITE=<dd_site>
        <destintation_environment_variables>
        DD_OP_SOURCE_FLUENT_ADDRESS=0.0.0.0:9091
        DD_OP_DATA_DIR=/var/lib/op-fluent
        
    この例では次の点に注意してください。

    • DD_OP_DATA_DIR/var/lib/op-fluent に設定されています。/var/lib/op-fluent は自分のデータ ディレクトリのパスに置き換えてください。
    • DD_OP_SOURCE_FLUENT_ADDRESS=0.0.0.0:9091 は、この例で使っている Fluent ソースに必要な環境変数です。自分のソースに対応する 環境変数 に置き換えてください。

    また、以下のプレースホルダーも忘れずに置き換えてください。

    • <datadog_api_key> は自分の Datadog API キー に置き換えます。
    • <pipeline_id> は、この Worker に対応する パイプライン の ID に置き換えます。
    • <dd_site> は自分の Datadog サイト に置き換えます。
    • <destination_environment_variables> は宛先に必要な 環境変数 に置き換えます。
  4. 新しい systemd サービス エントリを作成します。たとえば /lib/systemd/system/op-fluent.service です。エントリ内容の例は次のとおりです。

    /lib/systemd/system/op-fluent.service

        [Unit]
        Description="OPW for Fluent Pipeline"
        Documentation=https://docs.datadoghq.com/observability_pipelines/
        After=network-online.target
        Wants=network-online.target
    
        [Service]
        User=observability-pipelines-worker
        Group=observability-pipelines-worker
        ExecStart=/usr/bin/observability-pipelines-worker run
        Restart=always
        AmbientCapabilities=CAP_NET_BIND_SERVICE
        EnvironmentFile=-/etc/default/op-fluent
    
        [Install]
        WantedBy=multi-user.target
        
    この例では次のとおりです。

    • パイプラインが Fluent ソースを使っているため、サービス名は op-fluent になっています。op-fluent.service は用途に合ったサービス名に置き換えてください。
    • DescriptionOPW for Fluent Pipeline です。OPW for Fluent Pipeline は用途に合わせた説明文に置き換えてください。
    • EnvironmentFile-/etc/default/op-fluent に設定されています。-/etc/default/op-fluent は、Worker 用に作成した systemd サービスの環境変数ファイルに置き換えてください。
  5. 次のコマンドを実行して systemd を再読み込みします。

    sudo systemctl daemon-reload
    
  6. 次のコマンドを実行して新しいサービスを起動します。

    sudo systemctl enable --now op-fluent
    
  7. 次のコマンドを実行してサービスが動作していることを確認します。

    sudo systemctl status op-fluent
    

さらに、コマンド sudo journalctl -u op-fluent.service を使うと、問題の切り分けに役立ちます。

パイプラインをデプロイする

  1. 追加したパイプラインの Install ページを開きます。
  2. Deploy your pipeline セクションに追加の Worker が検出されているはずです。Deploy をクリックします。

参考資料