Aracılığıyla paylaş


Kapsayıcı içgörüleri ile Log Analytics çalışma alanına Prometheus ölçümleri gönderme

Bu makalede, Kapsayıcı içgörüleri tarafından izlenen Kubernetes kümenizden Log Analytics çalışma alanına Prometheus ölçümleri gönderme açıklanmaktadır. Bu yapılandırmayı gerçekleştirmeden önce, kümelerinizi izlemek için önerilen yöntem olan Prometheus için Azure İzleyici yönetilen hizmetini kullanarak kümenizden Prometheus ölçümlerini kazıdığınızdan emin olmanız gerekir. Bu makalede açıklanan yapılandırmayı yalnızca aynı verileri günlük sorgularını ve günlük arama uyarılarını kullanarak çözümleyebileceğiniz bir Log Analytics çalışma alanına göndermek istiyorsanız kullanın.

Bu yapılandırma, Azure İzleyici aracısı için izleme eklentisinin yapılandırılmasını gerektirir. Bu, Kapsayıcı içgörüleri tarafından Log Analytics çalışma alanına veri göndermek için kullanılanla aynıdır. Prometheus ölçüm uç noktasının dışarı aktarmalarınız veya podlarınız aracılığıyla gösterilmesi ve ardından aşağıdaki diyagramda gösterildiği gibi Kapsayıcı içgörüleri tarafından kullanılan Azure İzleyici aracısı için izleme eklentisini yapılandırmanız gerekir.

Diagram of container monitoring architecture sending Prometheus metrics to Azure Monitor Logs.

Prometheus kazıma ayarları (günlük olarak depolanan ölçümler için)

Prometheus'tan alınan ölçümlerin etkin kazınma işlemi aşağıdaki iki perspektiften birinden gerçekleştirilir ve ölçümler yapılandırılmış log analytics çalışma alanına gönderilir:

  • Küme genelinde: [Prometheus data_collection_settings.cluster] ConfigMap bölümünde tanımlanır.
  • Düğüm genelinde: [Prometheus_data_collection_settings.node] ConfigMap bölümünde tanımlanır.
Uç nokta Kapsam Örnek
Pod ek açıklaması Küme genelinde prometheus.io/scrape: "true"
prometheus.io/path: "/mymetrics"
prometheus.io/port: "8000"
prometheus.io/scheme: "http"
Kubernetes hizmeti Küme genelinde http://my-service-dns.my-namespace:9100/metrics
http://metrics-server.kube-system.svc.cluster.local/metrics
URL/uç nokta Düğüm başına ve/veya küme genelinde http://myurl:9101/metrics

URL belirtildiğinde Kapsayıcı içgörüleri yalnızca uç noktayı kazır. Kubernetes hizmeti belirtildiğinde hizmet adı, IP adresini almak için küme DNS sunucusuyla çözümlenir. Ardından çözümlenen hizmet kazınmış olur.

