2017-05-16 42 views
6

Tôi muốn sử dụng Prometheus để theo dõi các container docker của tôi. Tôi có thể chạy Prometheus với Grafana nhưng tôi không biết cách hướng dẫn nó theo dõi các vùng chứa docker khác. Nếu có thể, tôi muốn xem một số ví dụ. Ví dụ: tôi có các thùng chứa Ubuntu chạy trên máy chủ của tôi cũng như Vùng chứa Gentoo. Làm thế nào tôi có thể nói với Prometheus để theo dõi họ, hoặc có lẽ để theo dõi một số ứng dụng (s) chạy bên trong? Cảm ơn trước vì đã dành thời gian và kiên nhẫn với tôi.Prometheus - cách theo dõi các thùng chứa docker khác

Trả lời

6

Bạn có thể sử dụng cadvisor, cung cấp cho người dùng vùng chứa hiểu biết về việc sử dụng tài nguyên và đặc tính hiệu suất của vùng chứa đang chạy của họ.

Một very good article về việc thiết lập Prometheus theo dõi Docker đang sử dụng kiến ​​trúc này:

cAdvisor with prometheus

Tóm lại, ý tưởng là để thu thập thông tin về container sử dụng cAdvisor và đặt chúng vào Prometheus cơ sở dữ liệu. Grafana sẽ truy vấn cơ sở dữ liệu Prometheus và hiển thị biểu đồ/giá trị giám sát.

Để thu thập dữ liệu từ cAdvisor để Prometheus, bạn sẽ phải chỉnh sửa một configuration file (prometheus.yml):

scrape_configs: 
    - job_name: 'cadvisor' 
    scrape_interval: 5s 
    static_configs: 
     - targets: ['cadvisor:8080'] 

Khi bạn có một số dữ liệu trong Prometheus, các bạn phải sử dụng Grafana để xem nó. A (ngắn) ví dụ về giám sát json thắc mắc bạn có thể nhập khẩu vào Grafana là như sau:

Nhận% số người sử dụng CPU:

"targets": [ 
    { 
     "expr": "sum(rate(container_cpu_user_seconds_total{image!=\"\"}[1m]))/count(node_cpu{mode=\"system\"}) * 100", 
     "interval": "10s", 
     "intervalFactor": 1, 
     "legendFormat": "", 
     "refId": "A", 
     "step": 10 
    } 
    ] 

Nhận% RAM sử dụng:

"targets": [ 
    { 
     "expr": "(sum(node_memory_MemTotal) - sum(node_memory_MemFree+node_memory_Buffers+node_memory_Cached))/sum(node_memory_MemTotal) * 100", 
     "interval": "10s", 
     "intervalFactor": 2, 
     "legendFormat": "", 
     "refId": "A", 
     "step": 20 
    } 
    ] 

Để có dữ liệu json hoàn chỉnh (quá dài để được đăng tại đây), bạn có thể sao chép kho lưu trữ này:

git clone https://github.com/stefanprodan/dockprom 

Và thử nhập Grafana json này.

Tôi hiện đang sử dụng kiến ​​trúc này để theo dõi cụm docker swarm mode trong sản xuất và đây là đầu ra của giám sát mà bạn có thể tìm thấy trong kho lưu trữ github.

prometheus with grafana

+0

Cảm ơn !!! Tôi sẽ kiểm tra nó, thử nó và cho bạn biết. Tôi đang tìm kiếm một cái gì đó đơn giản nhưng đủ mạnh mẽ và tin rằng Prometheus là một lựa chọn tốt. – ivo

+0

Bạn được chào đón, tôi đang sử dụng ngăn xếp này (3 nhà xuất khẩu nút/quản lý cảnh báo) ở 3 trang web trên toàn thế giới, tôi thực sự đánh giá cao sự đơn giản của việc triển khai container 'collectors' (xuất khẩu cAdvisor/node) trong máy chủ và xem đồ thị xuất hiện như ma thuật! –

+0

Cảm ơn bạn đã chia sẻ câu trả lời này. Giúp tôi trong trường hợp sử dụng của tôi là –

Các vấn đề liên quan