- vừa được xem lúc

Giám sát Docker hiệu quả với Prometheus và Grafana

0 0 4

Người đăng: Vinh Phạm

Theo Viblo Asia

Prometheus và Grafana là bộ đôi công cụ mạnh mẽ giúp giám sát ứng dụng và hạ tầng container. Việc triển khai và quản lý bộ đôi này trở nên đơn giản hơn bao giờ hết với Docker, cho phép giám sát thời gian thực, trực quan hóa số liệu và thiết lập cảnh báo.

Tổng quan

  • Prometheus : Một hệ thống giám sát nguồn mở thu thập số liệu từ các ứng dụng và cơ sở hạ tầng. Nó sử dụng cơ chế kéo và lưu trữ dữ liệu chuỗi thời gian.
  • Grafana : Một công cụ trực quan hóa tạo ra các bảng thông tin tương tác và có thể tùy chỉnh bằng cách sử dụng dữ liệu từ Prometheus và các nguồn khác.

Tại sao nên sử dụng Prometheus và Grafana với Docker?

  • Dễ dàng thiết lập : Docker cung cấp các hình ảnh dựng sẵn cho Prometheus và Grafana, giúp giảm độ phức tạp khi thiết lập.
  • Tính di động : Chạy Prometheus và Grafana trong các vùng chứa riêng biệt, đảm bảo tính nhất quán giữa các môi trường.
  • Khả năng mở rộng : Dễ dàng mở rộng thiết lập giám sát bằng cách triển khai container trên nhiều máy chủ bằng Docker Compose hoặc các công cụ điều phối như Kubernetes.
  • Tích hợp : Giám sát các container Docker, dịch vụ và thành phần cơ sở hạ tầng khác.

Thiết lập Prometheus và Grafana với Docker

1. Điều kiện tiên quyết

  • Cài đặt Docker và Docker Compose trên hệ thống của bạn.
  • Hiểu biết cơ bản về Docker và mạng container.

2. Định nghĩa một tệp Docker Compose

Tạo một tệp docker-compose.yml để cấu hình Prometheus và Grafana.

version: '3.8' services: prometheus: image: prom/prometheus:latest container_name: prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090" grafana: image: grafana/grafana:latest container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin

3. Cấu hình Prometheus

Tạo một tệp prometheus.yml để xác định cấu hình Prometheus.

global: scrape_interval: 15s scrape_configs: - job_name: 'docker' static_configs: - targets: ['host.docker.internal:9323']

Trong ví dụ này:

  • Prometheus thu thập số liệu từ máy chủ Docker bằng điểm cuối số liệu của Docker Daemon (thông qua cổng 9323).

4. Chạy Stack

Chạy stack Prometheus và Grafana bằng Docker Compose:

docker-compose up -d

Lệnh này sẽ khởi động:

5. Thêm nguồn dữ liệu vào Grafana

  • Truy cập Grafana tại http://localhost:3000 (tên người dùng/mật khẩu mặc định: admin/admin). Điều hướng đến Cấu hình > Nguồn dữ liệu.

  • Thêm Prometheus làm nguồn dữ liệu: Địa chỉ URL: http://host.docker.internal:9090

  • Lưu và kiểm tra.

6. Nhập bảng điều khiển

  • Vào Tạo > Nhập trong Grafana.
  • Sử dụng bảng điều khiển được xây dựng sẵn bằng cách nhập ID từ Thư viện bảng điều khiển Grafana (ví dụ: ID bảng điều khiển giám sát Docker: 12210).
  • Chọn Prometheus làm nguồn dữ liệu và nhập.

Giám sát Docker Container

1. Hiển thị số liệu Docker

Bật số liệu Docker trên máy chủ bằng cách sửa đổi cấu hình Docker Daemon:

  • Thêm nội dung sau vào /etc/docker/daemon.json:
 { "metrics-addr": "0.0.0.0:9323", "experimental": true }
  • Khởi động lại dịch vụ Docker:
 sudo systemctl restart docker

2. Hình dung số liệu container

Prometheus sẽ thu thập số liệu từ Docker Daemon.

Sử dụng bảng thông tin Grafana để trực quan hóa các số liệu như:

  • Sử dụng CPU và bộ nhớ của container
  • Lưu lượng mạng
  • Đĩa I/O

Cấu hình nâng cao

1. Cảnh báo trong Prometheus

Thêm quy tắc cảnh báo vào prometheus.yml:

 rule_files: - "alert.rules" alerting: alertmanagers: - static_configs: - targets: ['host.docker.internal:9093']

Ví dụ alert.rules:

 groups: - name: example rules: - alert: HighCPUUsage expr: container_cpu_usage_seconds_total > 80 for: 5m labels: severity: critical annotations: summary: "High CPU usage detected" description: "Container {{ $labels.container }} is using high CPU."

Bảng điều khiển tùy chỉnh trong Grafana

  • Sử dụng trình xây dựng truy vấn hoặc PromQL để tạo các bảng điều khiển và bảng thông tin tùy chỉnh phù hợp với nhu cầu giám sát của bạn.

Mở rộng quy mô với Docker Swarm hoặc Kubernetes

Triển khai Prometheus và Grafana trên các bộ điều phối để có khả năng mở rộng và chịu lỗi tốt hơn:

  • Sử dụng biểu đồ Kubernetes Helm để thiết lập đơn giản hơn.
  • Tích hợp với các công cụ giám sát như Kubernetes Metrics Server.

Phần kết luận

Sử dụng Docker để triển khai Prometheus và Grafana cung cấp giải pháp giám sát mạnh mẽ, linh hoạt và có thể mở rộng. Với tính đơn giản và container hóa của Docker, việc thiết lập giám sát thời gian thực trở nên đơn giản, đảm bảo cơ sở hạ tầng và ứng dụng của bạn chạy tối ưu.

Hy vọng bài viết mang lại cho bạn những thông tin hữu ích.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

1 1 541

- vừa được xem lúc

Phần 1: Giới thiệu về Kubernetes

Kubernetes là gì. Trang chủ: https://kubernetes.io/. Ai cần Kubernetes.

0 0 102

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 1- Lịch sử)

1. Vì sao nên sử dụng. . .

0 0 107

- vừa được xem lúc

Docker - những kiến thức cơ bản phần 1

Giới thiệu. Nếu bạn đang làm ở một công ty công nghệ thông tin, chắc rằng bạn đã được nghe nói về Docker.

0 0 81

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 2 - Dockerfile)

1. Mở đầu.

0 0 69

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 3: Docker-compose)

1. Mở đầu. . .

0 0 129