Splunk4Ninjas Workshops

1. OBI サービスの追加

2 min

docker-compose.yaml に OBI を追加する

Exercise

エディタで docker-compose.yaml を開きます:

bash
cd ~/workshop/obi/02-obi-docker
docker-compose down
vim docker-compose.yaml #or editor of choice

ファイルの一番下までスクロールすると、PHASE 2 というコメントブロックがあります。そのコメントの直下に以下のブロックを貼り付けてください。他のサービス(frontend:load-generator: など)と揃うように 2スペースのインデントを維持してください:

yaml
  obi:
    image: otel/ebpf-instrument:main
    pid: host
    privileged: true
    network_mode: host
    volumes:
      - ./obi-config.yaml:/config/obi-config.yaml
      - /sys/fs/cgroup:/sys/fs/cgroup
    environment:
      OTEL_EBPF_CONFIG_PATH: /config/obi-config.yaml

注意: vim で貼り付ける際は、事前に :set paste を実行するとフォーマットが崩れません

ファイルを保存します。

Tip

obi: が2スペースでインデントされていることを確認してください(frontend:load-generator: などと同じレベル)。インデントなしで左端に配置されている場合、Docker Compose は Additional property obi is not allowed というエラーで拒否します。services: ブロックの内側に配置する必要があります。

各行の意味

動作重要な理由
image: otel/ebpf-instrument:mainOBI コンテナイメージスタックに追加する唯一のものです
pid: hostホストの PID 名前空間を共有しますOBI は他のコンテナで実行されているプロセスを確認する必要があります
privileged: trueカーネルレベルのアクセスを付与しますeBPF プログラムはカーネル関数にプローブをアタッチする必要があります
network_mode: hostホストのネットワークスタックを共有しますコンテキスト伝播に必要です – OBI はネットワークレベルでトレースコンテキストを注入します
volumes: ./obi-config.yaml:...サービスディスカバリ設定をマウントしますどのプロセスを計装し、どのような名前を付けるかを OBI に指示します
volumes: /sys/fs/cgroup:...cgroup ファイルシステムをマウントしますOBI はこれを使用してコンテナ内で実行されているプロセスを検出します
OTEL_EBPF_CONFIG_PATHコンテナ内の設定ファイルを指定しますOBI の標準設定用環境変数です

OBI の起動

Docker Compose は obi サービスのみが新しいことを検出し、それを起動します。既存のサービスはそのまま実行され続けます。

bash
docker-compose up -d
Last Modified ·