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:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
Giải nén file:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Di chuyển các file binary vào thư mục /usr/local/bin:
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:
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):
prometheus: để thu thập metric từ chính Prometheus.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:
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:
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:
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:
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:
- 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:
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:
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:
rule_files:
- "alert.rules"
alerting:
alertmanagers:
- static_configs:
- targets:
- "localhost:9093"
Tạo file alert.rules với ví dụ về quy tắc:
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."
GO TO FULL VERSION