মনিটরিং আর অ্যালার্ট

সার্ভার কনফিগ রেকমেন্ডেশন

মনিটরিং অপশনাল না, জরুরি বিষয়

সার্ভিস ডাউন হলে ইউজার বলার আগেই জানো —— ইউজার আসার অপেক্ষা করবে না

ডিপ্লয়মেন্ট অপশন সার্চ করো...

😰 মাঝরাতে সার্ভিস ডাউন কেউ জানে না

শুক্রবার সন্ধ্যায় অফিস থেকে বেরিয়ে সার্ভার নীরবে ক্র্যাশ হয়েছে, সোমবার সকালে অনেক লোক "ব্যবহার করা যাচ্ছে না" বলে জানায়। সার্ভার খুলে দেখলি —— ডিস্ক পূর্ণ, লগ ফাইল নিয়ন্ত্রণহীনভাবে বেড়েছে স্পেস মুছেছে। মনিটরিং এলার্ট থাকলে শুক্রবার সন্ধ্যায় নোটিফিকেশন পেতেন, পাঁচ মিনিটে সমাধান করতেন।

Prometheus + Grafana + সতর্কতা বিজ্ঞপ্তি

ব্যবহার করো Nginx রিভার্স প্রক্সি, মাল্টিপল সার্ভিস 80/443 পোর্ট শেয়ার করতে পারে, ডোমেইনের সাথে মিলিয়ে।

এক ক্লিক মনিটরিং স্ট্যাক স্থাপনা

docker-compose দিয়ে Prometheus, Grafana, Node Exporter সবাইকে একসাথে টানো:

ডিপ্লয় মনিটরিং স্ট্যাক
# মনিটরিং ডিরেক্টরি তৈরি করুন
docker-compose.yml — মনিটরিং স্ট্যাক
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: always
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - ./alert_rules.yml:/etc/prometheus/alert_rules.yml
      - prometheus_data:/prometheus
    command:
      - "--config.file=/etc/prometheus/prometheus.yml"
      - "--storage.tsdb.retention.time=30d"

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: always
    ports:
      - "3001:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=your_secure_password

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    restart: always
    ports:
      - "9100:9100"
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - "--path.procfs=/host/proc"
      - "--path.sysfs=/host/sys"
      - "--path.rootfs=/rootfs"

  alertmanager:
    image: prom/alertmanager:latest
    container_name: alertmanager
    restart: always
    ports:
      - "9093:9093"
    volumes:
      - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml

volumes:
  prometheus_data:
  grafana_data:

Prometheus কনফিগারেশন

prometheus.yml
global:

এলার্ট রুল

alert_rules.yml — সতর্ক নিয়ম
groups:

এলার্ট বিজ্ঞপ্তি কনফিগারেশন

এলার্ট ট্রিগার হওয়ার পর তোমাকে কিভাবে জানাবে? ইমেইল পাঠাতে পারে, Dingtalk/এন্টারপ্রাইজ WeChat/Slack এ পুশ করতে পারে:

alertmanager.yml — বিজ্ঞপ্তি কনফিগারেশন
global:
এই টিউটোরিয়াল শুরু থেকে শেষ পর্যন্ত, সার্ভার কেনা থেকে ডিপ্লয় শেষ, সব হ্যান্ড-ইন-হ্যান্ড। যদিও ক্লাউড সার্ভার কখনো ব্যবহার করেনি, এটা অনুসরণ করলে শেষ করতে পারবে।