مقدمه
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