Úvod
Prometheus je software pro monitorování událostí s otevřeným zdrojovým kódem pro velkoobjemové distribuované aplikace. Obsahuje metriky a upozornění v reálném čase, flexibilní dotazy, model stahování HTTP a je dobrou volbou pro monitorování clusterů Kubernetes.
Zatímco Prometheus je samostatná aplikace, její použití s řídicím panelem vizualizace pomáhá udržovat lepší přehled o clusteru Kubernetes. Oblíbenou volbou pro tento scénář je Grafana, open-source vizualizační software, který podporuje Prometheus jako zdroj dat hned po vybalení.
Tento výukový program vám ukáže, jak nainstalovat Grafana do clusteru Kubernetes, připojit jej k Prometheus a uspořádat data na řídicích panelech.

Předpoklady
- Cluster Kubernetes
- nainstalován nástroj příkazového řádku kubectl
- Prometheus nainstalován a nastaven
Nainstalovat Grafana
Chcete-li nainstalovat Grafana do clusteru Kubernetes, vytvořte a použijte řadu yaml
soubory.
1. Začněte vytvořením mapy ConfigMap v souboru s názvem grafana-datasource-config.yaml
:
nano grafana-datasource-config.yaml
Soubor se skládá z následujících deklarací:
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: default
data:
prometheus.yaml: |-
{
"apiVersion": 1,
"datasources": [
{
"access":"proxy",
"editable": true,
"name": "prometheus",
"orgId": 1,
"type": "prometheus",
"url": "http://prometheus-service.monitoring.svc:9090",
"version": 1
}
]
}
2. Upravte obsah souboru tak, aby vyhovoval vašim potřebám, zadáním jmenného prostoru, do kterého chcete nainstalovat Grafana.
3. Uložte a ukončete soubor.
4. Aplikujte změny na svůj cluster pomocí kubectl:
kubectl create -f grafana-datasource-config.yaml
Výstup potvrzuje vytvoření mapy ConfigMap:

5. Dále vytvořte yaml
soubor pro nasazení Grafany:
nano deployment.yaml
Soubor obsahuje konfiguraci nasazení Grafany:
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
name: grafana
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- name: grafana
containerPort: 3000
resources:
limits:
memory: "1Gi"
cpu: "1000m"
requests:
memory: 500M
cpu: "500m"
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-storage
- mountPath: /etc/grafana/provisioning/datasources
name: grafana-datasources
readOnly: false
volumes:
- name: grafana-storage
emptyDir: {}
- name: grafana-datasources
configMap:
defaultMode: 420
name: grafana-datasources
6. Uložte soubor a poté jej použijte na cluster:
kubectl create -f deployment.yaml
Výstup potvrzuje vytvoření nasazení:

7. Nakonec vytvořte service.yaml
soubor pro konfiguraci služby Grafana:
nano service.yaml
Soubor se skládá z následujících deklarací:
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: default
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '3000'
spec:
selector:
app: grafana
type: NodePort
ports:
- port: 3000
targetPort: 3000
nodePort: 32000
8. Upravte soubor podle potřeb vašeho clusteru, poté jej uložte a použijte:
kubectl create -f service.yaml
Výstup potvrzuje, že služba byla úspěšně vytvořena:

9. Pomocí příkazu kubectl port-forward přepošlete službu Grafana na port 3000
:
kubectl port-forward svc/grafana 3000

10. Nyní otevřete prohlížeč a přejděte na http://localhost:3000/
.
11. Objeví se přihlašovací obrazovka Grafana s dotazem na vaše uživatelské jméno a heslo. Zadejte admin
v obou polích a klikněte naPřihlásit se .

12. Grafana vás požádá o nastavení nového hesla, po kterém se zobrazí domovská stránka.
Přidat Prometheus jako zdroj dat Grafana
Chcete-li začít pracovat s Prometheem v Grafaně, přidejte Prometheus jako zdroj dat.
1. V postranním panelu vlevo umístěte ukazatel myši na ikonu ozubeného kolečka a zobrazte podnabídku konfigurace.
2. Klikněte na Zdroje dat .

2. Otevře se konfigurační stránka. Klikněte na Přidat zdroj dat tlačítko.

3. Vyberte Prometheus jako typ zdroje dat kliknutím na Vybrat tlačítko vpravo.

4. Otevře se konfigurační stránka pro Prometheus. Zde zadáte název zdroje, URL a port pro službu Prometheus a typ přístupu (výchozí možnost je serverový přístup).

5. Až budete hotovi, přejděte dolů na konec stránky a klikněte na tlačítko Uložit a otestovat tlačítko.

