Cách giám sát hệ thống đơn giản với Prometheus và Grafana

Tram Ho

Chào các bạn,

Các bạn là một IT sysadmin thì việc giám sát hệ thống hay gọi tắt là monitor là việc không thể bỏ qua. Khi ứng dụng được triển khai lên production là luôn phải theo dõi, giám sát, theo dõi các thông tin hệ thống (Logs, CPU, RAM, disks, IO operations,…) xác định những thời điểm, khoảng thời gian ảnh hưởng xấu tới hiệu suất của ứng dụng mục đích là đảm bảo ứng dụng luôn hoạt động ổn định. Bài viết hôm nay mình chia sẻ các bạn cách giám sát hệ thống đơn giản với PrometheusGrafana.

1. Tổng quan

1.1 Prometheus​

Prometheus được dùng để giám sát hệ thống thông qua các daemon cài sẵn trên các node, qua đó thu thập các thông tin cần thiết. Prometheus giao tiếp với node qua giao thức http/https và lưu trữ data theo dạng time-series database (TSDB).

Time series database (TSDB) là những database được lưu trữ theo các mốc thời gian. Nghĩa là mỗi dữ liệu luôn được gắn với một mốc thời gian nhất đinh từ đó tạo thành chuỗi dữ liêu theo thời gian từ đó giúp chúng ta có thể xem lại dữ liệu cho một khoảng thời gian 1 giờ hay 1 tiếng.

 

Hoạt động của Prometheus

 

  • Prometheus sẽ thực hiện quá trình kéo (pull) các thông số/số liệu (metric) từ các job (exporter).
  • Prometheus sẽ lưu trữ các dữ liệu thu thập được ở local máy chủ.
  • Prometheus sẽ chạy các rule để xử lý các dữ liệu theo nhu cầu cũng như kiểm tra thực hiện các cảnh báo mà bạn mong muốn.

1.2 Grafana

Grafana là một vizualizer hiển thị các metric dưới dạng các biểu đồ (chart) hoặc đồ thị (graph), được tập hợp lại thành dashboard có tính tùy biến cao, giúp dễ dàng theo dõi tình trạng của node. Đơn giản cho các bạn dễ hiểu là sau khi lấy được metric từ các thiết bị, grafana sẽ sử dụng metric đó để phân tích và tạo ra dashboard mô tả trực quan các metric cần thiết cho việc monitoring như CPU, RAM, disks, IO operations…

Grafana dashboard

 

2. Cài đặt Prometheus Grafana

Sau khi thông não chút lí thuyết về Prometheus Grafana bây giờ mình đi tiến hành cài thôi!!

Trong bài viết này mình hướng dẫn các bạn cài Prometheus Grafana bằng docker đơn giản và nhanh gọn lẹ (P/S có nhiều cách cài Prometheus Grafana các bạn lên hỏi anh GG là ra cả núi nhé)

Các bạn vào đây clone repo về và lưu ý mình 2 file chính đó là docker-compose.ymlprometheus.yml

Đầu tiên là VPS hoặc máy ảo các bạn chưa cài docker thì các bạn phải cài docker vì mình đang cài trên docker. Bạn nào chưa biết docker là gì thì xem hướng dẫn ở đây

2.1 Cài docker

(Note: Ở đây mình dùng VPS hệ điều hành (OS) Ubuntu 20.04LTS. Nền tảng khác các bạn cũng làm tương tự nhé)

2.2 Cài đặt Prometheus Grafana

Các bạn tạo một folder prometheus sau đó copy file prometheus.yml clone từ repo ở trên vào.

Xem qua file docker-compose.yml để ý biến môi trường nếu các bạn không dùng domain thì các bạn comment dòng biến môi trường này lại.

Chạy lệnh sau để cài đặt

Sau khi cài đặt xong các bạn chạy lệnh sau để kiểm tra

Các bạn quan sát thấy có 4 container được tạo ra cadvitor, grafana, node_exporter, prometheus như hình trên là OK rồi nhé
Để ý container grafana đang dùng port 3000. Vào trình duyệt Chorme, Firefox… đăng nhập IP VPS của các bạn và port 3000 của grafana. User và password mặc định là admin / admin các bạn đổi lại password mới sau đó nếu muốn.

Grafana login

 

  • Bước đầu tiên các bạn thêm cho mình một data source để lưu lại trước vào cấu hình sau

 

Cấu hình data source

 

  • Tiếp đến các bạn load mẫu dasdboard ID hoặc dạng file json từ trang chủ của grafana ở đây. Muốn ID nào bỏ vào ô tìm kiếm nhoé.

Ở đây mình lấy ID 1860

  • Sau khi load lên các bạn có một dasdboard như này

Các thông tin CPU, Mem, Disk… được thể hiện cụ thể và chi tiết các bạn click vào để xem chi tiết từng option.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo