Cài đặt Prometheus và Grafana

Cần có kiến thức cơ bản về docker như image, container docker-compose, volumes, port, service,... và có đọc trước một chút về Prometheus và Grafana. Có 2 cách cài đặt các service trong hệ thống Prometheus là cài bằng tay (download package hoặc build source code,...) hoặc dùng các container (docker).

Bài viết sử dụng docker để cài đặt.

OS: Centos 8

1. Tổng quan

Hệ thống Prometheus có 2 phần là Prometheus Server và các Node Exporter. Prometheus Server sẽ chủ động scrape các dữ liệu (metrics) được xuất ra bởi các Node Exporter. Các Exporter  sẽ được cài trên các máy chủ cần giám sát và được cung cấp bởi bên thứ ba.

Do Prometheus không mạnh lắm về visualize các metrics, nên thông thường người ta sử dụng Grafana kèm theo Prometheus để visualize.

2. Pull Image

docker pull prom/prometheus

docker pull grafana/grafana

 

3. prometheus.yml

File này dùng để cấu hình các node (windows server, linux server,...) cần monitor (theo dõi). Các node trong file này được định nghĩa ở targets.

Sau khi cài exporter cho node nào đó thì phải thêm vào file này và start lại prometheus.

global:
  scrape_interval: 10s
scrape_configs:
  - job_name: prometheus
    scrape_interval: 5s
    static_configs:
      - targets:
          - 'localhost:9090'
  - job_name: windows-test
    scrape_interval: 5s
    static_configs:
      - targets:
          - '192.168.34.75:9182'
  - job_name: web
    scrape_interval: 5s
    static_configs:
      - targets:
          - '10.0.40.55:9182'
        labels:
          hostname: test-web
          type: windows

4. Windows Exporter

Để export các Metrics (thông số) trên Windows cho Prometheus Server, thì cần có 1 Service gọi là Node Exporter. Trong Windows thì gọi là Windows Exporter. .

Service này chạy ở port 9182, nên phải ở port 9182 trên Firewall của Windows, và Firewall trong hệ thống mạng (nếu có).
Link download exporter
Trong đường dẫn có 2 định dạng, nếu chạy luôn thì dùng .exe, còn không thì dùng msi.

Nếu chọn .msi, thì run cmd với quyền admin, sau đó chạy lệnh dưới.
msiexec /i C:\Prometheus\windows_exporter-0.18.1-amd64.msi ENABLED_COLLECTORS="ad,cpu,cs,logon,memory,logical_disk,os,service,system,process,tcp,net,textfile,thermalzone,iis"
Nếu thành công thì khi vào http://localhost:9182/metrics sẽ thấy hiện lên các thông số

5. Run docker-compose

Tạo file docker-compose.yml có nội dung dưới đây

version: '3.7'

services:

  prometheus:
    image: prom/prometheus
    volumes:
      - /etc/prometheus-docker/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090
    restart: always

  grafana:
    image: grafana/grafana
    user: "0"
    ports:
      - 3000:3000
    volumes:
      - /var/lib/grafana/data:/var/lib/grafana
      - /var/lib/grafana/provisioning:/etc/grafana/provisioning
    restart: always

Sau đó run

docker-compose up -d

Kết quả: 

Truy cập Grafana bằng [IP]:3000 với tài khoản mặc định là admin/admin, và truy cập Prometheus bằng [IP]:9090.

Hình ảnh sau của Prometheus Server sau khi chạy thành công

6. Grafana

 

Truy cập https://grafana.com/grafana/dashboards/ và tìm mã dashboard thích hợp.

Nếu không có dashboard nào ưng ý thì có thể tự tùy biến thêm. Trong ví dụ đã tìm được 2 mã 14510, 13866.

Các hình dưới đây minh họa cho việc import dashboard

 

7. Kết quả