Azure İzleyici'de Prometheus ölçümleri için özel yapılandırma dosyası oluşturma ve doğrulama
Azure İzleyici Prometheus aracısının varsayılan olarak kazıdığı varsayılan kazıma hedeflerine ek olarak, bir yapılandırma haritası kullanarak aracıya daha fazla kazıma yapılandırması sağlamak için aşağıdaki adımları kullanın. Azure İzleyici Prometheus aracısı kazıma yapılandırması için işleç CRD'lerini anlamaz veya işlemez, bunun yerine Prometheus yapılandırmasında tanımlandığı gibi yerel Prometheus yapılandırmasını kullanır.
Özel hedef kazıma için kullanılabilecek üç yapılandırma haritası şunlardır:
- ama-metrics-prometheus-config (Önerilen) - Bu ada sahip bir yapılandırma haritası oluşturulduğunda, içinde tanımlanan kazıma işleri kümede çalışan Azure İzleyici ölçümleri çoğaltma podundan çalıştırılır.
- ama-metrics-prometheus-config-node (Gelişmiş) - Bu ada sahip bir yapılandırma haritası oluşturulduğunda, içinde tanımlanan kazıma işleri kümede çalışan her Linux DaemonSet podundan çalıştırılır. Daha fazla bilgi için bkz . Gelişmiş Kurulum.
- ama-metrics-prometheus-config-node-windows (Gelişmiş) - Bu ada sahip bir yapılandırma haritası oluşturulduğunda, içinde tanımlanan kazıma işleri her windows DaemonSet'ten çalıştırılır. Daha fazla bilgi için bkz . Gelişmiş Kurulum.
Prometheus yapılandırma dosyası oluşturma
Prometheus kazıma yapılandırma işlerini yazmanın daha kolay bir yolu:
- Adım:1 Kazıma işleri yazmak/tanımlamak için yapılandırma dosyası (yaml) kullanma
- Adım:2 Özel bir araç kullanarak kazıma yapılandırma dosyasını doğrulayın (bu makalede belirtildiği gibi) ve ardından bu yapılandırma dosyasını configmap'e dönüştürün
- Adım:3 Kazıma yapılandırma dosyasını kümelerinize yapılandırma haritası olarak dağıtın.
Bu şekilde yapmak, yaml config (son derece alana duyarlıdır) yazmak ve yapılandırma eşlemesi içinde doğrudan kazıma yapılandırması yazarak istenmeyen alanlar eklememek daha kolaydır.
Adlı prometheus-config
bir Prometheus kazıma yapılandırma dosyası oluşturun. Daha fazla bilgi için bkz . Prometheus için kazıma yapılandırması yazma hakkında daha fazla ayrıntı sağlayan yapılandırma ipuçları ve örnekler . Ayrıca Prometheus.io kazıma yapılandırma başvurusuna da başvurabilirsiniz. Yapılandırma dosyanız bölüm scrape_configs
bölümünün altındaki kazıma yapılandırmalarını listeler ve isteğe bağlı olarak genel , scrape_timeout
ve external_labels
ayarlamak için genel scrape_interval
bölümü kullanabilir.
İpucu
Genel bölümde yapılan değişiklikler, varsayılan yapılandırmaları ve özel yapılandırmayı etkiler.
Aşağıda örnek bir Prometheus scrape yapılandırma dosyası verilmiştir:
global:
scrape_interval: 30s
scrape_configs:
- job_name: my_static_config
scrape_interval: 60s
static_configs:
- targets: ['my-static-service.svc.cluster.local:1234']
- job_name: prometheus_example_app
scheme: http
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_service_name]
action: keep
regex: "prometheus-example-service"
Kazıma yapılandırma dosyasını doğrulama
Aracı, configmap aracılığıyla verilen Prometheus yapılandırmasını doğrulamak için özel promconfigvalidator
bir araç kullanır. Yapılandırma geçerli değilse, verilen özel yapılandırma eklenti aracısı tarafından reddedilir. Prometheus yapılandırma dosyanızı aldıktan sonra, aracının promconfigvalidator
kullandığı bir yapılandırma haritası oluşturmadan önce yapılandırmanızı doğrulamak için isteğe bağlı olarak aracını kullanabilirsiniz.
Araç promconfigvalidator
, Azure İzleyici ölçüm eklentilerinin içinde gönderilir. Doğrulama aracını indirmek için kümenizdeki ad alanında yer alan kube-system
podlardan herhangi birini ama-metrics-node-*
kullanabilirsiniz. Aracı ve yapılandırmasını indirmek için kullanın kubectl cp
:
for podname in $(kubectl get pods -l rsName=ama-metrics -n=kube-system -o json | jq -r '.items[].metadata.name'); do kubectl cp -n=kube-system "${podname}":/opt/promconfigvalidator ./promconfigvalidator; kubectl cp -n=kube-system "${podname}":/opt/microsoft/otelcollector/collector-config-template.yml ./collector-config-template.yml; chmod 500 promconfigvalidator; done
Yürütülebilir dosyayı ve yaml dosyasını kopyaladıktan sonra, oluşturduğunuz Prometheus yapılandırma dosyanızın yolunu bulun. Ardından komutunda değerini değiştirin <config path>
ve doğrulayıcıyı komutuyla çalıştırın:
./promconfigvalidator/promconfigvalidator --config "<config path>" --otelTemplate "./promconfigvalidator/collector-config-template.yml"
İsteğe bağlı output
parametreyle yol sağlanmayan doğrulayıcı çalıştırılırsa, birleştirilmiş yapılandırma dosyası merged-otel-config.yaml
oluşturulur. Otomatik olarak oluşturulan bu birleştirilmiş dosyayı yalnızca araç doğrulama ve hata ayıklama amacıyla kullanıldığından ölçüm toplayıcı aracısına yapılandırma olarak kullanmayın.
Yapılandırma dosyasını yapılandırma haritası olarak dağıtma
Özel Prometheus yapılandırma dosyanız, ad alanında configmap(ler) (veya) ama-metrics-prometheus-config
(veya) ama-metrics-prometheus-config-node
kube-system
ama-metrics-prometheus-config-node-windows
ölçümlerinin içinde adlı prometheus-config
bir alan olarak kullanılır. Yukarıda oluşturduğunuz kazıma yapılandırma dosyasından, Prometheus yapılandırma dosyanızı prometheus-config
(dosya uzantısı olmadan) olarak yeniden adlandırıp özel kazıma işleriniz için hangi yapılandırma haritasını oluşturmak istediğinize bağlı olarak aşağıdaki komutlardan birini veya daha fazlasını çalıştırarak bir yapılandırma haritası oluşturabilirsiniz.
Ex;- replicsset tarafından kullanılacak yapılandırma haritası oluşturmak için
kubectl create configmap ama-metrics-prometheus-config --from-file=prometheus-config -n kube-system
Bu, ad alanında kube-system
adlı ama-metrics-prometheus-config
bir yapılandırma haritası oluşturur. Azure İzleyici ölçüm çoğaltma podu, yeni yapılandırmayı uygulamak için 30-60 saniye içinde yeniden başlatılır. Yapılandırma doğrulama, işleme veya birleştirme ile ilgili herhangi bir sorun olup olmadığını görmek için çoğaltma podlarına bakabilirsiniz ama-metrics
Örneğin; linux DaemonSet tarafından kullanılacak yapılandırma haritası oluşturmak için
kubectl create configmap ama-metrics-prometheus-config-node --from-file=prometheus-config -n kube-system
Bu, ad alanında kube-system
adlı ama-metrics-prometheus-config-node
bir yapılandırma haritası oluşturur. Her Azure İzleyici ölçümü Linux DaemonSet podu, yeni yapılandırmayı uygulamak için 30-60 saniye içinde yeniden başlatılır. Yapılandırma doğrulama, işleme veya birleştirme ile ilgili herhangi bir sorun olup olmadığını görmek için linux deamonset podlarına bakabilirsiniz ama-metrics-node
Örneğin; windows DaemonSet tarafından kullanılacak yapılandırma haritası oluşturmak için
kubectl create configmap ama-metrics-prometheus-config-node-windows --from-file=prometheus-config -n kube-system
Bu, ad alanında kube-system
adlı ama-metrics-prometheus-config-node-windows
bir yapılandırma haritası oluşturur. Her Azure İzleyici ölçümü Windows DaemonSet podu, yeni yapılandırmayı uygulamak için 30-60 saniye içinde yeniden başlatılır. Yapılandırma doğrulama, işleme veya birleştirme ile ilgili herhangi bir sorun olup olmadığını görmek için windows deamonset podlarına bakabilirsiniz ama-metrics-win-node
Dosya adı, yapılandırma haritası ayar adı olarak kullanıldığından, aşağıdaki komutu çalıştırmadan önce Prometheus yapılandırma dosyasının adlandırılmasını prometheus-config
sağlayın.
Bu, ad alanında kube-system
adlı ama-metrics-prometheus-config
bir yapılandırma haritası oluşturur. Azure İzleyici ölçümler podu yeni yapılandırmayı uygulamak için yeniden başlatılır. Yapılandırma doğrulaması, işleme veya birleştirme ile ilgili herhangi bir sorun olup olmadığını görmek için podlara ama-metrics
bakabilirsiniz.
Yapılandırma haritasının ama-metrics-prometheus-config
bir örneği buradadır.
Sorun giderme
Kube-system ad alanında configmap'i (ama-metrics-prometheus-config veya ama-metrics-prometheus-config-node) başarıyla oluşturduysanız ve yine de özel hedeflerin kazındığını görmüyorsanız, kubectl günlüklerini kullanarak ama-metrics-prometheus-config configmap veya DaemonSet pod günlükleri için ama-metrics-prometheus-config-node configmap) çoğaltma pod günlüklerinde hataları denetleyin vePrometheus-config-merger ön eki ile Varsayılan ve Özel Prometheus Config bölümünü Birleştirmeyi Başlat
Not
Gelişmiş kurulum: DaemonSet için özel Prometheus kazıma işlerini yapılandırma
ama-metrics
Çoğaltma podu özel Prometheus yapılandırmasını kullanır ve belirtilen hedefleri kazır. Çok sayıda düğüme ve poda ve kazınacak çok büyük hacimli ölçümlere sahip bir küme için, geçerli özel kazıma hedeflerinden bazıları tek ama-metrics
Çoğaltma podundan DaemonSet pod'a ama-metrics
yüklenebilir.
ama-metrics-prometheus-config-node yapılandırma haritası, çoğaltma kümesi yapılandırma haritasına benzer ve her düğümde statik kazıma yapılandırmaları olacak şekilde oluşturulabilir. Kazıma yapılandırması yalnızca tek bir düğümü hedeflemeli ve hizmet bulma/pod ek açıklamalarını kullanmamalıdır. Aksi takdirde, her düğüm tüm hedefleri kazımaya çalışır ve Kubernetes API sunucusuna birçok çağrı yapar.
Özel kazıma hedefleri, hedeflerle ve ortam değişkenini $NODE_IP
kullanarak ve kazınacak bağlantı noktasını belirterek aynı biçimi static_configs
izleyebilir. DaemonSet'in her podu yapılandırmayı alır, ölçümleri kazır ve bu düğüm için gönderir.
Örnek:- Aşağıdaki node-exporter
yapılandırma, DaemonSet podları için varsayılan hedeflerden biridir. Düğümdeki $NODE_IP
belirli bir bağlantı noktasını hedeflemek için zaten her ama-metrics
eklenti kapsayıcısı için ayarlanmış ortam değişkenini kullanır.
- job_name: nodesample
scrape_interval: 30s
scheme: http
metrics_path: /metrics
relabel_configs:
- source_labels: [__metrics_path__]
regex: (.*)
target_label: metrics_path
- source_labels: [__address__]
replacement: '$NODE_NAME'
target_label: instance
static_configs:
- targets: ['$NODE_IP:9100']
Sonraki adımlar
- Prometheus ölçümlerini toplama hakkında daha fazla bilgi edinin.