第13章 Red Hat Quay の下での Prometheus および Grafana のメトリクス
Red Hat Quay は、各インスタンスに Prometheus と Grafana に対応したエンドポイントをエクスポートし、簡単にモニタリングとアラートを行うことができます。
13.1. Prometheus エンドポイントの公開
13.1.1. スタンドアロン Red Hat Quay
podman run
を使用して Quay
コンテナーを起動する場合は、メトリクスポート 9091
を公開します。
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 -p 9091:9091\ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.8.15
これでメトリクスが利用可能になります。
$ curl quay.example.com:9091/metrics
Quay のリポジトリーカウントを監視するための Prometheus および Grafana の設定は、Monitoring Quay with Prometheus and Grafana を参照してください。
13.1.2. Red Hat Quay Operator
quay-metrics
サービスのクラスター IP を判別します。
$ oc get services -n quay-enterprise NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-registry-clair-app ClusterIP 172.30.61.161 <none> 80/TCP,8089/TCP 18h example-registry-clair-postgres ClusterIP 172.30.122.136 <none> 5432/TCP 18h example-registry-quay-app ClusterIP 172.30.72.79 <none> 443/TCP,80/TCP,8081/TCP,55443/TCP 18h example-registry-quay-config-editor ClusterIP 172.30.185.61 <none> 80/TCP 18h example-registry-quay-database ClusterIP 172.30.114.192 <none> 5432/TCP 18h example-registry-quay-metrics ClusterIP 172.30.37.76 <none> 9091/TCP 18h example-registry-quay-redis ClusterIP 172.30.157.248 <none> 6379/TCP 18h
クラスターに接続し、quay-metrics
サービスのクラスター IP およびポートを使用してメトリクスにアクセスします。
$ oc debug node/master-0 sh-4.4# curl 172.30.37.76:9091/metrics # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 4.0447e-05 go_gc_duration_seconds{quantile="0.25"} 6.2203e-05 ...
13.1.3. Prometheus がメトリクスを消費するための設定
Prometheus は、クラスター内で実行されているすべての Red Hat Quay インスタンスにアクセスする方法が必要です。典型的なセットアップでは、すべての Red Hat Quay インスタンスを単一の名前付き DNS エントリーにリストアップし、それを Prometheus に渡すことで行われます。
13.1.4. Kubernetes での DNS 設定
シンプルな Kubernetes service を設定して、Prometheus の DNS エントリーを提供することができます。
13.1.5. 手動クラスターの DNS 設定
SkyDNS は、Kubernetes を使用していない場合に、この DNS レコードを管理するためのシンプルなソリューションです。SkyDNS は、etcd クラスター上で動作させることができます。クラスター内の各 Red Hat Quay インスタンスのエントリーを etcd ストアに追加、削除することができます。SkyDNS はそこから定期的に読み込んで、それに応じて DNS レコードの Quay インスタンスのリストを更新します。