Deployment monitoringu na klaster EKS

Utworzyłeś sobie klaster AWS EKS, ale nie bardzo masz pomysł w jaki sposób możesz go monitorować? Na pomoc przychodzi nam helm oraz kube-prometheus-stack, który zawiera Prometheus oraz Grafanę do monitoringu. W poniższym artykule, pokażę jak wdrożyć monitoring na swój klaster AWS EKS.

Na początku potrzebujemy mieć zrobione dwie rzeczy:

  1. Skonfigurowany klaster AWS EKS, jak to zrobić opisywałem w tym artykule https://cloud-devops.pl/tworzenie-klastra-kubernetes-przy-pomocy-aws-eks/
  2. Drugą rzeczą jest zainstalowany Helm na lokalnym komputerze, proces instalacji znajdziecie pod tym adresem https://helm.sh/docs/intro/install/

1. Pobranie paczki kube-prometheus-stack

W pierwszej kolejności musimy pobrać powyższą paczkę, możemy to zrobić na 2 sposoby:

  1. Przechodzimy pod ten adres https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack?modal=install i w dolnym prawym rogu, jest bezpośredni link do pobrania paczki
  2. Drugi sposób, to pobrania ostatniej wersji przy pomocy wget:
    wget https://github.com/prometheus-community/helm-charts/releases/download/kube-prometheus-stack-45.28.0/kube-prometheus-stack-45.28.0.tgz

Następnie musimy rozpakować paczkę, przy pomocy polecenia:
tar xzvf kube-prometheus-stack-45.28.0.tgz && cd kube-prometheus-stack

2. Nadpisanie domyślnych wartości

Jak każdy dobrze ogarnięty system monitoringu, powinien mieć chociażby powiadomienie e-mail, gdyby coś było nie tak. Domyślnie paczka kube-prometheus-stack, nie ma skofigurowanej poczty SMTP, w związku z czym, musimy utworzyć własny plik z wartościami i w nim ustawić dane do naszego serwera SMTP. Tworzymy plik myValues.yml, z poniższymi wartościami

grafana:
  grafana.ini:
    smtp:
      enabled: true
      host: mail_host:port
      existingSecret: ""
      from_address: adres_email
      user: nazwa_użytkownika
      password: hasło_uzytkownika
  adminPassword: admin12345

Oczywiście, zamiast podawać user oraz password, możemy podpiąć istniejący secret, ale to innym razem 🙂 Dodatkowo oprócz konfiguracji serwera SMTP, dodałem opcję zmiany domyślnego hasła administratora. Powinno być trudniejsze niż admin12345, ale to tylko przykładowo, aby sprawdzić czy wszystko działa.

3. Instalacja paczki helm

Najgorsze mamy za sobą, teraz zostało nam zainstalować paczkę, robimy to poniższym poleceniem

helm install monitoring -f myValues.yaml .

Oczywiście, musimy być w katalogu z naszą paczką, ponieważ kropka na końcu, wskazuje nam, że mamy zainstalować paczkę z bieżącego katalogu. Jeżeli wszystko przebiegło pomyślnie, powinniśmy dostać zwrotkę, podobną do poniższej

NAME: monitoring
LAST DEPLOYED: Tue May 16 13:58:19 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
kubectl –namespace default get pods -l „release=monitoring”

Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.

4. Dostęp do Grafany

Jako, że zainstalowaliśmy paczkę na klastrze AWS, wraz z jej instalacją, został automatycznie utworzony Load Balancer do grafany, dzięki któremu dostaniemy się do naszego panelu. Aby poznać adres url naszej grafany, wystarczy wykonać poniższe polecenie, które zwróci nam tylko adresu url do Load Balancera

kubectl get svc | grep grafana | awk '{print $4}'

Domyślny użytkownik to admin, natomiast hasło jest takie, jakie ustawiliśmy w pliku myValues.yml.

Artykuł krótki, ale mam nadzieję, że komuś pomoże dodać monitoring do swojego klastra 🙂

Related Posts