این مستند راهنمایی برای یکپارچهسازی سیستمهای نظارت و هشدار با سرورهای ابری است. در این مستند، از ابزارهایی مانند 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 بر روی سرورهای ابری خود پیکربندی کنید. این سیستم به شما کمک میکند تا عملکرد و سلامت سرورهای خود را بهبود بخشید و مشکلات را به موقع شناسایی و رفع کنید.