OBIをスタンドアロンプロセスとして実行する

OBIをLinuxのスタンドアロンプロセスとしてセットアップして実行する方法を学びます。

OBIは、他の実行中プロセスを検査できる昇格された権限を持つスタンドアロンのLinux OSプロセスとして実行できます。

ダウンロードと検証

OBIは Linux(amd64 および arm64)向けのビルド済みバイナリを提供しています。 最新リリースをリリースページからダウンロードしてください。 各リリースには以下が含まれます。

  • obi-v<version>-linux-amd64.tar.gz - Linux AMD64/x86_64 アーカイブ
  • obi-v<version>-linux-arm64.tar.gz - Linux ARM64 アーカイブ
  • obi-v<version>-linux-amd64.cyclonedx.json - AMD64 アーカイブの CycloneDX SBOM
  • obi-v<version>-linux-arm64.cyclonedx.json - ARM64 アーカイブの CycloneDX SBOM
  • obi-v<version>-source-generated.cyclonedx.json - ソース生成アーカイブの CycloneDX SBOM
  • obi-java-agent-v<version>.cyclonedx.json - 組み込み Java エージェントとその Java 依存関係の CycloneDX SBOM
  • SHA256SUMS - リリースアーカイブと SBOM アセットの検証用チェックサム

同じリリースのコンテナイメージも公開されています。 イメージの取得と署名検証の手順については、OBI を Docker コンテナとして実行するを参照してください。

希望するバージョンとアーキテクチャを設定します。

# 希望するバージョンを設定(最新版は
# https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases を参照)
VERSION=0.9.0

# アーキテクチャを指定
# Intel/AMD 64ビットの場合: amd64
# ARM 64ビットの場合: arm64
ARCH=amd64

# アーキテクチャに合ったアーカイブをダウンロード
wget https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases/download/v${VERSION}/obi-v${VERSION}-linux-${ARCH}.tar.gz

# チェックサムをダウンロード
wget https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases/download/v${VERSION}/SHA256SUMS

# アーカイブを検証
sha256sum -c SHA256SUMS --ignore-missing

# アーカイブを展開
tar -xzf obi-v${VERSION}-linux-${ARCH}.tar.gz

検証に成功すると、ダウンロードした各ファイルに対して OK の結果が表示されます。

obi-v${VERSION}-linux-${ARCH}.tar.gz: OK

検証に失敗した場合、sha256sumFAILED と報告します。 その場合は以下を確認してください。

  • VERSION がダウンロードしたアーカイブと SHA256SUMS に一致していることを確認する
  • 部分的にダウンロードされたファイルを削除して再度取得する
  • そのリリースから実際にダウンロードしたファイルのみを検証する

アーカイブには以下が含まれます。

  • obi - メインの OBI バイナリ
  • k8s-cache - Kubernetes キャッシュバイナリ
  • LICENSE - プロジェクトライセンス
  • NOTICE - 法的通知
  • NOTICES/ - サードパーティのライセンスと帰属表示

SBOM

CycloneDX SBOM ファイルは、サプライチェーンレビューと自動化のためのオプションのメタデータです。 OBI のインストールや実行には必要ありません。

公開されている SBOM は、バイナリアーカイブと組み込みコンポーネントの内容を CycloneDX JSON 形式で記述しています。 標準的な SBOM ツールを使用して、バイナリを実行せずに依存関係、ライセンス、コンポーネントを検査できます。

検査したい SBOM をダウンロードします。

# ダウンロードしたバイナリアーカイブの SBOM
wget https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases/download/v${VERSION}/obi-v${VERSION}-linux-${ARCH}.cyclonedx.json

# 組み込み Java エージェントとその Java 依存関係の SBOM
wget https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases/download/v${VERSION}/obi-java-agent-v${VERSION}.cyclonedx.json

# オプション: ダウンロードした SBOM ファイルも SHA256SUMS で検証
sha256sum -c SHA256SUMS --ignore-missing

検査コマンドの例を示します。

# アーカイブ SBOM からコンポーネント名とバージョンを一覧表示
jq '.components[] | {name, version}' obi-v${VERSION}-linux-${ARCH}.cyclonedx.json

# Grype で SBOM をスキャン
grype sbom:obi-v${VERSION}-linux-${ARCH}.cyclonedx.json

# Java エージェントの依存関係グラフを検査
jq '.components[] | {name, version}' obi-java-agent-v${VERSION}.cyclonedx.json

システムへのインストール

アーカイブを展開した後、バイナリを PATH 内の場所にインストールすると、どのディレクトリからでも使用できるようになります。

以下の例では、ほとんどの Linux ディストリビューションで標準的な場所である /usr/local/bin にインストールします。 PATH 内の他のディレクトリにインストールすることもできます。

# バイナリを PATH 内のディレクトリに移動
sudo cp obi /usr/local/bin/

# インストールを確認
obi --version

OBIのセットアップ

  1. 構成オプションドキュメントに従って構成ファイルを作成します。 OBI 構成 YAML の例から始めることもできます。

  2. OBIを特権プロセスとして実行します。

    sudo obi --config=<path to config file>
    

    OBI を PATH にインストールしていない場合は、展開したディレクトリから実行できます。

    sudo ./obi --config=<path to config file>
    

権限

OBIが適切に機能するには、昇格された権限が必要です。 具体的に必要なケーパビリティの詳細については、セキュリティドキュメントを参照してください。