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"
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 i tokeny elementu nośnego
Aby użyć ustawień basic_auth
lub bearer_token
w konfiguracji prometheus, wykonaj poniższe kroki:
Utwórz wpis tajny w
kube-system
przestrzeni nazw o nazwieama-metrics-mtls-secret
.Nazwa klucza
password1
może być niczym, o ile jest zgodna z nazwą pliku wpassword_file
ścieżce plików w konfiguracji Prometheus w następnym kroku. Wartość klucza musi być zakodowana w formacie base64.apiVersion: v1 kind: Secret metadata: name: ama-metrics-mtls-secret namespace: kube-system type: Opaque data: password1: <base64-encoded-string>
Wpis
ama-metrics-mtls-secret
tajny jest instalowany naama-metrics
zasobnikach na ścieżce/etc/prometheus/certs/
i jest udostępniany do złomowania Prometheus. Klucz (password1
w powyższym przykładzie) będzie nazwą pliku. Wartość jest zdekodowana i dodawana jako zawartość pliku w kontenerze.Następnie w niestandardowej konfiguracji scrape w configmap podaj ścieżkę pliku:
Uwierzytelnianie podstawowe
Pole
username
powinno zawierać rzeczywisty ciąg nazwy użytkownika. Polepassword_file
powinno zawierać ścieżkę do pliku zawierającego hasło.# Sets the `Authorization` header on every scrape request with the # configured username and password. basic_auth: username: <username string> password_file: /etc/prometheus/certs/password1
Token elementu nośnego
Pole
bearer_token_file
powinno zawierać ścieżkę do pliku zawierającego token.# Sets the `Authorization` header on every scrape request with the bearer token # read from the configured file. It is mutually exclusive with `bearer_token`. bearer_token_file: /etc/prometheus/certs/password1
Więcej informacji na temat tych ustawień można znaleźć w dokumentacji rozwiązania Prometheus scrape_config.
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 chcesz zeskrobać metryki Rozwiązania Prometheus z punktu końcowego https, konfiguracja Rozwiązania Prometheus, PodMonitor lub ServiceMonitor powinny mieć ustawioną scheme
wartość https
i dodatkowe ustawienia protokołu TLS.
Utwórz wpis tajny w
kube-system
przestrzeni nazw o nazwieama-metrics-mtls-secret
. Każda para klucz-wartość określona w sekcji danych obiektu tajnego zostanie zainstalowany jako oddzielny plik w tej lokalizacji /etc/prometheus/certs z nazwami plików, które są takie same jak klucze określone w sekcji danych. Wartości wpisów tajnych powinny być zakodowane w formacie base64.Poniżej znajduje się przykład YAML wpisu tajnego:
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
ama-metrics-mtls-secret
tajny jest instalowany naama-metrics
zasobnikach na ścieżce/etc/prometheus/certs/
i jest udostępniany do złomowania Prometheus. Klucz (password1
w powyższym przykładzie) będzie nazwą pliku. Wartość jest zdekodowana i dodawana jako zawartość pliku w kontenerze.Następnie w konfiguracji Prometheus, PodMonitor lub ServiceMonitor podaj ścieżkę pliku:
- Aby podać ustawienie konfiguracji protokołu TLS w mapie konfiguracji, postępuj zgodnie z poniższym przykładem:
tls_config:
# CA certificate to validate API server certificate with.
ca_file: /etc/prometheus/certs/<certfile>
# Certificate and key files for client cert authentication to the server.
cert_file: /etc/prometheus/certs/<certfile>
key_file: /etc/prometheus/certs/<keyfile>
# Disable validation of the server certificate.
insecure_skip_verify: false
Uwierzytelnianie podstawowe i protokół TLS
Jeśli chcesz użyć ustawień uwierzytelniania podstawowego i TLS w configmap/CRD, upewnij się, że wpis tajny ama-metrics-mtls-secret
zawiera wszystkie klucze w sekcji danych z odpowiednimi wartościami zakodowanymi w formacie base64, 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 jest obowiązkowa /etc/prometheus/certs/
, ale password1
może być dowolnym ciągiem i musi być zgodna 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.
Wartość zakodowana w formacie base64 jest automatycznie dekodowana przez zasobniki ama-metrics, gdy wpis tajny jest instalowany jako plik.
Upewnij się, że nazwa wpisu tajnego to ama-metrics-mtls-secret
i znajduje się w kube-system
przestrzeni nazw.
Najpierw należy utworzyć wpis tajny, a następnie configmap, PodMonitor lub ServiceMonitor należy utworzyć w kube-system
przestrzeni nazw. Kolejność tajnego tworzenia ma znaczenie. Jeśli nie ma wpisu tajnego, ale mapa konfiguracji, podMonitor lub ServiceMonitor wskazujący wpis tajny, w dziennikach kontenerów ama-metrics prometheus-collector zostanie wyświetlony następujący błąd: 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