Dostosowywanie złomowania metryk rozwiązania Prometheus w usłudze zarządzanej Azure Monitor dla rozwiązania Prometheus
Ten artykuł zawiera instrukcje dotyczące dostosowywania skrawalania metryk dla klastra Kubernetes za pomocą dodatku metryk w usłudze Azure Monitor.
Configmaps
Cztery różne mapy konfiguracji można skonfigurować tak, aby zapewnić konfigurację zeskropka i inne ustawienia dodatku metryk. Wszystkie mapy konfiguracji powinny być stosowane do kube-system
przestrzeni nazw dla dowolnego klastra.
Uwaga
Żadne z czterech map konfiguracji nie istnieje domyślnie w klastrze po włączeniu zarządzanego rozwiązania Prometheus. W zależności od tego, co należy dostosować, należy wdrożyć dowolne lub wszystkie z tych czterech map konfiguracji o tej samej nazwie określonej w kube-system
przestrzeni nazw. Zasobniki AMA-Metrics pobierają te mapy konfiguracji po ich wdrożeniu w kube-system
przestrzeni nazw i zostaną uruchomione ponownie w ciągu 2–3 minut, aby zastosować ustawienia konfiguracji określone w mapach konfiguracji.
ama-metrics-settings-configmap
Ta mapa konfiguracji ma poniżej prostych ustawień, które można skonfigurować. Configmap można pobrać z powyższego repozytorium usługi Git Hub, zmienić ustawienia są wymagane i zastosować/wdrożyć mapę konfiguracji wkube-system
przestrzeni nazw klastra- alias klastra (aby zmienić wartość
cluster
etykiety w każdej metryce/serii czasowej pozyskiwanej z klastra) - włącz/wyłącz domyślne elementy docelowe zeskrobania — włącz/WYŁĄCZ domyślne złomowanie na podstawie elementów docelowych. Konfiguracja złomowania dla tych domyślnych obiektów docelowych jest już wstępnie zdefiniowana/wbudowana
- włączanie wycinków na podstawie adnotacji zasobników na przestrzeń nazw
- lista utrzymania metryki — to ustawienie służy do kontrolowania, które metryki są wyświetlane jako dozwolone z każdego domyślnego obiektu docelowego i zmiany domyślnego zachowania
- scrape interwały dla domyślnych/pre-definetargets.
30 secs
jest domyślną częstotliwością złomowania i można ją zmienić na domyślny obiekt docelowy przy użyciu tej mapy konfiguracji - tryb debugowania — włączenie tego włączania pomaga debugować brakujące problemy z metryki/pozyskiwaniem — zobacz więcej na temat rozwiązywania problemów
- alias klastra (aby zmienić wartość
ama-metrics-prometheus-config
Ta mapa konfiguracji może służyć do zapewnienia konfiguracji złomowania Prometheus dla repliki dodatku. Dodatek uruchamia pojedynczą replikę, a wszystkie usługi na poziomie klastra można odnaleźć i zeskrobać, zapewniając zadania zeskrobania w tej mapie konfiguracji. Przykładową mapę konfiguracji można pobrać z powyższego repozytorium usługi Git Hub, dodać potrzebne zadania zeskropka i zastosować/wdrożyć mapę konfiguracji wkube-system
przestrzeni nazw klastra. Mimo że jest to obsługiwane, należy pamiętać, że zalecanym sposobem złomowania niestandardowych obiektów docelowych jest użycie zasobów niestandardowychama-metrics-prometheus-config-node
(Zaawansowane) Ta mapa konfiguracji może służyć do zapewnienia konfiguracji złomowania Rozwiązania Prometheus dla dodatku DaemonSet, który działa w każdym węźle systemu Linux w klastrze, a wszystkie elementy docelowe na poziomie węzła w każdym węźle można zeskrobać, zapewniając zadania złomowania w tej mapie konfiguracji. W przypadku korzystania z tej mapy konfiguracji można użyć$NODE_IP
zmiennej w konfiguracji scrape, która jest zastępowana przez odpowiedni adres IP węzła w zasobniku DaemonSet uruchomionym w każdym węźle. Dzięki temu uzyskasz dostęp do zeskrobania wszystkich elementów uruchamianych w tym węźle z dodatku daemon DaemonSet metryk. Należy zachować ostrożność podczas używania odnajdywania w konfiguracji zeskrobania w tej mapie konfiguracji na poziomie węzła, ponieważ każdy węzeł w klastrze skonfiguruje i odnajdzie obiekty docelowe i zbierze nadmiarowe metryki. Przykładową mapę konfiguracji można pobrać z powyższego repozytorium usługi Git Hub, dodać potrzebne zadania i zastosować/wdrożyć mapę konfiguracji wkube-system
przestrzeni nazw klastraama-metrics-prometheus-config-node-windows
(Zaawansowane) Ta mapa konfiguracji może służyć do zapewnienia konfiguracji złomowania Rozwiązania Prometheus dla dodatku DaemonSet, który działa w każdym węźle systemu Windows w klastrze, a elementy docelowe na poziomie węzła w każdym węźle można złomować, dostarczając zadania zeskropka w tej mapie konfiguracji. W przypadku korzystania z tej mapy konfiguracji można użyć$NODE_IP
zmiennej w konfiguracji scrape, która zostanie zastąpiona przez odpowiedni adres IP węzła w zasobniku DaemonSet uruchomionym w każdym węźle. Dzięki temu uzyskasz dostęp do zeskrobania wszystkich elementów uruchamianych w tym węźle z dodatku daemon DaemonSet metryk. Należy zachować ostrożność podczas używania odnajdywania w konfiguracji zeskrobania w tej mapie konfiguracji na poziomie węzła, ponieważ każdy węzeł w klastrze skonfiguruje i odnajdzie obiekty docelowe i zbierze nadmiarowe metryki. Przykładową mapę konfiguracji można pobrać z powyższego repozytorium usługi Git Hub, dodać potrzebne zadania i zastosować/wdrożyć mapę konfiguracji wkube-system
przestrzeni nazw klastra
Niestandardowe definicje zasobów
Dodatek metryk usługi Azure Monitor obsługuje złomowanie metryk Rozwiązania Prometheus przy użyciu monitorów zasobników i monitorów usług, podobnie jak operator Prometheus systemu operacyjnego. Włączenie dodatku spowoduje wdrożenie niestandardowych definicji zasobów Zasobnik i Monitor usługi, aby umożliwić tworzenie własnych zasobów niestandardowych. Postępuj zgodnie z instrukcjami, aby utworzyć i zastosować zasoby niestandardowe w klastrze.
Mapa konfiguracji ustawień dodatku metryk
Narzędzie ama-metrics-settings-configmap można pobrać, edytować i zastosować do klastra w celu dostosowania wbudowanych funkcji dodatku metryk.
Włączanie i wyłączanie domyślnych obiektów docelowych
W poniższej tabeli znajduje się lista wszystkich domyślnych elementów docelowych, które dodatek metryk usługi Azure Monitor może domyślnie zeskrobać i czy jest on początkowo włączony. Domyślne cele są złomowane co 30 sekund. Replika jest wdrażana w celu złomowania obiektów docelowych obejmujących cały klaster, takich jak kube-state-metrics. Zestaw DaemonSet jest również wdrażany w celu złomowania obiektów docelowych obejmujących cały węzeł, takich jak kubelet.
Klucz | Typ | Włączona | Zasobnik | opis |
---|---|---|---|---|
kubelet | bool | true |
Linux DaemonSet | Scrape kubelet w każdym węźle w klastrze K8s bez dodatkowej konfiguracji zeskrobania. |
cadvisor | bool | true |
Linux DaemonSet | Scrape cadvisor w każdym węźle w klastrze K8s bez dodatkowej konfiguracji zeskrobania. Tylko system Linux. |
kubestate | bool | true |
Replika systemu Linux | Scrape kube-state-metrics w klastrze K8s (zainstalowany jako część dodatku) bez dodatkowej konfiguracji zeskrobania. |
nodeexporter | bool | true |
Linux DaemonSet | Metryki zeskrobania węzłów bez dodatkowej konfiguracji zeskrobania. Tylko system Linux. |
coredns | bool | false |
Replika systemu Linux | Złomowanie usługi coredns w klastrze K8s bez dodatkowej konfiguracji zeskrobania. |
kubeproxy | bool | false |
Linux DaemonSet | Scrape kube-proxy w każdym węźle systemu Linux odnalezionym w klastrze K8s bez dodatkowej konfiguracji zeskrobania. Tylko system Linux. |
apiserver | bool | false |
Replika systemu Linux | Złomowanie serwera interfejsu API Kubernetes w klastrze K8s bez dodatkowej konfiguracji zeskrobania. |
windowsexporter | bool | false |
Zestaw demonów systemu Windows | Złomuje eksportera okien w każdym węźle w klastrze K8s bez dodatkowej konfiguracji złomowania. Tylko system Windows. |
windowskubeproxy | bool | false |
Zestaw demonów systemu Windows | Scrape windows-kube-proxy w każdym węźle w klastrze K8s bez dodatkowej konfiguracji zeskrobania. Tylko system Windows. |
prometheuscollectorhealth | bool | false |
Replika systemu Linux | Złomowanie informacji o kontenerze prometheus-collector, takich jak ilość i rozmiar szeregów czasowych zeskrobanych. |
Jeśli chcesz włączyć złomowanie domyślnych obiektów docelowych, które nie są domyślnie włączone, zmodyfikuj mapę ama-metrics-settings-configmap
konfiguracji, aby zaktualizować obiekty docelowe wymienione poniżej default-scrape-settings-enabled
na .true
Zastosuj configmap do klastra.
Włączanie złomowania opartego na adnotacjach zasobnika
Aby zeskropać zasobniki aplikacji bez konieczności tworzenia niestandardowej konfiguracji Rozwiązania Prometheus, adnotacje można dodać do zasobników. Adnotacja prometheus.io/scrape: "true"
jest wymagana do złomowania zasobnika. Adnotacje prometheus.io/path
i prometheus.io/port
wskazują ścieżkę i port, na których są hostowane metryki na zasobniku. Adnotacje dla zasobnika obsługującego metryki <pod IP>:8080/metrics
będą następujące:
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '8080'
Złomowanie tych zasobników z określonymi adnotacjami jest domyślnie wyłączone. Aby włączyć, w pliku ama-metrics-settings-configmap
dodaj wyrażenie regularne dla przestrzeni nazw zasobników z adnotacjami, które chcesz zeskrobać jako wartość pola podannotationnamespaceregex
.
Na przykład następujące ustawienie powoduje złomowanie zasobników z adnotacjami tylko w przestrzeniach kube-system
nazw i my-namespace
:
pod-annotation-based-scraping: |-
podannotationnamespaceregex = "kube-system|my-namespace"
Aby włączyć złomowanie zasobników z adnotacjami we wszystkich przestrzeniach nazw, użyj:
pod-annotation-based-scraping: |-
podannotationnamespaceregex = ".*"
Ostrzeżenie
Złomowanie adnotacji zasobników z wielu przestrzeni nazw może wygenerować bardzo dużą liczbę metryk w zależności od liczby zasobników, które mają adnotacje.
Dostosowywanie metryk zebranych domyślnie elementów docelowych
Domyślnie dla wszystkich domyślnych obiektów docelowych tylko minimalne metryki używane w domyślnych regułach rejestrowania, alertach i pulpitach nawigacyjnych Grafana są pozyskiwane zgodnie z opisem w profilu minimalnego pozyskiwania. Aby zebrać wszystkie metryki z domyślnych obiektów docelowych, zaktualizuj listy keep-list w mapie ustawień w obszarze default-targets-metrics-keep-list
i ustaw wartość minimalingestionprofile
false
.
Aby dodać więcej metryk do listy dozwolonych oprócz domyślnych metryk, które mają być dozwolone, w przypadku wszystkich domyślnych miejsc docelowych edytuj ustawienia w obszarze default-targets-metrics-keep-list
odpowiedniego zadania, które chcesz zmienić.
Na przykład kubelet
to ustawienie filtrowania metryk dla domyślnego docelowego kubeletu. Użyj następującego skryptu, aby filtrować metryki zebrane dla domyślnych elementów docelowych przy użyciu filtrowania opartego na wyrażeniach regularnych.
kubelet = "metricX|metricY"
apiserver = "mymetric.*"
Uwaga
Jeśli używasz cudzysłowów lub ukośników odwrotnych w regex, musisz je użyć ukośnika odwrotnego, takiego jak przykłady "test\'smetric\"s\""
i testbackslash\\*
.
Aby dodatkowo dostosować zadania domyślne, aby zmienić właściwości, takie jak częstotliwość kolekcji lub etykiety, wyłącz odpowiedni domyślny element docelowy, ustawiając wartość configmap dla obiektu docelowego na false
. Następnie zastosuj zadanie przy użyciu niestandardowej mapy konfiguracji. Aby uzyskać szczegółowe informacje na temat konfiguracji niestandardowej, zobacz Dostosowywanie złomowania metryk rozwiązania Prometheus w usłudze Azure Monitor.
Alias klastra
Etykieta klastra dołączona do każdej serii zezłomowanej używa ostatniej części identyfikatora zasobu usługi Azure Resource Manager pełnego klastra usługi AKS. Jeśli na przykład identyfikator zasobu to /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-name/providers/Microsoft.ContainerService/managedClusters/myclustername
, etykieta klastra to myclustername
.
Aby zastąpić etykietę klastra w szeregach czasowych zezłomowanych, zaktualizuj ustawienie cluster_alias
na dowolny ciąg w prometheus-collector-settings
configmap ama-metrics-settings-configmap
. Tę mapę konfiguracji można utworzyć, jeśli nie istnieje w klastrze lub edytować istniejącą, jeśli już istnieje w klastrze.
Nowa etykieta jest również wyświetlana na liście rozwijanej parametrów klastra na pulpitach nawigacyjnych narzędzia Grafana zamiast domyślnego.
Uwaga
Dozwolone są tylko znaki alfanumeryczne. Wszystkie inne znaki są zastępowane znakiem _
. Ta zmiana polega na upewnieniu się, że różne składniki, które używają tej etykiety, są zgodne z podstawową konwencją alfanumeryczną.
Jeśli włączasz reguły rejestrowania i zgłaszania alertów, pamiętaj, aby użyć nazwy aliasu klastra w parametrze nazwy klastra szablonu dołączania reguły, aby reguły działały.
Tryb debugowania
Ostrzeżenie
Ten tryb może mieć wpływ na wydajność i powinien być włączony tylko przez krótki czas na potrzeby debugowania.
Aby wyświetlić każdą metrykę, która jest złomowana do celów debugowania, można skonfigurować agenta dodatku metryk do uruchamiania w trybie debugowania, aktualizując ustawienie enabled
na wartość w debug-mode
obszarze ustawienia w configmap ama-metrics-settings-configmap
.true
Możesz utworzyć tę mapę konfiguracji lub edytować istniejącą. Aby uzyskać więcej informacji, zobacz sekcję Tryb debugowania w sekcji Rozwiązywanie problemów z kolekcją metryk rozwiązania Prometheus.
Ustawienia interwału zeskrobania
Aby zaktualizować ustawienia interwału zeskropka dla dowolnego obiektu docelowego, możesz zaktualizować czas trwania dla default-targets-scrape-interval-settings
tego obiektu docelowego w configmap ama-metrics-settings-configmap
. Należy ustawić interwały złomowania w poprawnym formacie określonym w tej witrynie internetowej. W przeciwnym razie wartość domyślna 30 sekund jest stosowana do odpowiednich obiektów docelowych. Na przykład — jeśli chcesz zaktualizować interwał zeskropka dla kubelet
zadania 60s
, możesz zaktualizować następującą sekcję w pliku YAML:
default-targets-scrape-interval-settings: |-
kubelet = "60s"
coredns = "30s"
cadvisor = "30s"
kubeproxy = "30s"
apiserver = "30s"
kubestate = "30s"
nodeexporter = "30s"
windowsexporter = "30s"
windowskubeproxy = "30s"
kappiebasic = "30s"
prometheuscollectorhealth = "30s"
podannotations = "30s"
i zastosuj kod YAML przy użyciu następującego polecenia: kubectl apply -f .\ama-metrics-settings-configmap.yaml
Konfigurowanie niestandardowych zadań złomowania rozwiązania Prometheus
Metryki rozwiązania Prometheus można zeskrobać przy użyciu rozwiązania Prometheus — Monitory zasobników i monitorów usług (zalecane), podobnie jak operator Prometheus systemu operacyjnego. Postępuj zgodnie z instrukcjami, aby utworzyć i zastosować zasoby niestandardowe w klastrze.
Ponadto możesz postępować zgodnie z instrukcjami, aby utworzyć, zweryfikować i zastosować mapę konfiguracji dla klastra. Format konfiguracji jest podobny do pliku konfiguracji Prometheus.
Wskazówki i przykłady dotyczące konfiguracji rozwiązania Prometheus
Zapoznaj się z kilkoma wskazówkami z przykładów w tej sekcji.
- Konfiguracja przy użyciu crD na potrzeby niestandardowej konfiguracji zeskrobania
- Plik konfiguracji niestandardowej konfiguracji zeskrobania
Użyj szablonów Zasobnik i Monitor usługi, a następnie postępuj zgodnie ze specyfikacją interfejsu API, aby utworzyć zasoby niestandardowe (PodMonitor i Service Monitor). Należy pamiętać , że jedyną zmianą wymaganą do istniejących wystąpień CRS systemu operacyjnego do pobrania przez zarządzany prometheus jest grupa interfejsów API — azmonitoring.coreos.com/v1. Zobacz tutaj , aby dowiedzieć się więcej
Uwaga
Jeśli niestandardowa konfiguracja zeskrobania nie zostanie zastosowana z powodu błędów walidacji, domyślna konfiguracja złomowania będzie nadal używana.
Jeśli chcesz użyć ustawień globalnych, które mają zastosowanie do wszystkich zadań zeskrobnięcia i tylko zasoby niestandardowe, nadal musisz utworzyć mapę konfiguracji z tylko ustawieniami globalnymi (ustawienia dla każdego z nich w zasobach niestandardowych zastąpią te w sekcji globalnej)
Konfiguracje zeskrobania
- Scrape Configs using CRD
- Scrape Configs using Config file (Zeskropowanie konfiguracji przy użyciu pliku konfiguracji)
Obecnie obsługiwane metody odnajdywania docelowego dla zasobów niestandardowych to zasobnik i monitor usługi
Monitory zasobników i usług
Obiekty docelowe odnalezione przy użyciu monitorów zasobników i usług mają różne __meta_*
etykiety w zależności od używanego monitora. Za pomocą etykiet w relabelings
sekcji można filtrować elementy docelowe lub zastępować etykiety dla elementów docelowych.
Zapoznaj się z przykładami monitorów zasobników i usług zasobników i monitorów usług.
Ponowne etykietowanie
Sekcja relabelings
jest stosowana w momencie odnajdywania docelowego i ma zastosowanie do każdego obiektu docelowego dla zadania. W poniższych przykładach pokazano sposoby użycia polecenia relabelings
.
Dodaj etykietę
Dodaj nową etykietę o nazwie example_label
z wartością example_value
do każdej metryki zadania. Użyj __address__
jako etykiety źródłowej tylko dlatego, że ta etykieta zawsze istnieje i dodaje etykietę dla każdego miejsca docelowego zadania.
relabelings:
- sourceLabels: [__address__]
targetLabel: example_label
replacement: 'example_value'
Używanie etykiet zasobnika lub monitora usługi
Obiekty docelowe odnalezione przy użyciu monitorów zasobników i usług mają różne __meta_*
etykiety w zależności od używanego monitora. Etykiety __*
są porzucane po odnalezieniu obiektów docelowych. Aby filtrować przy użyciu ich na poziomie metryk, najpierw zachowaj je przy użyciu relabelings
, przypisując nazwę etykiety. Następnie użyj polecenia metricRelabelings
, aby filtrować.
# Use the kubernetes namespace as a label called 'kubernetes_namespace'
relabelings:
- sourceLabels: [__meta_kubernetes_namespace]
action: replace
targetLabel: kubernetes_namespace
# Keep only metrics with the kubernetes namespace 'default'
metricRelabelings:
- sourceLabels: [kubernetes_namespace]
action: keep
regex: 'default'
Ponowne etykietowanie zadań i wystąpień
Możesz zmienić job
wartości etykiet i instance
na podstawie etykiety źródłowej, podobnie jak każda inna etykieta.
# Replace the job name with the pod label 'k8s app'
relabelings:
- sourceLabels: [__meta_kubernetes_pod_label_k8s_app]
targetLabel: job
# Replace the instance name with the node name. This is helpful to replace a node IP
# and port with a value that is more readable
relabelings:
- sourceLabels: [__meta_kubernetes_node_name]]
targetLabel: instance
Uwaga
Jeśli masz ponownie etykiety konfiguracji, upewnij się, że ponowne etykietowanie nie odfiltruje elementów docelowych, a etykiety skonfigurowane poprawnie pasują do elementów docelowych.
Ponowne etykietowanie metryk
Etykiety metryki są stosowane po złomowaniu i przed pozyskiwaniem. metricRelabelings
Użyj sekcji , aby filtrować metryki po złomowaniu. W poniższych przykładach pokazano, jak to zrobić.
Upuść metryki według nazwy
# Drop the metric named 'example_metric_name'
metricRelabelings:
- sourceLabels: [__name__]
action: drop
regex: 'example_metric_name'
Zachowaj tylko niektóre metryki według nazwy
# Keep only the metric named 'example_metric_name'
metricRelabelings:
- sourceLabels: [__name__]
action: keep
regex: 'example_metric_name'
# Keep only metrics that start with 'example_'
metricRelabelings:
- sourceLabels: [__name__]
action: keep
regex: '(example_.*)'
Zmienianie nazwy metryk
Zmiana nazwy metryki nie jest obsługiwana.
Filtrowanie metryk według etykiet
# Keep metrics only where example_label = 'example'
metricRelabelings:
- sourceLabels: [example_label]
action: keep
regex: 'example'
# Keep metrics only if `example_label` equals `value_1` or `value_2`
metricRelabelings:
- sourceLabels: [example_label]
action: keep
regex: '(value_1|value_2)'
# Keep metrics only if `example_label_1 = value_1` and `example_label_2 = value_2`
metricRelabelings:
- sourceLabels: [example_label_1, example_label_2]
separator: ';'
action: keep
regex: 'value_1;value_2'
# Keep metrics only if `example_label` exists as a label
metricRelabelings:
- sourceLabels: [example_label_1]
action: keep
regex: '.+'
Uwierzytelnianie podstawowe
- Scrape Configs using Config file (Zeskropowanie konfiguracji przy użyciu pliku konfiguracji)
- Scrape Configs using CRD(Pod/Service Monitor)
Jeśli używasz basic_auth
ustawienia w konfiguracji prometheus, wykonaj kroki —
- Tworzenie wpisu tajnego w przestrzeni nazw kube-system o nazwie ama-metrics-mtls-secret
Wartość password1 jest zakodowana w formacie base64.
Hasło klucza1 może być dowolne, ale wystarczy dopasować konfigurację scrapeconfig password_file filepath.
apiVersion: v1
kind: Secret
metadata:
name: ama-metrics-mtls-secret
namespace: kube-system
type: Opaque
data:
password1: <base64-encoded-string>
Wpis tajny ama-metrics-mtls-secret jest instalowany w kontenerach ama-metrics w ścieżce — /etc/prometheus/certs/ i jest udostępniany procesowi, który usuwa metryki prometheus. Klucz( ex - password1) w powyższym przykładzie będzie nazwą pliku, a wartość jest zdekodowana i dodawana do zawartości pliku w kontenerze, a złomowiec prometheus używa zawartości tego pliku, aby uzyskać wartość używaną jako hasło używane do złomowania punktu końcowego.
- Na mapie konfiguracji niestandardowej konfiguracji zeskropka użyj następującego ustawienia. Pole nazwy użytkownika powinno zawierać rzeczywisty ciąg nazwy użytkownika. Pole password_file powinno zawierać ścieżkę do pliku zawierającego hasło.
basic_auth:
username: <username string>
password_file: /etc/prometheus/certs/password1
Podając ścieżkę do powyższej password_file, złomator prometheus używa zawartości pliku o nazwie password1 w ścieżce /etc/prometheus/certs jako wartość hasła do podstawowego uwierzytelniania opartego na złomowaniu.
Jeśli używasz zarówno podstawowego uwierzytelniania, jak i uwierzytelniania tls, zapoznaj się z poniższą sekcją. Aby uzyskać więcej informacji, zapoznaj się z poniższą sekcją notatek.
Złomowanie oparte na protokole TLS
Jeśli masz wystąpienie prometheus obsługiwane z protokołem TLS i chcesz z niego zeskrobać metryki, musisz ustawić schemat na https
i ustawić ustawienia protokołu TLS w mapie konfiguracji lub odpowiednim crD.
Wykonaj poniższe kroki.
Utwórz wpis tajny w przestrzeni nazw kube-system o nazwie ama-metrics-mtls-secret. Każda para klucz-wartość określona w sekcji danych obiektu wpisu tajnego zostanie zamontowana jako oddzielny plik w tej lokalizacji /etc/prometheus/certs z nazwami plików tak samo jak klucze określone w sekcji danych. Wartości wpisów tajnych powinny być zakodowane w formacie base64 przed umieszczeniem ich w sekcji danych, tak jak poniżej.
Poniżej przedstawiono przykład tworzenia wpisu tajnego za pomocą kodu YAML.
apiVersion: v1 kind: Secret metadata: name: ama-metrics-mtls-secret namespace: kube-system type: Opaque data: <certfile>: base64_cert_content <keyfile>: base64_key_content
Wpis tajny ama-metrics-mtls-secret jest instalowany w kontenerach ama-metrics w ścieżce — /etc/prometheus/certs/ i jest udostępniany procesowi, który usuwa metryki prometheus. Klucz( ex - certfile) w powyższym przykładzie będzie nazwą pliku, a wartość jest zdekodowana i dodawana do zawartości pliku w kontenerze, a element prometheus używa zawartości tego pliku, aby uzyskać wartość używaną jako hasło używane do złomowania punktu końcowego.
Poniżej przedstawiono szczegółowe informacje o sposobie dostarczania ustawień konfiguracji protokołu TLS za pośrednictwem mapy konfiguracji lub crD.
- Aby podać ustawienie konfiguracji protokołu TLS w mapie konfiguracji, postępuj zgodnie z poniższym przykładem.
tls_config:
ca_file: /etc/prometheus/certs/<certfile> # since it is self-signed
cert_file: /etc/prometheus/certs/<certfile>
key_file: /etc/prometheus/certs/<keyfile>
insecure_skip_verify: false
Uwierzytelnianie podstawowe i protokół TLS
Jeśli chcesz użyć zarówno ustawień uwierzytelniania podstawowego, jak i tls w configmap/CRD, upewnij się, że wpis tajny ama-metrics-mtls-secret zawiera wszystkie pliki(klucze) w sekcji danych z odpowiednimi wartościami zakodowanymi w formacie base 64, jak pokazano poniżej.
apiVersion: v1
kind: Secret
metadata:
name: ama-metrics-mtls-secret
namespace: kube-system
type: Opaque
data:
certfile: base64_cert_content # used for Tls
keyfile: base64_key_content # used for Tls
password1: base64-encoded-string # used for basic auth
password2: base64-encoded-string # used for basic auth
Uwaga
Uwaga
Ścieżka /etc/prometheus/certs/ jest obowiązkowa, ale hasło1 może być dowolnym ciągiem i musi być zgodny z kluczem danych w wpisie tajnym utworzonym powyżej. Dzieje się tak, ponieważ wpis tajny ama-metrics-mtls-secret jest instalowany w ścieżce /etc/prometheus/certs/ w kontenerze.
Zakodowana wartość base64 jest automatycznie dekodowana przez zasobniki agenta, gdy wpis tajny jest instalowany jako plik.
Upewnij się, że nazwa wpisu tajnego to ama-metrics-mtls-secret i znajduje się w przestrzeni nazw kube-system .
Wpis tajny należy utworzyć, a następnie configmap/CRD należy utworzyć w przestrzeni nazw kube-system. Kolejność tajnego tworzenia ma znaczenie. Jeśli nie ma wpisu tajnego, ale prawidłowej mapy CRD/config, w dzienniku modułu zbierającego znajdują się błędy —>no file found for cert....
Aby dowiedzieć się więcej na temat ustawień konfiguracji protokołu TLS, postępuj zgodnie z instrukcjami w tych konfiguracjach.
Następne kroki
Konfigurowanie alertów dotyczących metryk rozwiązania Prometheus
Wykonywanie zapytań względem metryk prometheus
Dowiedz się więcej o zbieraniu metryk rozwiązania Prometheus