CodeGym /Các khóa học /Docker SELF /Cài đặt monitoring containers với Prometheus

Cài đặt monitoring containers với Prometheus

Docker SELF
Mức độ , Bài học
Có sẵn

4.1 Cài đặt Prometheus

Prometheus — là một hệ thống giám sát và thông báo mạnh mẽ mã nguồn mở, được thiết kế để thu thập và lưu trữ các thông số kỹ thuật từ nhiều nguồn khác nhau, bao gồm cả các container Docker. Trong bài giảng này, tụi mình sẽ tìm hiểu chi tiết quá trình cài đặt giám sát container bằng Prometheus, bao gồm việc cài đặt, cấu hình thu thập thông số kỹ thuật và tích hợp với Docker.

1. Tải và cài đặt Prometheus

Đầu tiên, tải phiên bản mới nhất của Prometheus từ trang web chính thức:

Terminal

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

Giải nén file:

Terminal

tar xvfz prometheus-*.tar.gz
cd prometheus-*      

Di chuyển các file binary vào thư mục /usr/local/bin:

Terminal

sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/

4.2 Cấu hình file cấu hình Prometheus

Prometheus dùng file cấu hình prometheus.yml để xác định nguồn metric và cài đặt thu thập dữ liệu. Tạo hoặc chỉnh sửa file prometheus.yml:

Yaml

global:
  scrape_interval: 15s  # Khoảng cách thu thập metric
      
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

File cấu hình này bao gồm hai nhiệm vụ (job):

  1. prometheus: để thu thập metric từ chính Prometheus.
  2. cadvisor: để thu thập metric từ cAdvisor, công cụ sẽ dùng để monitor Docker container.

5.3 Chạy Prometheus

Chạy Prometheus bằng cách sử dụng file cấu hình đã tạo:

Terminal

prometheus --config.file=prometheus.yml

Prometheus sẽ có sẵn tại địa chỉ http://localhost:9090.

5.4 Cài đặt và cấu hình cAdvisor

cAdvisor (Container Advisor) — là công cụ giám sát container, thu thập và cung cấp các metric cho container Docker. Để sử dụng nó, làm theo các bước sau:

Chạy cAdvisor trong Docker container:

Terminal

docker run -d \
  --name=cadvisor \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --privileged \
  gcr.io/cadvisor/cadvisor:latest

cAdvisor sẽ có thể truy cập tại địa chỉ http://localhost:8080.

5.5 Cập nhật cấu hình Prometheus cho cAdvisor

Hãy đảm bảo rằng cấu hình của Prometheus bao gồm nhiệm vụ cho cAdvisor. Ví dụ về cấu hình đã được trình bày ở trên.

Khởi động lại Prometheus để áp dụng các thay đổi:

Terminal

prometheus --config.file=prometheus.yml

5.6 Kiểm tra thu thập metric

Truy cập giao diện web của Prometheus tại địa chỉ http://localhost:9090 và đảm bảo rằng Prometheus đang thu thập metric từ cAdvisor. Để làm điều này, hãy thực hiện truy vấn trên Prometheus:

Terminal

container_cpu_usage_seconds_total

Bạn sẽ thấy dữ liệu được thu thập từ các Docker-container.

5.7 Thêm các metric bổ sung

Bạn có thể thêm các metric bổ sung vào file cấu hình Prometheus để thu thập nhiều dữ liệu hơn về container của mình. Ví dụ về các metric bổ sung:

Yaml

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Để làm được việc này, bạn cần cài đặt node_exporter, cung cấp các metric về trạng thái của hệ thống chủ.

Tải xuống và cài đặt node_exporter:

Terminal

wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/

Chạy node_exporter:

Terminal

node_exporter &

Bây giờ node_exporter sẽ có sẵn tại địa chỉ http://localhost:9100.

5.8 Tạo quy tắc cảnh báo

Prometheus hỗ trợ tạo quy tắc cảnh báo để thông báo cho admin về các vấn đề. Thêm quy tắc cảnh báo vào file cấu hình prometheus.yml:

Yaml

rule_files:
  - "alert.rules"
      
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"

Tạo file alert.rules với ví dụ về quy tắc:

Yaml

groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "Phát hiện sử dụng CPU cao"
      description: "Container đang sử dụng hơn 85% CPU trong hơn 1 phút."
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION