Proxmox’un kendisi, sanal makineler, container’lar ve depolar gibi her türlü kaynağı izlemek için çok iyi bir arayüze sahiptir. Diğer servisler için prometheus ve grafana kullandığım için proxmox için de kullanmaya karar verdim. Hemen kuruluma geçelim.

Not: Bu öğretici, Proxmox 7 için yazılmıştır. Komutların çoğunun değişmemesi gerekirken, ana sürümler arasında bazı farklılıklar olabilir. 

Prometheus’u yükleyin

Öncelikle prometheus için özel bir kullanıcı oluşturuyoruz. Bu şekilde, hizmetlerin daha iyi bir şekilde kapsanmasına sahip olacağız.

Bir kullanıcı oluşturun

groupadd --system prometheus
useradd -s /sbin/nologin --system -g prometheus prometheus

Bu kullanıcının herhangi bir shell’e ihtiyacı yok, bu yüzden -s /sbin/nologin flag’ı ekledik.

Veri ve yapılandırma için dizinler oluşturun

Ardından, verileri ve yapılandırma dosyalarını depolamak için Prometheus için gerekli klasörleri oluşturuyoruz.

mkdir /var/lib/prometheus
for i in rules rules.d files_sd; do mkdir -p /etc/prometheus/${i}; done

Prometheus’u indirin ve kurun

Artık Prometheus’un son sürümünü doğrudan Github’dan indirmeye hazırız.

mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest \
  | grep browser_download_url \
  | grep linux-amd64 \
  | cut -d '"' -f 4 \
  | wget -qi -

Dosyayı çıkartmalı ve tüm dosyaları doğru dizine taşımalıyız.

tar xvf prometheus*.tar.gz
cd prometheus*/
mv prometheus promtool /usr/local/bin/
mv prometheus.yml  /etc/prometheus/prometheus.yml
mv consoles/ console_libraries/ /etc/prometheus/

/tmp dizinini temizleyin.

cd ~/
rm -rf /tmp/prometheus

Bir systemd yapılandırma dosyası oluşturun

Prometheus’u systemd ile yönetmek istiyoruz. Bu nedenle aşağıdaki komutu kullanarak bir yapılandırma dosyası oluşturmamız gerekiyor.

tee /etc/systemd/system/prometheus.service<<EOF

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
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 \
  --web.external-url=

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target
EOF

Bunu yaptıktan sonra, doğru dosya izinlerini ayarlayın ve Prometheus’u başlatın.

for i in rules rules.d files_sd; do chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do chmod -R 775 /etc/prometheus/${i}; done
chown -R prometheus:prometheus /var/lib/prometheus/
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus

Prometheus’u çalışır duruma getirmek için yapmamız gereken tek şey bu. Bir sonraki adımda proxmox-pve-exporter’ı kurup yapılandırıyoruz.

Proxmox-pve-exporter’ı kurun

Adından da anlaşılacağı gibi, proxmox-pve-exporter, proxmox api’den verileri filtreler ve prometheus’a gönderir.

Henüz yüklemediyseniz, aşağıdaki komutu kullanarak python ve pip’i kurun.

apt install python3 python3-pip

Bu komut bittiğinde, proxmox-pve-exporter’ı pip aracılığıyla kurmaya hazırız.

pip3 install prometheus-pve-exporter

Bir kimlik doğrulama dosyası oluşturun

Proxmox-pve-exporter’ın Proxmox api’ye bağlanması için kimlik bilgileriyle bir dosya oluşturmamız gerekiyor.

nano /etc/prometheus/pve.yml

Aşağıdaki satırları dosyaya yapıştırın ve kimlik bilgilerini sizinkilerle değiştirdiğinizden emin olun.

default:
    user: user@pve
    password: your_password_here
    verify_ssl: false

Not: Kimlik doğrulamayla ilgili herhangi bir sorunla karşılaşırsanız, lütfen proxmox-pve-exporter dokümanlarına bakın.

Bir systemd yapılandırma dosyası oluşturun

İlk bölümde olduğu gibi, proxmox-pve-exporter’ı kontrol etmek için bir systemd yapılandırma dosyası oluşturmamız gerekiyor.

tee /etc/systemd/system/prometheus-pve-exporter.service<<EOF
[Unit]
Description=Prometheus exporter for Proxmox VE
Documentation=https://github.com/znerol/prometheus-pve-exporter

[Service]
Restart=always
User=prometheus
ExecStart=/usr/local/bin/pve_exporter /etc/prometheus/pve.yml

[Install]
WantedBy=multi-user.target
EOF

Aşağıdaki komutları çalıştırarak hizmeti etkinleştirin.

systemctl daemon-reload
systemctl start prometheus-pve-exporter
systemctl enable prometheus-pve-exporter

Proxmox-pve-exporter’ı prometheus’a ekleyin

Şimdi prometheus’a proxmox-pve-exporter’ı eklemeliyiz.

nano /etc/prometheus/prometheus.yml
- job_name: 'proxmox'
  metrics_path: /pve
  static_configs:
  - targets: ['localhost:9221']

Dosyayı kaydedin ve prometheus’u yeniden başlatın.

systemctl restart prometheus

Gafana’yı yükleyin

Önceki tüm adımlarda sistemimizden veri toplamaya başladık. Şimdi tüm verilere güzel bir genel bakış elde etmek için grafana’yı yüklememiz gerekiyor.

Grafana’yı kurun

Öncelikle aşağıdaki satırları bu dosyaya ekleyin. /etc/apt/sources.list.d/grafana.list

deb https://packages.grafana.com/oss/deb stable main

Şimdi uygun anahtarı yüklememiz gerekiyor.

curl https://packages.grafana.com/gpg.key | apt-key add - 

apt dizinini güncelleyin ve grafana’yı kurun.

apt update && apt install -y apt-transport-https grafana

grafana kurulduktan sonra etkinleştirin ve çalışıp çalışmadığını kontrol edin.

systemctl enable --now grafana-server
systemctl status grafana-server.service

Kurulumu test edin

Grafana başarıyla kuruldu. Tarayıcınızı açın ve http://ipaddress:3000 varsayılan kimlik bilgilerine gidin ve bu bilgilerle giriş yapın.

username: admin
password: admin

Prometheus veri kaynağını ekleyin

Grafana’da oturum açtıktan sonra “Add data source”a tıklayın.

image 30

Şablon olarak “Prometheus”u seçin.

image 31

Veri kaynağını eklerken, açılır listeden URL’yi seçtiğinizden emin olun. “Save & Test”e tıklayın.

image 32

Ardından, kenar çubuğuna gidin ve “Create” -> “Import”ı seçin.

image 33

Pano kimliğine (10347) id’sini yapıştırın ve “Load”a tıklayın.

image 34

Son adımda, açılır menüden “Prometheus” u seçin ve “Import” a tıklayın.

image 35

İşte yeni Grafana panomuz böyle görünüyor! güzel değil mi :]

proxmox grafana