−25%

yıllık Windows ödemesinde, 31 Ekim'e kadar. Paketlere git

EQVPS

Grafana + Prometheus ile sunucu izleme için VPS

Tüm sunucularınızın CPU, RAM, disk ve hizmet ölçümlerini tek bir yerde toplayın: bir VPS'te, HTTPS arkasında Prometheus, node_exporter ve Grafana.

“Sunucu yavaş” işe yaramaz bir hata raporudur; tabii bir grafik açıp çökmeden önceki üç gün boyunca belleğin tırmandığını göremiyorsanız. Prometheus ve Grafana size tam olarak bunu verir: her sunucunun CPU, RAM, disk ve ağ verileri 15 saniyede bir kaydedilir ve geriye kaydırabileceğiniz grafiklere dönüşür. Onları kendi küçük VPS'lerine koyun; bir üretim makinesi devrildiğinde bile izlemeye devam etsinler.

Parçalar

Neye ihtiyacınız var

1. Her hedefte node_exporter

apt install -y prometheus-node-exporter
# allow only the monitoring server to scrape it
ufw allow from 203.0.113.10 to any port 9100 proto tcp

203.0.113.10 adresini izleme VPS'inizin adresiyle değiştirin. 9100'ü asla tüm dünyaya açık bırakmayın: sunucunuz hakkında çok şey ele verir.

2. İzleme VPS'inde Prometheus ve Grafana

apt update && apt install -y docker.io docker-compose-v2 caddy
mkdir -p /opt/monitoring && cd /opt/monitoring

cat > prometheus.yml <<'EOF'
global:
  scrape_interval: 15s
scrape_configs:
  - job_name: nodes
    static_configs:
      - targets: ['198.51.100.21:9100', '198.51.100.22:9100']
EOF

cat > compose.yml <<'EOF'
services:
  prometheus:
    image: prom/prometheus
    volumes: [ "./prometheus.yml:/etc/prometheus/prometheus.yml:ro", "prom:/prometheus" ]
    command: [ "--config.file=/etc/prometheus/prometheus.yml", "--storage.tsdb.retention.time=15d", "--web.enable-remote-write-receiver" ]
    ports: [ "127.0.0.1:9090:9090" ]
    restart: unless-stopped
  grafana:
    image: grafana/grafana
    volumes: [ "grafana:/var/lib/grafana" ]
    ports: [ "127.0.0.1:3000:3000" ]
    restart: unless-stopped
volumes: { prom: {}, grafana: {} }
EOF

docker compose up -d

Grafana'nın önünde HTTPS:

echo 'grafana.example.com {
    reverse_proxy 127.0.0.1:3000
}' > /etc/caddy/Caddyfile && systemctl reload caddy

Giriş yapın (admin / admin, ardından değiştirin), Prometheus'u http://prometheus:9090 adresinde veri kaynağı olarak ekleyin ve topluluğun “Node Exporter Full” panelini (ID 1860) içe aktarın. Yaklaşık bir dakikada eksiksiz bir sistem paneliniz olur.

NAT planlarındaki sunucular

NAT sunucusu gelen bağlantıları yalnızca kişisel SSH portunda kabul eder, bu yüzden Prometheus onun exporter'ını çekemez. Yönü tersine çevirin: NAT makinesinde Prometheus'u agent modunda çalıştırın ve verileri zaten uzak yazmaları kabul eden izleme sunucusuna gönderin (yukarıdaki --web.enable-remote-write-receiver bayrağı).

# /etc/prometheus/agent.yml on the NAT server
scrape_configs:
  - job_name: self
    static_configs: [ { targets: ['127.0.0.1:9100'] } ]
remote_write:
  - url: https://prom-push.example.com/api/v1/write

9090 portunu çıplak hâlde açmak yerine bu gönderim uç noktasını Caddy üzerinden basic auth ile sunun.

Dürüst notlar

Prometheus çekme (pull) modeliyle çalışır: denetiminizdeki bir filo için harika, NAT arkasındaki her şey için zahmetlidir; agent hilesi bu yüzden var. Yerel depolaması yıllarca geçmiş için tasarlanmamıştır; uzun saklama için daha sonra uzak bir depolama eklersiniz. Paneller ise değerin yalnızca yarısıdır: ilk gün en az üç uyarı kurun (disk %85'in üzerinde, bellek baskısı, hedef erişilemez), yoksa grafiklere ancak bir şey bozulduktan sonra bakarsınız.

İlgili

Dağıtmaya hazır mısınız? Kripto ile ödeyin, KYC yok — yaklaşık bir dakikada çevrimiçi.

Dağıt →

SSS

Bunun Uptime Kuma'dan farkı ne?

Uptime Kuma “çalışıyor mu?” sorusunu yanıtlar. Prometheus ve Grafana ise “neden yavaş ve ne zamandan beri?” sorusunu yanıtlar: zaman içinde CPU, bellek, disk, ağ ve uygulama ölçümleri. Birçok kişi ikisini birlikte kullanır: kesinti uyarıları için Kuma, eğilimler ve kapasite planlaması için Grafana.

Prometheus ne kadar disk kullanır?

Sıkıştırmadan sonra örnek başına yaklaşık 1–2 bayt. Her biri bin seri dışa aktaran ve 15 saniyede bir okunan on sunucu günde yaklaşık 60 milyon örnek eder: 100 MB mertebesinde. Varsayılan 15 günlük saklama süresiyle bu birkaç gigabayttır.

NAT planlarındaki sunucuları izleyebilir miyim?

Evet, ama çekerek değil: NAT sunucusu, exporter'ına gelen bağlantıları kabul etmez. NAT makinesinde Prometheus'u agent modunda çalıştırın ve ölçümleri remote_write ile izleme sunucunuza gönderin. İzleme sunucusunun kendisi özel IP'li bir planda olmalıdır.

İzleme sunucusu hangi planda olmalı?

Micro-IP (2 GB RAM, $10/ay) bir iki düzine ana makineyi rahatça kaldırır. Yüksek kardinaliteli uygulama ölçümleri ekler ya da aylarca veri tutarsanız Small-IP'ye geçin. Özel IP, Grafana için HTTPS ve hedeflerinizde izin listesine alabileceğiniz sabit bir adres sağlar.

İzleme sunucusu izlediği şeylerden ayrı olmalı mı?

Evet. Grafana, belleği yeni tükenen sunucuda çalışıyorsa soruna tam da ihtiyaç duyduğunuz anda görüşünüzü kaybedersiniz. Küçük ve ayrı bir VPS, bir üretim makinesi çöktüğünde çalışmaya devam eder.

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.