ابرآراز | ArazCloud

یکپارچه‌سازی سیستم‌های نظارت و هشدار با سرورهای ابری

این مستند راهنمایی برای یکپارچه‌سازی سیستم‌های نظارت و هشدار با سرورهای ابری است. در این مستند، از ابزارهایی مانند Prometheus، Grafana و Alertmanager استفاده خواهیم کرد تا نحوه تنظیم و پیکربندی نظارت و هشدار را نشان دهیم.

پیش‌نیازها

  • یک سرور ابری با سیستم‌عامل Ubuntu 20.04
  • دسترسی به اینترنت
  • دسترسی sudo به سرور

نصب و پیکربندی Prometheus

مرحله 1: نصب Prometheus

ابتدا باید Prometheus را بر روی سرور خود نصب کنید.

# به‌روزرسانی مخازن و نصب ابزارهای ضروری
sudo apt update
sudo apt install -y wget tar

# دانلود و استخراج Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.30.0/prometheus-2.30.0.linux-amd64.tar.gz
tar xvf prometheus-2.30.0.linux-amd64.tar.gz

# انتقال فایل‌های Prometheus به دایرکتوری مناسب
sudo mv prometheus-2.30.0.linux-amd64 /usr/local/bin/prometheus
sudo mv prometheus-2.30.0.linux-amd64/promtool /usr/local/bin/

# ایجاد دایرکتوری برای تنظیمات و داده‌های Prometheus
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

# انتقال فایل‌های تنظیمات
sudo mv prometheus-2.30.0.linux-amd64/prometheus.yml /etc/prometheus/

مرحله 2: پیکربندی Prometheus

فایل تنظیمات Prometheus را برای نظارت بر سرور پیکربندی کنید.

# /etc/prometheus/prometheus.yml

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

مرحله 3: ایجاد سرویس systemd برای Prometheus

یک سرویس systemd ایجاد کنید تا Prometheus به صورت خودکار اجرا شود.

# /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target

[Service]
User=root
ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/

[Install]
WantedBy=multi-user.target

مرحله 4: شروع به کار Prometheus

# بارگذاری تنظیمات systemd و شروع سرویس Prometheus
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

نصب و پیکربندی Node Exporter

مرحله 1: نصب Node Exporter

Node Exporter به شما کمک می‌کند تا متریک‌های سیستم عامل را جمع‌آوری کنید.

# دانلود و استخراج Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvf node_exporter-1.2.2.linux-amd64.tar.gz

# انتقال فایل Node Exporter به دایرکتوری مناسب
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/

مرحله 2: ایجاد سرویس systemd برای Node Exporter

# /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=root
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=default.target

مرحله 3: شروع به کار Node Exporter

# بارگذاری تنظیمات systemd و شروع سرویس Node Exporter
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

نصب و پیکربندی Grafana

مرحله 1: نصب Grafana

# افزودن مخزن Grafana
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

# نصب Grafana
sudo apt-get update
sudo apt-get install -y grafana

مرحله 2: شروع به کار Grafana

# شروع سرویس Grafana و فعال‌سازی آن برای راه‌اندازی خودکار
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

مرحله 3: پیکربندی Grafana

پس از نصب، می‌توانید به رابط کاربری وب Grafana در پورت 3000 دسترسی پیدا کنید. به آدرس http://your_server_ip:3000 بروید و با کاربر پیش‌فرض admin و رمز عبور admin وارد شوید. سپس می‌توانید دیتاسورس Prometheus را اضافه کرده و داشبوردهای مورد نیاز خود را ایجاد کنید.

پیکربندی سیستم هشدار با Alertmanager

مرحله 1: نصب Alertmanager

# دانلود و استخراج Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.22.2/alertmanager-0.22.2.linux-amd64.tar.gz
tar xvf alertmanager-0.22.2.linux-amd64.tar.gz

# انتقال فایل‌های Alertmanager به دایرکتوری مناسب
sudo mv alertmanager-0.22.2.linux-amd64 /usr/local/bin/alertmanager

مرحله 2: پیکربندی Alertmanager

فایل تنظیمات Alertmanager را ایجاد کنید.

# /etc/alertmanager/alertmanager.yml

global:
  resolve_timeout: 5m

route:
  receiver: 'webhook'

receivers:
  - name: 'webhook'
    webhook_configs:
      - url: 'http://localhost:5001/'

مرحله 3: ایجاد سرویس systemd برای Alertmanager

# /etc/systemd/system/alertmanager.service

[Unit]
Description=Prometheus Alertmanager
Wants=network-online.target
After=network-online.target

[Service]
User=root
ExecStart=/usr/local/bin/alertmanager --config.file=/etc/alertmanager/alertmanager.yml

[Install]
WantedBy=multi-user.target

مرحله 4: شروع به کار Alertmanager

# بارگذاری تنظیمات systemd و شروع سرویس Alertmanager
sudo systemctl daemon-reload
sudo systemctl start alertmanager
sudo systemctl enable alertmanager

تنظیم هشدارها در Prometheus

برای تنظیم هشدارها در Prometheus، فایل تنظیمات را به‌روزرسانی کنید.

# /etc/prometheus/prometheus.yml

rule_files:
  - "alert.rules.yml"

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - localhost:9093

# افزودن یک فایل جدید برای تعریف قوانین هشدار
cat <<EOF > /etc/prometheus/alert.rules.yml
groups:
- name: example
  rules:
  - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
      severity: page
    annotations:
      summary: "Instance {{ $labels.instance }} down"
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."
EOF

نتیجه‌گیری

با این راهنمای مستند، شما می‌توانید یک سیستم نظارت و هشدار کامل را با استفاده از Prometheus، Grafana و Alertmanager بر روی سرورهای ابری خود پیکربندی کنید. این سیستم به شما کمک می‌کند تا عملکرد و سلامت سرورهای خود را بهبود بخشید و مشکلات را به موقع شناسایی و رفع کنید.