Grafana otestuje spojení s Prometheem a dokončí přidávání zdroje dat.
Importovat statistiky Prometheus jako řídicí panel do Grafany
Grafana podporuje Prometheus ihned po vybalení a můžete snadno přistupovat k předem připravenému panelu Prometheus.
1. Přejděte zpět na Zdroje dat a vyberte Prometheus .
2. Otevřete Nastavení rozevírací nabídky.
3. Poté klikněte na Panely .

4. Zobrazí se seznam dostupných řídicích panelů. Importujte požadovaný řídicí panel kliknutím na tlačítko Importovat tlačítko vpravo od názvu řídicího panelu.

5. Chcete-li získat přístup k řídicímu panelu, umístěte ukazatel myši na ikonu čtyř čtverců v levém postranním panelu. Zobrazí se Panely menu.
6. Klikněte na Spravovat .

7. Vyberte Prometheus ze seznamu, který chcete spravovat.

Statistiky z vašeho serveru Prometheus
Řídicí panel Prometheus se skládá z několika jednostatových grafů, které jsou popsány níže.
Jednoduché statistické grafy
Po výběru Statistiky Prometheus řídicího panelu v Správě řídicího panelu stránku, zobrazí se statistiky uspořádané do panelů.

První řádek se skládá z následujících panelů:
- Doba provozu :Kolik času uplynulo od spuštění serveru Prometheus
- Řada paměti místního úložiště :Počet sérií, které Prometheus aktuálně uchovává v paměti
- Délka fronty interního úložiště :Čím nižší je toto číslo, tím lépe. Zpráva „Empty“ znamená, že číslo fronty je nulové.
Přijaté vzorky panel poskytuje informace o počtu vzorových zpráv, které Prometheus přijal rychlostí 5 minut.
Metriky seškrábnutí Prometheus
Metriky sestříhání panely jsou těsně pod panelem přijatých vzorků.
- Target Scrapes panel zobrazuje frekvenci škrábání cíle, tj. Promethea, měřenou za posledních pět minut, na časovou řadu ve vektoru rozsahu.
- Doba seškrábnutí panel zobrazuje dobu trvání škrábanců, měřenou za stejné pětiminutové období.

Trvání hodnocení
Doba vyhodnocení pravidla panel nacházející se pod panely Scrape metrics poskytuje informace o délce všech vyhodnocení, která se mají provést.
Vytvořit nový řídicí panel
Chcete-li vytvořit nový řídicí panel Grafana:
1. Přejděte na Panely a klikněte na Nový řídicí panel tlačítko.

2. Objeví se obrazovka, kde můžete přidat nové prázdné panely a řádky.

3. Objeví se nová obrazovka s jedním fiktivním panelem.

Přizpůsobte řídicí panel pomocí editoru dotazů Prometheus
Chcete-li upravit konkrétní panel Grafana:
1. Kliknutím na název panelu otevřete rozevírací nabídku.
2. V nabídce klikněte na Upravit .

3. Zobrazí se okno pro úpravy. Přizpůsobte panely zavedením nových dotazů nebo úpravou stávajících. Dotazování se provádí pomocí dotazovacího jazyka Prometheus.

4. Následující metriky nejsou uvedeny v předem připraveném panelu Prometheus společnosti Grafana, ale jsou užitečné pro sledování Prometheus:
prometheus_local_storage_memory_chunks
– Monitoruje části paměti, které Prometheus ukládá do paměti.prometheus_local_storage_memory_series
– Monitoruje paměťové řady, které Prometheus ukládá do paměti.prometheus_local_storage_ingested_samples_total
– Měří rychlost příjmu vzorků.prometheus_target_interval_length_seconds
– Měří dobu mezi cílovými škrábanci.prometheus_local_storage_chunk_ops_total
– Monitoruje rychlost všech operací úložiště Prometheus za sekundu.
Používejte předem připravené řídicí panely a pluginy
Grafana nabízí velký výběr předpřipravených dashboardů a pluginů dostupných ke stažení na svých webových stránkách. Instalace předem připraveného řídicího panelu:
1. Stáhněte si json
pluginu soubor.
2. Klikněte na tlačítko Importovat a postupujte podle pokynů k nahrání souboru do Grafany.

3. Chcete-li nainstalovat pluginy, přihlaste se do Grafana pod v clusteru pomocí kubectl exec
.
kubectl exec -it [grafana-pod] -- [shell]

4. Nyní použijte grafana-cli
nástroj příkazového řádku pro instalaci pluginu:
grafana-cli plugins install grafana-worldmap-panel

Plugin se nainstaluje do adresáře Grafana plugins. Výchozí umístění je /var/lib/grafana/plugins
. Jakmile je plugin úspěšně nainstalován, je automaticky dostupný v Grafaně.