-
Notifications
You must be signed in to change notification settings - Fork 0
/
monitor-proxmox-mit-grafana-und-prometheus.html
78 lines (73 loc) · 24.5 KB
/
monitor-proxmox-mit-grafana-und-prometheus.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html><html lang="de-ch"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Monitor Proxmox mit Grafana und Prometheus - Finecloud</title><meta name="description" content="Obwohl Proxmox selbst ja sehr gute Monitoring Informationen direkt auf dem eigenen WebUI anzeigt werde ich um Grafana und Prometheus besser kennen zu lernen diese Tools nutzen um meinen Proxmox Host zu überwachen. Mit der Open-Source-Software von Grafana kann man Metriken, Protokolle und Ablaufverfolgungen, visualisieren,…"><meta name="generator" content="Publii Open-Source CMS for Static Site"><link rel="stylesheet" href="https://www.finecloud.ch/media/plugins/syntaxHighlighter/prism-black.css"><link rel="canonical" href="https://www.finecloud.ch/monitor-proxmox-mit-grafana-und-prometheus.html"><link rel="alternate" type="application/atom+xml" href="https://www.finecloud.ch/feed.xml"><link rel="alternate" type="application/json" href="https://www.finecloud.ch/feed.json"><meta property="og:title" content="Monitor Proxmox mit Grafana und Prometheus"><meta property="og:site_name" content="Finecloud"><meta property="og:description" content="Obwohl Proxmox selbst ja sehr gute Monitoring Informationen direkt auf dem eigenen WebUI anzeigt werde ich um Grafana und Prometheus besser kennen zu lernen diese Tools nutzen um meinen Proxmox Host zu überwachen. Mit der Open-Source-Software von Grafana kann man Metriken, Protokolle und Ablaufverfolgungen, visualisieren,…"><meta property="og:url" content="https://www.finecloud.ch/monitor-proxmox-mit-grafana-und-prometheus.html"><meta property="og:type" content="article"><link rel="shortcut icon" href="https://www.finecloud.ch/media/website/finecloud.png" type="image/png"><link rel="stylesheet" href="https://www.finecloud.ch/assets/css/style.css?v=39da73365516a098a9b73b721fc970e2"><script type="application/ld+json">{"@context":"http://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://www.finecloud.ch/monitor-proxmox-mit-grafana-und-prometheus.html"},"headline":"Monitor Proxmox mit Grafana und Prometheus","datePublished":"2022-07-23T05:56","dateModified":"2022-07-24T18:00","description":"Obwohl Proxmox selbst ja sehr gute Monitoring Informationen direkt auf dem eigenen WebUI anzeigt werde ich um Grafana und Prometheus besser kennen zu lernen diese Tools nutzen um meinen Proxmox Host zu überwachen. Mit der Open-Source-Software von Grafana kann man Metriken, Protokolle und Ablaufverfolgungen, visualisieren,…","author":{"@type":"Person","name":"Finecloud","url":"https://www.finecloud.ch/authors/finecloud/"},"publisher":{"@type":"Organization","name":"Finecloud"}}</script><meta name="google-site-verification" content="seFY9U12uiEq5U3_MyZiX6XWzk0AVFl9zITr2ZKsytY"></head><body><div class="site-container"><header class="top" id="js-header"><a class="logo" href="https://www.finecloud.ch/">Finecloud</a><nav class="navbar js-navbar"><button class="navbar__toggle js-toggle" aria-label="Menu" aria-haspopup="true" aria-expanded="false"><span class="navbar__toggle-box"><span class="navbar__toggle-inner">Menu</span></span></button><ul class="navbar__menu"><li><a href="https://www.finecloud.ch/" target="_self">Blog</a></li><li><a href="https://www.finecloud.ch/tags/" target="_self">Tags</a></li></ul></nav><div class="search"><div class="search__overlay js-search-overlay"><div class="search__overlay-inner"><form action="https://www.finecloud.ch/search.html" class="search__form"><input class="search__input js-search-input" type="search" name="q" placeholder="search..." aria-label="search..." autofocus="autofocus"></form><button class="search__close js-search-close" aria-label="Close">Close</button></div></div><button class="search__btn js-search-btn" aria-label="Search"><svg role="presentation" focusable="false"><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#search"/></svg></button></div></header><main><article class="post"><div class="hero"><figure class="hero__image hero__image--overlay"><img src="https://www.finecloud.ch/media/website/download.jpg" srcset="https://www.finecloud.ch/media/website/responsive/download-xs.jpg 300w, https://www.finecloud.ch/media/website/responsive/download-sm.jpg 480w, https://www.finecloud.ch/media/website/responsive/download-md.jpg 768w, https://www.finecloud.ch/media/website/responsive/download-lg.jpg 1024w, https://www.finecloud.ch/media/website/responsive/download-xl.jpg 1360w, https://www.finecloud.ch/media/website/responsive/download-2xl.jpg 1600w" sizes="100vw" loading="eager" alt=""></figure><header class="hero__content"><div class="wrapper"><div class="post__meta"><time datetime="2022-07-23T05:56">Juli 23, 2022</time></div><h1>Monitor Proxmox mit Grafana und Prometheus</h1></div></header></div><div class="wrapper post__entry"><div class="post__toc"><h3>Table of Contents</h3><ul><li><a href="#mcetoc_1g8ncv1m65n">Grafana</a><ul><li><a href="#mcetoc_1g8ncv1m65o">Was ist Grafana?</a></li><li><a href="#mcetoc_1g8oet5nkph">Installation</a></li></ul></li><li><a href="#mcetoc_1g8ncv1m65p">Prometheus</a></li><li><a href="#mcetoc_1g8ncv1m65q">Was ist Prometheus?</a><ul><li><a href="#features">Features</a></li><li><a href="#mcetoc_1g8oet5nkpi">Installation</a></li></ul></li><li><a href="#mcetoc_1g8oet5nkpj">Proxmox</a></li><li><a href="#mcetoc_1g8oet5nkpk">Konfiguration von Grafana und Prometheus</a></li></ul></div><p>Obwohl Proxmox selbst ja sehr gute Monitoring Informationen direkt auf dem eigenen WebUI anzeigt werde ich um Grafana und Prometheus besser kennen zu lernen diese Tools nutzen um meinen Proxmox Host zu überwachen.</p><h2 id="mcetoc_1g8ncv1m65n">Grafana</h2><h3 id="mcetoc_1g8ncv1m65o">Was ist Grafana?</h3><p>Mit der Open-Source-Software von <a href="https://grafana.com" target="_blank" rel="nofollow noopener noreferrer">Grafana</a> kann man Metriken, Protokolle und Ablaufverfolgungen, visualisieren, warnen und untersuchen. Grafana OSS stellt Tools zur Verfügung, mit denen man seine <em>time-series database</em> (TSDB) in aufschlussreiche Diagramme und Visualisierungen umwandeln kann.</p><h3 id="mcetoc_1g8oet5nkph">Installation</h3><p>Da ich Grafana selbst als Test in meinem Homelab ausprobieren will möchte ich möglichst wenig Zeit in das Setup investieren und das ganze auch so schlank als möglich halten. Deshalb habe ich mit dazu entschieden Grafana als LXC Container zu installieren. Dazu erstelle ich als erster Schritt einen neuen LXC Container mit den folgenden Specs:</p><ul><li>Template: Debian 11</li><li>Disk: 10GB (können wir jederzeit noch vergrössern)</li><li>Cores: 2</li><li>Memory: 1024 MiB</li><li>Swap: 1024 MiB</li></ul><p>Als nächster Schritt loggen wir uns in den LXC Container ein und fügen die Grafana Repos hinzu und installieren Grafana auch gleich:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">sudo apt-get install -y apt-transport-https gnupg
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
<span class="hljs-built_in">echo</span> <span class="hljs-string" style="color: #6a8759;">"deb https://packages.grafana.com/oss/deb stable main"</span> | sudo tee <span class="hljs-_">-a</span> /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install grafana
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
sudo systemctl <span class="hljs-built_in">enable</span> grafana-server.service</pre><p>Wenn alles geklappt hat, sollte Grafana nun unter dieser URL erreichbar sein: <a href="http://LXC-Container-IP-Adresse:3000/login" rel="nofollow">http://<<em>LXC-Container-IP-Adresse</em>>:3000/login</a> Einloggen kann man mit dem default Login:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">username: admin
password: admin
</pre><h2 id="mcetoc_1g8ncv1m65p">Prometheus</h2><h2 id="mcetoc_1g8ncv1m65q">Was ist Prometheus?</h2><p>Prometheus ist ein Open-Source-Systems für Monitoring und Alerting, das ursprünglich bei SoundCloud entwickelt wurde. Seit seiner Gründung im Jahr 2012 haben viele Unternehmen und Organisationen Prometheus übernommen, und das Projekt hat eine sehr aktive Entwickler- und Benutzergemeinschaft. Es ist jetzt ein eigenständiges Open-Source-Projekt und wird unabhängig von einem Unternehmen gepflegt. Um dies zu betonen und die Governance-Struktur des Projekts zu verdeutlichen, trat Prometheus 2016 als zweites gehostetes Projekt nach Kubernetes der Cloud Native Computing Foundation bei.<br><br>Prometheus sammelt und speichert seine Metriken als Zeitreihendaten (time series data), d. h. Metrikinformationen werden mit dem Zeitstempel gespeichert, zu dem sie aufgezeichnet wurden, zusammen mit optionalen Schlüssel-Wert-Paaren, die als Labels bezeichnet werden.<br><br>Ausführlichere Übersichten über Prometheus finden Sie in den Ressourcen, die im Medienbereich verlinkt sind.</p><h3 id="features">Features<a class="header-anchor" href="https://prometheus.io/docs/introduction/overview/#features" name="features"></a></h3><p>Prometheus's Features sind:</p><ul><li>ein multi-dimensionales daten model mit Zeitreihendaten, die durch Metriknamen und Schlüssel/Wert-Paare identifiziert werden</li><li>PromQL, eine flexible Abfragesprache, um diese Dimensionalität zu nutzen<br>keine Abhängigkeit von verteilter Speicherung; einzelne Serverknoten sind autonom</li><li>Die Erfassung von Zeitreihen erfolgt über ein Pull-Modell über HTTP</li><li>Das Pushen von Zeitreihen wird über ein zwischengeschaltetes Gateway unterstützt</li><li>Ziele werden über die Diensterkennung oder die statische Konfiguration erkannt<br>mehrere Modi der Grafik- und Dashboard-Unterstützung</li></ul><h3 id="mcetoc_1g8oet5nkpi">Installation</h3><p>Wie zuvor Grafana installieren wir nun auch Prometheus als LXC Container:</p><ul><li>Template: Debian 11</li><li>Disk: 10GB (können wir jederzeit noch vergrössern)</li><li>Cores: 2</li><li>Memory: 2048 MiB</li><li>Swap: 2048 MiB</li></ul><p>Als nächster Schritt loggen wir uns in den LXC Container ein und fügen die Grafana Repos hinzu und installieren Grafana auch gleich:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">apt-get install -y curl sudo
mkdir -p /etc/prometheus
mkdir -p /var/lib/prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz
tar -xvf prometheus-2.37.0.linux-amd64.tar.gz
<span class="hljs-built_in">cd</span> prometheus-2.37.0.linux-amd64
mv prometheus promtool /usr/<span class="hljs-built_in">local</span>/bin/
mv consoles/ console_libraries/ /etc/prometheus/
mv prometheus.yml /etc/prometheus/prometheus.yml</pre><p>Weiter erstellen wir den Prometheus Systemd Service und aktivieren diesen:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">service_path=<span class="hljs-string" style="color: #6a8759;">"/etc/systemd/system/prometheus.service"</span>
<span class="hljs-built_in">echo</span> <span class="hljs-string" style="color: #6a8759;">"[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=root
Restart=always
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090
[Install]
WantedBy=multi-user.target"</span> > <span class="hljs-variable" style="color: #629755;">$service_path</span>
sudo systemctl <span class="hljs-built_in">enable</span> --now prometheus</pre><p>Wenn alles geklappt hat, sollte Prometheus nun unter dieser URL erreichbar sein: <a href="http://LXC-Container-IP-Adresse:9090" rel="nofollow">http://<<em>LXC-Container-IP-Adresse</em>>:9090</a></p><h2 id="mcetoc_1g8oet5nkpj">Proxmox</h2><p>Zuerst müssen wir auf Proxmox einen neuen User anlegen mit welchem wir von Prometheus her authentifizieren können. Damit wir den Service als deamon laufen lassen können, müssen wir den User zudem auf OS Ebene installieren, jedoch ohne Shell:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">pveum user add prometheus@pve
pveum aclmod / -user prometheus@pve -role PVEAuditor<br>pveum passwd <a href="mailto:prometheus@pve">prometheus@pve</a><br>useradd -c "pve exporter" -m -s /bin/false prometheus</pre><p>Damit wir nun den Proxmox mit Grafana und Prometheus Überwachen können, müssen wir auf dem Proxmox selbst den proxmox-pve-exporter installieren:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">sudo apt install python3-pip
sudo pip install prometheus-pve-exporter</pre><p>auf dem Proxmox Host erstellen wir zudem eine neue Datei mit dem folgenden Inhalt:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">sudo vi /etc/prometheus/pve.yml<br>default:
user: prometheus@pve
password: your_password_here
verify_ssl: <span class="hljs-literal" style="color: #6897bb;">false</span></pre><p>Weiter brauchen wir auf dem Proxmox Host ein Systemd Service Config File:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">sudo tee /etc/systemd/system/prometheus-pve-exporter.service<<EOF
[Unit]
Description=Prometheus exporter <span class="hljs-keyword" style="color: #cc7832;">for</span> Proxmox VE
Documentation=https://github.com/znerol/prometheus-pve-exporter
[Service]
Restart=always
User=prometheus
ExecStart=/usr/<span class="hljs-built_in">local</span>/bin/pve_exporter /etc/prometheus/pve.yml
[Install]
WantedBy=multi-user.target
EOF</pre><p>Nun erstellen wir eine weitere Config Datei:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">sudo vi /etc/prometheus/prometheus.yml
- job_name: <span class="hljs-string" style="color: #6a8759;">'proxmox'</span>
metrics_path: /pve
static_configs:
- targets: [<span class="hljs-string" style="color: #6a8759;">'<proxmox-ip<:9221'</span>]</pre><p>und starten den Prometheus Service neu:</p><pre class="hljs" style="color: #a9b7c6; background: #282b2e none repeat scroll 0% 0%; display: block; overflow-x: auto; padding: 0.5em;">sudo systemctl restart prometheus</pre><h2 id="mcetoc_1g8oet5nkpk">Konfiguration von Grafana und Prometheus</h2><p>Dazu loggen wir uns nun auf Grafana ein und klicken auf "Add data source":</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/Screenshot-2022-07-24-at-09.03.53.png" alt="" width="3360" height="1766" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.03.53-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.03.53-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.03.53-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.03.53-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.03.53-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.03.53-2xl.png 1600w"></figure><p>und wir wählen Prometheus als Datenquelle aus:</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/Screenshot-2022-07-24-at-09.04.29.png" alt="" width="3360" height="1766" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.04.29-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.04.29-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.04.29-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.04.29-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.04.29-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-09.04.29-2xl.png 1600w"></figure><p>und geben die Angaben unseres Prometheus LXC Containers an:</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/Screenshot-2022-07-24-at-16.35.52.png" alt="" width="3360" height="1766" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-16.35.52-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-16.35.52-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-16.35.52-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-16.35.52-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-16.35.52-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-16.35.52-2xl.png 1600w"></figure><p>anschliessend klicken wir auf "Save & Test". Nun importieren wir ein bereits bestehendes Grafana Dashboard. Dazu gehen wir auf Dashboards -> + Import</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/Screenshot-2022-07-24-at-17.01.18.png" alt="" width="3360" height="1766" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.01.18-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.01.18-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.01.18-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.01.18-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.01.18-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.01.18-2xl.png 1600w"></figure><p>Dort geben wir die ID (10347) des existierenden Dashboards an und importieren es, indem wir auf Load klicken:</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/Screenshot-2022-07-24-at-17.04.08-2.png" alt="" width="1794" height="1206" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.04.08-2-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.04.08-2-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.04.08-2-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.04.08-2-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.04.08-2-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.04.08-2-2xl.png 1600w"></figure><p>Anschliessend verändert sich die Ansicht. Die einzige Anpassung die wir hier benötigen die die Auswahl der Datenquelle (letzter Schritt), dort wählen wir unser Prometheus aus und klicken dann auf Import:</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/Screenshot-2022-07-24-at-17.05.53.png" alt="" width="1860" height="1418" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.05.53-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.05.53-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.05.53-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.05.53-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.05.53-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/Screenshot-2022-07-24-at-17.05.53-2xl.png 1600w"></figure><p>Anschliessend sollte unser Dashboard nach einer Weile die Daten des PVE Exporters wunderschön und detailliert aufbereitet anzeigen:</p><figure class="post__image"><img loading="lazy" src="https://www.finecloud.ch/media/posts/52/screenshot.png" alt="" width="3676" height="1846" sizes="100vw" srcset="https://www.finecloud.ch/media/posts/52/responsive/screenshot-xs.png 300w, https://www.finecloud.ch/media/posts/52/responsive/screenshot-sm.png 480w, https://www.finecloud.ch/media/posts/52/responsive/screenshot-md.png 768w, https://www.finecloud.ch/media/posts/52/responsive/screenshot-lg.png 1024w, https://www.finecloud.ch/media/posts/52/responsive/screenshot-xl.png 1360w, https://www.finecloud.ch/media/posts/52/responsive/screenshot-2xl.png 1600w"></figure></div><footer class="wrapper post__footer"><p class="post__last-updated">This article was updated on Juli 24, 2022</p><ul class="post__tag"><li><a href="https://www.finecloud.ch/tags/container/">container</a></li><li><a href="https://www.finecloud.ch/tags/grafana/">grafana</a></li><li><a href="https://www.finecloud.ch/tags/linux/">linux</a></li><li><a href="https://www.finecloud.ch/tags/lxc/">lxc</a></li><li><a href="https://www.finecloud.ch/tags/monitoring/">monitoring</a></li><li><a href="https://www.finecloud.ch/tags/proxmox/">proxmox</a></li><li><a href="https://www.finecloud.ch/tags/virtualization/">virtualization</a></li></ul><div class="post__share"></div></footer></article><nav class="post__nav"><div class="post__nav-inner"><div class="post__nav-prev"><svg width="1.041em" height="0.416em" aria-hidden="true"><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#arrow-prev"/></svg> <a href="https://www.finecloud.ch/capture-groups-in-java.html" class="post__nav-link" rel="prev"><span>Previous</span> Capture Groups in Java</a></div><div class="post__nav-next"><a href="https://www.finecloud.ch/imperativ-vs-deklarativ.html" class="post__nav-link" rel="next"><span>Next</span> Imperativ vs. Deklarativ </a><svg width="1.041em" height="0.416em" aria-hidden="true"><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#arrow-next"/></svg></div></div></nav><div class="post__related related"><div class="wrapper"><h2 class="h5 related__title">You should also read:</h2><article class="related__item"><div class="feed__meta"><time datetime="2022-08-09T07:01" class="feed__date">August 9, 2022</time></div><h3 class="h1"><a href="https://www.finecloud.ch/visualisiere-deine-strava-aktivitaeten-mit-grafana.html">Visualisiere deine Strava Aktivitäten mit Grafana</a></h3></article><article class="related__item"><div class="feed__meta"><time datetime="2022-07-02T17:34" class="feed__date">Juli 2, 2022</time></div><h3 class="h1"><a href="https://www.finecloud.ch/kubernetes-auf-proxmox-mit-ansible-und-terraform-teil-2.html">Kubernetes auf Proxmox mit Ansible und Terraform (Teil 2)</a></h3></article><article class="related__item"><div class="feed__meta"><time datetime="2022-07-01T18:59" class="feed__date">Juli 1, 2022</time></div><h3 class="h1"><a href="https://www.finecloud.ch/kubernetes-auf-proxmox-mit-ansible-und-terraform.html">Kubernetes auf Proxmox mit Ansible und Terraform (Teil 1)</a></h3></article></div></div></main><footer class="footer"><div class="footer__copyright"><p>Powered by Publii</p></div><button onclick="backToTopFunction()" id="backToTop" class="footer__bttop" aria-label="Back to top" title="Back to top"><svg><use xlink:href="https://www.finecloud.ch/assets/svg/svg-map.svg#toparrow"/></svg></button></footer></div><script>window.publiiThemeMenuConfig = {
mobileMenuMode: 'sidebar',
animationSpeed: 300,
submenuWidth: 'auto',
doubleClickTime: 500,
mobileMenuExpandableSubmenus: true,
relatedContainerForOverlayMenuSelector: '.top',
};</script><script defer="defer" src="https://www.finecloud.ch/assets/js/scripts.min.js?v=6ca8b60e6534a3888de1205e82df8528"></script><script>var images = document.querySelectorAll('img[loading]');
for (var i = 0; i < images.length; i++) {
if (images[i].complete) {
images[i].classList.add('is-loaded');
} else {
images[i].addEventListener('load', function () {
this.classList.add('is-loaded');
}, false);
}
}</script><script defer="defer" src="https://www.finecloud.ch/media/plugins/syntaxHighlighter/prism.js"></script></body></html>