Gatekeeper

Supported OS Linux

Integrationv1.0.0

概要

このチェックは、OPA Gatekeeper からメトリクスを収集します。

Gatekeeper 概要ダッシュボード

セットアップ

Kubernetes クラスターで実行されている Agent 用にこのチェックをインストールおよび構成する場合は、以下の手順に従ってください。オートディスカバリーのインテグレーションテンプレートのガイドも参照してこの手順を行ってください。

インストール

Agent バージョン >=7.26.0 または >=6.26.0

integrations-extra からのインテグレーションを Docker Agent と使用するには、Datadog はインテグレーションがインストールされた状態で Agent を構築することをお勧めします。次の Dockerfile を使用して、integrations-extras からの gatekeeper インテグレーションを含む Agent の更新バージョンをビルドします。

FROM gcr.io/datadoghq/agent:latest
RUN agent integration install -r -t datadog-gatekeeper==<INTEGRATION_VERSION>

Agent バージョン <7.26.0 または <6.26.0

gatekeeper チェックを Kubernetes クラスターにインストールするには:

  1. 開発ツールキットをインストールします。

  2. integrations-extras リポジトリを複製します。

    git clone https://github.com/DataDog/integrations-extras.git.
    
  3. ddev 構成を integrations-extras/ パスで更新します。

    ddev config set extras ./integrations-extras
    
  4. gatekeeper パッケージをビルドするには、次を実行します。

    ddev -e release build gatekeeper
    
  5. Agent マニフェストをダウンロードして、Datadog Agent を DaemonSet としてインストールします

  6. チェックコード用と構成用の 2 つの PersistentVolumeClaim を作成します。

  7. それらをボリュームとして Agent ポッドテンプレートに追加し、チェックと構成に使用します。

         env:
           - name: DD_CONFD_PATH
             value: "/confd"
           - name: DD_ADDITIONAL_CHECKSD
             value: "/checksd"
       [...]
         volumeMounts:
           - name: agent-code-storage
             mountPath: /checksd
           - name: agent-conf-storage
             mountPath: /confd
       [...]
       volumes:
         - name: agent-code-storage
           persistentVolumeClaim:
             claimName: agent-code-claim
         - name: agent-conf-storage
           persistentVolumeClaim:
             claimName: agent-conf-claim
    
  8. Kubernetes クラスターに Datadog Agent をデプロイします。

    kubectl apply -f agent.yaml
    
  9. インテグレーションアーティファクトの .whl ファイルを Kubernetes ノードにコピーするか、パブリック URL にアップロードします

  10. 次のコマンドを実行して、Agent でインテグレーション Wheel をインストールします。

    kubectl exec ds/datadog -- agent integration install -w <PATH_OF_GATEKEEPER_ARTIFACT_>/<GATEKEEPER_ARTIFACT_NAME>.whl
    
  11. 以下のコマンドを実行して、チェックと構成を対応する PVC にコピーします。

    kubectl exec ds/datadog -- sh
    # cp -R /opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/* /checksd
    # cp -R /etc/datadog-agent/conf.d/* /confd
    
  12. Datadog Agent ポッドを再起動します。

コンフィギュレーション

  1. gatekeeper のパフォーマンスデータの収集を開始するには、Agent ポッドに追加した /confd フォルダーの gatekeeper/conf.yaml ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル cert_manager.d/conf.yaml を参照してください。

  2. Agent を再起動します

検証

Agent の status サブコマンドを実行し、Checks セクションで gatekeeper を探します。

収集データ

メトリクス

gatekeeper.audit.duration.seconds.sum
(count)
Latency of audit operation in seconds
Shown as second
gatekeeper.audit.duration.seconds.count
(count)
Latency of audit operation in seconds
Shown as second
gatekeeper.audit.last_run_time
(gauge)
Timestamp of last audit operation
gatekeeper.constraint_template_ingestion.duration.seconds.sum
(count)
Distribution of how long it took to ingest a constraint template in seconds
Shown as second
gatekeeper.constraint_template_ingestion.duration.seconds.count
(count)
Distribution of how long it took to ingest a constraint template in seconds
Shown as second
gatekeeper.constraint_template_ingestion.count
(count)
Total number of constraint template ingestion actions
gatekeeper.violations
(gauge)
Total number of violations per constraint
gatekeeper.constraints
(gauge)
Current number of known constraints
gatekeeper.constraint_templates
(gauge)
Number of observed constraint templates
gatekeeper.request.duration.seconds.sum
(count)
[Deprecated since Gatekeeper v3.4.0] The response time in seconds
Shown as second
gatekeeper.request.duration.seconds.count
(count)
[Deprecated since Gatekeeper v3.4.0] The response time in seconds
Shown as second
gatekeeper.request.count
(count)
[Deprecated since Gatekeeper v3.4.0] Total number of requests that are routed to webhook
gatekeeper.sync
(gauge)
Total number of resources of each kind being cached
gatekeeper.sync.duration.seconds.sum
(count)
Latency of sync operation in seconds
Shown as second
gatekeeper.sync.duration.seconds.count
(count)
Latency of sync operation in seconds
Shown as second
gatekeeper.sync.last_run_time
(gauge)
Timestamp of last sync operation
gatekeeper.watch.intended
(gauge)
The total number of Group/Version/Kinds that the watch manager has instructions to watch
gatekeeper.watch.watched
(gauge)
The total number of Group/Version/Kinds currently watched by the watch manager
gatekeeper.validation.request.count
(count)
The number of requests that are routed to validation webhook
gatekeeper.validation.request.duration.seconds.sum
(count)
The response time in second
Shown as second
gatekeeper.validation.request.duration.seconds.count
(count)
The response time in second
Shown as second
gatekeeper.mutator.ingestion.count
(count)
Total number of Mutator ingestion actions
gatekeeper.mutator.ingestion.duration.seconds.sum
(count)
The distribution of Mutator ingestion durations
Shown as second
gatekeeper.mutator.ingestion.duration.seconds.count
(count)
The distribution of Mutator ingestion durations
Shown as second
gatekeeper.mutators
(gauge)
The current number of Mutator objects
gatekeeper.mutator.conflicting.count
(gauge)
The current number of conflicting Mutator objects

イベント

Gatekeeper には、イベントは含まれません。

サービスのチェック

gatekeeper.prometheus.health
Returns CRITICAL if the agent fails to connect to the Prometheus metrics endpoint, otherwise OK.
Statuses: ok, critical

gatekeeper.health
Returns CRITICAL if the agent fails to connect to the gatekeeper health endpoint, OK if it returns 200, WARNING otherwise.
Statuses: ok, warning, critical

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。