Kapsam Anahtar Veri türü Value Açıklama
Küme genelinde Ölçümler için uç noktaları kazımak için aşağıdaki üç yöntemden birini belirtin.
urls String Virgülle ayrılmış dizi HTTP uç noktası (IP adresi veya geçerli URL yolu belirtildi). Örneğin: urls=[$NODE_IP/metrics]. ($NODE_IP belirli bir Container insights parametresidir ve düğüm IP adresi yerine kullanılabilir. Tümü büyük harf olmalıdır.)
kubernetes_services String Virgülle ayrılmış dizi Kube-state-metrics'ten ölçümleri kazımak için bir dizi Kubernetes hizmeti. Tam etki alanı adları burada kullanılmalıdır. Örneğin,kubernetes_services = ["http://metrics-server.kube-system.svc.cluster.local/metrics",http://my-service-dns.my-namespace.svc.cluster.local:9100/metrics]
monitor_kubernetes_pods Boolean true veya false Küme genelindeki ayarlarda olarak ayarlandığında true , Container insights aracısı aşağıdaki Prometheus ek açıklamaları için kubernetes podlarını kümenin tamamında kazır:
prometheus.io/scrape:
prometheus.io/scheme:
prometheus.io/path:
prometheus.io/port:
prometheus.io/scrape Boolean true veya false Podun kazınması sağlar ve monitor_kubernetes_pods olarak trueayarlanmalıdır.
prometheus.io/scheme String http Varsayılan olarak HTTP üzerinden kazıma yapılır.
prometheus.io/path String Virgülle ayrılmış dizi Ölçümlerin getirildiği HTTP kaynak yolu. Ölçüm yolu değilse /metrics, bunu bu ek açıklamayla tanımlayın.
prometheus.io/port String 9102 Kazınacak bağlantı noktasını belirtin. Bağlantı noktası ayarlı değilse varsayılan olarak 9102 olur.
monitor_kubernetes_pods_namespaces String Virgülle ayrılmış dizi Kubernetes podlarından ölçümleri kazımak için ad alanlarının izin verilenler listesi.
Örneğin monitor_kubernetes_pods_namespaces = ["default1", "default2", "default3"]
Düğüm genelinde urls String Virgülle ayrılmış dizi HTTP uç noktası (IP adresi veya geçerli URL yolu belirtildi). Örneğin: urls=[$NODE_IP/metrics]. ($NODE_IP belirli bir Container insights parametresidir ve düğüm IP adresi yerine kullanılabilir. Tümü büyük harf olmalıdır.)
Düğüm genelinde veya küme genelinde interval String 60 sn Koleksiyon aralığı varsayılanı bir dakikadır (60 saniye). [prometheus_data_collection_settings.node] ve/veya [prometheus_data_collection_settings.cluster] koleksiyonunu s, m ve h gibi zaman birimleriyle değiştirebilirsiniz.
Düğüm genelinde veya küme genelinde fieldpass
fielddrop
String Virgülle ayrılmış dizi İzin ver () ve izin verme (fieldpassfielddrop) listesini ayarlayarak uç noktadan belirli ölçümlerin toplanıp toplanmayacağını belirtebilirsiniz. önce izin verilenler listesini ayarlamanız gerekir.

Prometheus kazıma yapılandırmasını belirtmek için Yapılandırma Haritalar yapılandırın (günlük olarak depolanan ölçümler için)

Kümeniz için ConfigMap yapılandırma dosyanızı yapılandırmak için aşağıdaki adımları gerçekleştirin. Yapılandırma Haritalar genel bir listedir ve aracıya yalnızca bir ConfigMap uygulanabilir. Koleksiyonları geçersiz Haritalar başka bir Yapılandırmaya sahip olamazsınız.

  1. Şablon ConfigMap YAML dosyasını indirin ve container-azm-ms-agentconfig.yaml olarak kaydedin. Kümenize zaten bir ConfigMap dağıttıysanız ve daha yeni bir yapılandırmayla güncelleştirmek istiyorsanız, daha önce kullandığınız ConfigMap dosyasını düzenleyebilirsiniz.

  2. Prometheus ölçümlerini kazımak için ConfigMap YAML dosyasını özelleştirmelerinizle düzenleyin.

    Küme genelinde Kubernetes hizmetlerini toplamak için aşağıdaki örneği kullanarak ConfigMap dosyasını yapılandırın:

    prometheus-data-collection-settings: |- ​
    # Custom Prometheus metrics data collection settings
    [prometheus_data_collection_settings.cluster] ​
    interval = "1m"  ## Valid time units are s, m, h.
    fieldpass = ["metric_to_pass1", "metric_to_pass12"] ## specify metrics to pass through ​
    fielddrop = ["metric_to_drop"] ## specify metrics to drop from collecting
    kubernetes_services = ["http://my-service-dns.my-namespace:9102/metrics"]
    
  3. Aşağıdaki kubectl komutunu çalıştırın: kubectl apply -f <configmap_yaml_file.yaml>.

    Örnek: kubectl apply -f container-azm-ms-agentconfig.yaml.

