−25%

Windows کی سالانہ ادائیگی پر، 31 اکتوبر تک۔ پلانز دیکھیں

EQVPS

Grafana اور Prometheus سے سرور مانیٹرنگ کے لیے VPS

اپنے تمام سرورز کے CPU، RAM، ڈسک اور سروس میٹرکس ایک جگہ جمع کریں: ایک VPS پر Prometheus، node_exporter اور Grafana، HTTPS کے پیچھے۔

«سرور سست ہے» بیکار بگ رپورٹ ہے، جب تک آپ گراف کھول کر یہ نہ دیکھ سکیں کہ کریش سے پہلے تین دن تک میموری بڑھتی رہی۔ Prometheus اور Grafana آپ کو یہی دیتے ہیں: ہر سرور کا CPU، RAM، ڈسک اور نیٹ ورک، ہر 15 سیکنڈ میں ریکارڈ ہو کر چارٹس کی شکل میں جن میں آپ پیچھے جا سکتے ہیں۔ انہیں ان کے اپنے چھوٹے VPS پر رکھیں تو یہ پروڈکشن مشین گرنے پر بھی نگرانی کرتے رہتے ہیں۔

اجزاء

آپ کو کیا چاہیے

1. ہر ہدف پر 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 کو اپنے مانیٹرنگ VPS کے ایڈریس سے بدلیں۔ 9100 کو کبھی دنیا کے لیے کھلا نہ چھوڑیں؛ یہ آپ کے سرور کے بارے میں بہت کچھ ظاہر کرتا ہے۔

2. مانیٹرنگ VPS پر Prometheus اور 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 کے آگے HTTPS:

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

لاگ اِن کریں (admin / admin، پھر اسے بدلیں)، http://prometheus:9090 پر Prometheus کو ڈیٹا سورس کے طور پر شامل کریں، اور کمیونٹی کا «Node Exporter Full» ڈیش بورڈ (ID 1860) امپورٹ کریں۔ تقریباً ایک منٹ میں آپ کے پاس مکمل سسٹم ڈیش بورڈ ہوتا ہے۔

NAT پلانز والے سرورز

NAT سرور صرف اپنے ذاتی SSH پورٹ پر آنے والے کنکشن قبول کرتا ہے، اس لیے Prometheus اس کا ایکسپورٹر اسکریپ نہیں کر سکتا۔ سمت الٹ دیں: NAT مشین پر Prometheus کو agent موڈ میں چلائیں اور مانیٹرنگ سرور کو push کریں، جو پہلے ہی ریموٹ رائٹس قبول کرتا ہے (اوپر والا --web.enable-remote-write-receiver فلیگ)۔

# /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

اس push اینڈ پوائنٹ کو پورٹ 9090 کھلا چھوڑنے کے بجائے basic auth کے ساتھ Caddy کے ذریعے ظاہر کریں۔

ایماندارانہ نوٹس

Prometheus کھینچتا (pull) ہے؛ یہ اپنے کنٹرول والے سرورز کے لیے بہترین اور NAT کے پیچھے ہر چیز کے لیے مشکل ہے، اسی لیے agent کی ترکیب۔ اس کی مقامی اسٹوریج برسوں کی تاریخ کے لیے نہیں بنی؛ لمبی ریٹینشن کے لیے بعد میں ریموٹ اسٹور شامل کریں گے۔ اور ڈیش بورڈز صرف آدھی قدر ہیں: پہلے دن کم از کم تین الرٹس سیٹ کریں (ڈسک 85% سے اوپر، میموری کا دباؤ، ہدف بند)، ورنہ آپ گراف تب ہی دیکھیں گے جب کچھ پہلے ہی ٹوٹ چکا ہو۔

متعلقہ

تعینات کے لیے تیار؟ کرپٹو میں ادائیگی کریں، بغیر KYC — تقریباً ایک منٹ میں لائیو۔

ابھی ڈیپلائے کریں →

عمومی سوالات

یہ Uptime Kuma سے کیسے مختلف ہے؟

Uptime Kuma «کیا یہ چل رہا ہے؟» کا جواب دیتا ہے۔ Prometheus اور Grafana «یہ سست کیوں ہے، اور کب سے؟» کا جواب دیتے ہیں: وقت کے ساتھ CPU، میموری، ڈسک، نیٹ ورک اور ایپلی کیشن میٹرکس۔ بہت سے لوگ دونوں چلاتے ہیں: بندش کے الرٹس کے لیے Kuma، رجحانات اور گنجائش کی منصوبہ بندی کے لیے Grafana۔

Prometheus کتنی ڈسک استعمال کرتا ہے؟

کمپریشن کے بعد فی سیمپل تقریباً 1–2 بائٹس۔ دس سرورز جن میں سے ہر ایک ہزار سیریز ایکسپورٹ کرے اور ہر 15 سیکنڈ میں اسکریپ ہو، روزانہ تقریباً 60 ملین سیمپل بنتے ہیں، یعنی تقریباً 100 MB۔ 15 دن کی ڈیفالٹ ریٹینشن کے ساتھ یہ چند گیگابائٹ بنتا ہے۔

کیا میں NAT پلانز والے سرورز مانیٹر کر سکتا ہوں؟

جی ہاں، لیکن اسکریپنگ سے نہیں: NAT سرور اپنے ایکسپورٹر پر آنے والے کنکشن قبول نہیں کرتا۔ NAT مشین پر Prometheus کو agent موڈ میں چلائیں اور remote_write سے میٹرکس اپنے مانیٹرنگ سرور کو push کریں۔ مانیٹرنگ سرور خود dedicated IP والے پلان پر ہونا چاہیے۔

مانیٹرنگ سرور کس پلان پر ہو؟

Micro-IP (2 GB RAM، $10/ماہ) آرام سے دس سے بیس ہوسٹس سنبھالتا ہے۔ اگر آپ زیادہ cardinality والے ایپ میٹرکس شامل کریں یا مہینوں کا ڈیٹا رکھیں تو Small-IP پر جائیں۔ dedicated IP آپ کو Grafana کے لیے HTTPS اور اہداف پر whitelist کرنے کے لیے ایک مستقل ایڈریس دیتا ہے۔

کیا مانیٹرنگ سرور اس سے الگ ہونا چاہیے جسے وہ مانیٹر کرتا ہے؟

جی ہاں۔ اگر Grafana اسی سرور پر چلے جس کی میموری ابھی ختم ہوئی، تو آپ عین اسی لمحے مسئلے کا منظر کھو دیتے ہیں جب آپ کو اس کی ضرورت ہو۔ ایک چھوٹا الگ VPS تب بھی کام کرتا رہتا ہے جب پروڈکشن مشین نہیں کرتی۔

تبصرے

ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔

ایک تبصرہ چھوڑیں

تبصرے ظاہر ہونے سے پہلے moderate کیے جاتے ہیں۔