正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Self-Managedで可観測性をセットアップする

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed
  • ステータス: 実験的機能

可観測性データは、GitLab.comインスタンスとは別のアプリケーションで収集されます。あなたのGitLabインスタンスの問題は、可観測性データの収集や表示に影響を与えません。逆もまた同様です。

GitLab Self-Managedインスタンスの場合、データの保存場所はあなたが管理します。

ワークフロー

あなたのGitLab Self-Managedインスタンスに可観測性をセットアップするには、次の手順を実行します:

  1. 前提条件を満たしていることを確認してください。
  2. サーバーとストレージをプロビジョニングする。
  3. Dockerを設定し、コンテナに可観測性をインストールします。
  4. ネットワークアクセスを設定します。
  5. グループのURLを設定します。

前提条件

  • EC2インスタンスまたは同様の仮想マシンが必要です:
    • 最小: t3.large (2仮想CPU, 8 GB RAM)。
    • 推奨: t3.xlarge (4仮想CPU, 16 GB RAM)を本番環境で使用します。
    • 少なくとも100 GBのストレージ容量。
  • DockerとDocker Composeがインストールされている必要があります。
  • あなたのGitLabバージョンは18.1以降である必要があります。
  • あなたのGitLabインスタンスは、可観測性インスタンスに接続されている必要があります。

サーバーとストレージをプロビジョニングする

AWS EC2の場合:

  1. 少なくとも2 vCPUと8 GBのRAMを搭載したEC2インスタンスを起動します。
  2. 少なくとも100 GBのEBSボリュームを追加します。
  3. SSHを使用してあなたのインスタンスに接続します。

ストレージボリュームをマウントする

sudo mkdir -p /mnt/data
sudo mount /dev/xvdbb /mnt/data  # Replace xvdbb with your volume name
sudo chown -R $(whoami):$(whoami) /mnt/data

永続的にマウントするには、/etc/fstabに追加します:

echo '/dev/xvdbb /mnt/data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab

Dockerをインストールする

Ubuntu/Debianの場合:

sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $(whoami)

Amazon Linuxの場合:

sudo dnf update
sudo dnf install -y docker
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $(whoami)

サインアウトして再度サインインするか、次のコマンドを実行します:

newgrp docker

マウントされたボリュームを使用するようにDockerを設定する

sudo mkdir -p /mnt/data/docker
sudo bash -c 'cat > /etc/docker/daemon.json << EOF
{
  "data-root": "/mnt/data/docker"
}
EOF'
sudo systemctl restart docker

以下で確認します:

docker info | grep "Docker Root Dir"

GitLab可観測性をインストールする

cd /mnt/data
git clone -b main https://gitlab.com/gitlab-org/embody-team/experimental-observability/gitlab_o11y.git
cd gitlab_o11y/deploy/docker
docker-compose up -d

タイムアウトエラーが発生した場合は、次を使用します:

COMPOSE_HTTP_TIMEOUT=300 docker-compose up -d

オプション: オプション: 外部のClickHouseデータベースを使用する

必要であれば、独自のClickHouseデータベースを使用できます。

前提条件:

  • 外部ClickHouseインスタンスがアクセス可能で、必要な認証認証情報で適切に設定されていることを確認してください。

docker-compose up -dを実行する前に、次のステップを完了してください:

  1. docker-compose.ymlファイルを開きます。
  2. コメントアウトする項目:
    • The clickhouseおよびzookeeperサービス。
    • The x-clickhouse-defaultsおよびx-clickhouse-dependセクション。
  3. 以下のファイルで、clickhouse:9000のすべての出現箇所を、関連するClickHouseのエンドポイントとTCPポート(例: my-clickhouse.example.com:9000)に置き換えます。あなたのClickHouseインスタンスが認証を必要とする場合、認証情報を含めるように接続文字列を更新する必要があるかもしれません:
    • docker-compose.yml
    • otel-collector-config.yaml
    • prometheus-config.yml

GitLab可観測性のネットワークアクセスを設定する

テレメトリーデータを適切に受信するには、あなたのGitLab可観測性インスタンスのセキュリティグループで特定のポートを開く必要があります:

  1. AWS Console > EC2 > Security Groupsに移動します。
  2. あなたのGitLab可観測性インスタンスにアタッチされているセキュリティグループを選択します。
  3. Edit inbound rulesを選択します。
  4. 以下のルールを追加します:
    • タイプ: カスタムTCP、ポート: 8080、ソース: あなたのIPまたは0.0.0.0/0 (UIアクセス用)
    • タイプ: カスタムTCP、ポート: 4317、ソース: あなたのIPまたは0.0.0.0/0 (OTLP gRPC用)
    • タイプ: カスタムTCP、ポート: 4318、ソース: あなたのIPまたは0.0.0.0/0 (OTLP HTTP用)
    • タイプ: カスタムTCP、ポート: 9411、ソース: あなたのIPまたは0.0.0.0/0 (Zipkin用 - オプション)
    • タイプ: カスタムTCP、ポート: 14268、ソース: あなたのIPまたは0.0.0.0/0 (Jaeger HTTP用 - オプション)
    • タイプ: カスタムTCP、ポート: 14250、ソース: あなたのIPまたは0.0.0.0/0 (Jaeger gRPC用 - オプション)
  5. Save rulesを選択します。

これで、以下のGitLab可観測性UIにアクセスできます:

http://[your-instance-ip]:8080

グループのURLを設定する

Railsコンソールを使用して、グループのGitLab可観測性URLを設定します:

  1. Railsコンソールにアクセスします:

    docker exec -it gitlab gitlab-rails console
  2. グループの可観測性設定を行います:

    group = Group.find_by_path('your-group-name')
    
    Observability::GroupO11ySetting.create!(
      group_id: group.id,
      o11y_service_url: 'your-o11y-instance-url',
      o11y_service_user_email: 'your-email@example.com',
      o11y_service_password: 'your-secure-password',
      o11y_service_post_message_encryption_key: 'your-super-secret-encryption-key-here-32-chars-minimum'
    )

    次のようにします。

    • your-group-nameを実際のグループパスに置き換えます。
    • your-o11y-instance-urlをGitLab可観測性のインスタンスURLに置き換えます(例: http://192.168.1.100:8080)。
    • メールとパスワードを希望の認証情報に設定します。
    • 暗号化キーを32文字以上の安全な文字列に設定します。

次のステップ