Harbor は、ポリシーとロールベースのアクセス制御でアーティファクトを保護し、イメージをスキャンして脆弱性をなくし、イメージを信頼できるものとして署名するオープンソース レジストリです。 CNCF 卒業プロジェクトである Harbor は、コンプライアンス、パフォーマンス、相互運用性を提供し、Kubernetes や Docker などのクラウド ネイティブ コンピューティング プラットフォーム全体でアーティファクトを一貫して安全に管理するのに役立ちます。
New Relic を使用して、k8s クラスターの Harbor インフラストラクチャを理解するのに役立つ Prometheus メトリクスに基づくダッシュボードを表示します。New Relic を使用すると、以下を監視できます。
- 港湾サービスの状況
- Harbor プロジェクトのバイト クォータ使用率
- Harbor サーバーとクライアントのエラー率
統合を有効にする
統合を有効にするには、次の手順に従います。
Prometheus の Harbor ドキュメント に従って、Harbor メトリクス エンドポイントを見つけます。
Prometheus モニタリングをセットアップします。Prometheus メトリクスは New Relic と統合する必要があります。Prometheus Agent または Remote Write 統合を使用できます。詳細については 、Prometheus メトリクスを送信する方法を 参照してください。
重要
Prometheus Agent は、デフォルトで一連の統合からメトリックのみをスクレイピングします。
この場合、ポッドまたはエンドポイントを、文字列
harbor
を含むラベルapp.kubernetes.io/name
、app.newrelic.io/name
、k8s-app
のいずれかで識別する必要があります。次のクエリを使用して、メトリクスが期待どおりに取り込まれていることを確認します。
FROM Metric SELECT count(*) WHERE metricName LIKE 'harbor_%' FACET metricName LIMIT MAX組み込みのダッシュボードと アラートにアクセスするには、 Harbor クイックスタートをインストールします。
インポートしたら、アセットを編集または複製して、特定の要件に適合させることができます。
重要
ダッシュボードの一部のグラフには、ポッドまたはエンドポイントの識別を必要とする条件付きのクエリが含まれており、これらのラベル
app.kubernetes.io/name
、app.newrelic.io/name
、k8s-app
のいずれかに文字列harbor
が含まれています。
指標を見つけて使用する
Prometheus メトリックは、ディメンション メトリックとして格納されます。NRQL を使用してクエリを実行するか、データ エクスプローラーを使用して、使用可能なメトリック、ファセット、および関連付けられたディメンションによるフィルターを参照できます。
この統合によって公開されるさまざまなメトリックのセットは、 Harbor のドキュメントで定義されています。
次の NRQL クエリを使用して、New Relic に取り込まれているメトリクスを理解します。
一意のメトリック名を一覧表示します。
FROM Metric SELECT keysetlike('harbor_%')メトリック更新の数をカウントします。
FROM Metric SELECT datapointcount() WHERE metricName LIKE 'harbor_%' LIMIT MAXデータの取り込みを見積もります (毎日の取り込み、バイト単位):
FROM Metric SELECT bytecountestimate() FACET metricName WHERE metricName LIKE 'harbor_%' SINCE 1 DAY AGO LIMIT MAX
トラブルシューティング
次のコマンドを使用して、Harbor で構成された任意の K8s ノードで、Harbor Prometheus エンドポイントがメトリックを発行していることを確認します。
bash$curl <Harbor-Pod-IP>:9090/metricsPrometheus 統合の特定の トラブルシューティング ガイドライン を確認することもできます。