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-configbir 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_timeoutve external_labelsayarlamak için genel scrape_intervalbö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