رفتن به محتوا
بازگشت به وبلاگ
لینوکس

پایش لینوکس با Prometheus Node Exporter

استقرار Prometheus Node Exporter برای متریک‌های عمیق سیستم لینوکس: CPU، حافظه، دیسک، شبکه و Collector های اختصاصی با داشبوردهای Grafana.

آبان ۱۴۰۴
۱۱ دقیقه مطالعه

مقدمه

Prometheus یک سیستم پایش pull-based است که معیارها را از اهداف در فواصل تعریف‌شده جمع‌آوری می‌کند. Node Exporter معیارهای سیستم لینوکس را در قالب Prometheus نمایش می‌دهد.

نصب Node Exporter

BASH
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xzf node_exporter-1.7.0.linux-amd64.tar.gz
cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/

systemctl enable node_exporter
systemctl start node_exporter
curl -s http://localhost:9100/metrics | head -30

پیکربندی Prometheus

YAML
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets:
          - 'web-server-1:9100'
          - 'db-server-1:9100'

قوانین هشدار

YAML
groups:
  - name: infrastructure
    rules:
      - alert: HighCPULoad
        expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
        for: 5m
        labels:
          severity: warning

      - alert: LowDiskSpace
        expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 15
        for: 5m
        labels:
          severity: critical

      - alert: HostDown
        expr: up == 0
        for: 1m
        labels:
          severity: critical

جست‌وجوهای PromQL مفید

PROMQL
# استفاده CPU
100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# استفاده حافظه
(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100

# استفاده دیسک
(1 - node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100