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.
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. Meselakubernetes_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 true ayarlanmalı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 (fieldpass fielddrop ) 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 ConfigMap'leri yapılandırma (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. ConfigMap'ler genel bir listedir ve aracıya yalnızca bir ConfigMap uygulanabilir. Koleksiyonları geçersiz hale başka bir ConfigMap'iniz olamaz.
Ş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.
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"]
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" created
iç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ş ConfigMap'leri 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ş ConfigMap'leri 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
- Prometheus ölçümleri için varsayılan yapılandırmaya bakın.
- Küme için Prometheus ölçüm kazıma işlemini özelleştirin.