Grafana Monitoring – #2 Prometheus

1 min read

grafana

Bài viết này sẽ hướng dẫn cài đặt và sử dụng công cụ liên kết với Grafana để query và export các thông số của server client

Services:

  • Prometheus: Giám sát hệ thống và công cụ cảnh báo
  • Node exporter: thiết kế để giám sát hệ thống

Cài đặt

Sử dụng binary package và systemd để chạy service

  • Câu lệnh để setup thư mục
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
sudo tar -xvf prometheus-2.47.0.linux-amd64.tar.gz -C /opt/
sudo mv /opt/prometheus-2.47.0.linux-amd64 /opt/prometheus
  • Tạo systemd service cho prometheus
sudo vim /etc/systemd/system/prometheus.service
  • Nội dụng của prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
User=root
Group=root
Restart=on-failure
ExecStart=/opt/prometheus/prometheus \
  --config.file=/opt/prometheus/prometheus.yml \
  --storage.tsdb.path=/opt/prometheus/data \
  --storage.tsdb.retention.time=30d

[Install]
WantedBy=multi-user.target
  • Bật và khởi động service
sudo systemctl daemon-reload
sudo systemctl enable prometheus.service
sudo systemctl start prometheus.service

Node exporter

  • Tương tự với prometheus, câu lệnh setup
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
sudo tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz -C /opt/
sudo mv /opt/node_exporter-1.6.1.linux-amd64 /opt/node_exporter
  • Tạo systemd service
sudo vim /etc/systemd/system/node_exporter.service
  • Nội dung
[Unit]
Description=Node Exporter Server
After=network-online.target

[Service]
User=root
Group=root
Restart=on-failure
ExecStart=/opt/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
  • Bật và khởi động service
sudo systemctl daemon-reload
sudo systemctl enable node_exporter.service
sudo systemctl start node_exporter.service
  • Chỉnh sửa prometheus config để sử dụng Node Exporter
sudo vim /opt/prometheus/prometheus.yml
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"] # Port của prometheus
  - job_name: 'node' # Tên Job sẽ hiển thị trên dashboard
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9100'] # Port của Node Exporter

Khởi động lại prometheus service

sudo systemctl restart prometheus.service

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *