Udostępnij za pośrednictwem


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.

  1. 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 w kube-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
  2. 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 w kube-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 niestandardowych
  3. ama-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 w kube-system przestrzeni nazw klastra
  4. ama-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 w kube-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-configmapdodaj 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-listi 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/00000000-0000-0000-0000-000000000000/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.

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

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

Jeśli używasz basic_auth ustawienia w konfiguracji prometheus, wykonaj kroki —

  1. 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.

  1. 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.

  1. 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.

  2. 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