Yapılandırma değişikliğinin geçerlilik kazanması birkaç dakika sürebilir. Kümedeki tüm ama-logs podları yeniden başlatılır. Yeniden başlatmalar tamamlandığında, aşağıdakine benzer ve sonucunu configmap "container-azm-ms-agentconfig" creatediçeren bir ileti görüntülenir.

Yapılandırmayı doğrulama

Yapılandırmanın bir kümeye başarıyla uygulandığını doğrulamak için aşağıdaki komutu kullanarak aracı podundan günlükleri gözden geçirin: kubectl logs ama-logs-fdf58 -n=kube-system.

Azure İzleyici Aracısı podlarından yapılandırma hataları varsa, çıktı aşağıdaki örneğe benzer hatalar gösterir:

***************Start Config Processing******************** 
config::unsupported/missing config schema version - 'v21' , using defaults

Yapılandırma değişikliklerini uygulamayla ilgili hatalar da gözden geçirilebilir. Yapılandırma değişiklikleri ve Prometheus ölçümlerini kazıma ile ilgili ek sorun giderme işlemleri gerçekleştirmek için aşağıdaki seçenekler kullanılabilir:

  • Aracı podundan aynı kubectl logs komutu kullanarak günlüğe kaydeder.

  • Canlı Verilerden. Canlı Veri günlükleri aşağıdaki örneğe benzer hatalar gösterir:

    2019-07-08T18:55:00Z E! [inputs.prometheus]: Error in plugin: error making HTTP request to http://invalidurl:1010/metrics: Get http://invalidurl:1010/metrics: dial tcp: lookup invalidurl on 10.0.0.10:53: no such host
    
  • Log Analytics çalışma alanınızdaki KubeMonAgentEvents tablosundan. Veriler, kazıma hataları için uyarı önem derecesi ve yapılandırma hataları için hata önem derecesi ile saatte bir gönderilir. Hata yoksa, tablodaki girdide önem derecesi Bilgisi olan veriler bulunur ve bu veriler hata bildirmez. Tags özelliği, hatanın oluştuğu pod ve kapsayıcı kimliği ve ayrıca son saat içindeki ilk oluşum, son oluşum ve sayı hakkında daha fazla bilgi içerir.

  • Azure Red Hat OpenShift v3.x ve v4.x için, openshift-azure-logging günlük koleksiyonunun etkinleştirilip etkinleştirilmediğini doğrulamak için ContainerLog tablosunda arama yaparak Azure İzleyici Aracısı günlüklerini denetleyin.

Hatalar, Azure İzleyici Aracısı'nın dosyayı ayrıştırmasını önleyerek yeniden başlatılmasına ve varsayılan yapılandırmayı kullanmasına neden olur. Azure Red Hat OpenShift v3.x dışındaki kümelerde ConfigMap hatalarını düzeltdikten sonra YAML dosyasını kaydedin ve komutunu kubectl apply -f <configmap_yaml_file.yamlçalıştırarak güncelleştirilmiş Config Haritalar uygulayın.

Azure Red Hat OpenShift v3.x için komutunu oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-loggingçalıştırarak güncelleştirilmiş Config Haritalar düzenleyin ve kaydedin.

Prometheus ölçüm verilerini sorgulama

Azure İzleyici tarafından kazınan Prometheus ölçümlerini ve aracı tarafından bildirilen yapılandırma/kazıma hatalarını görüntülemek için Sorgu Prometheus ölçüm verileri'ni gözden geçirin.

Grafana'da Prometheus ölçümlerini görüntüleme

Kapsayıcı içgörüleri, Grafana panolarında Log Analytics çalışma alanınızda depolanan ölçümlerin görüntülenmesini destekler. Grafana'nın pano deposundan indirebileceğiniz bir şablon sağladık. Şablonu kullanarak kullanmaya başlayın ve özel Grafana panolarında görselleştirmek üzere izlenen kümelerinizden diğer verileri sorgulamayı öğrenmenize yardımcı olması için şablona başvurun.

Sonraki adımlar