Prometheus là một nền tảng giám sát và cảnh báo nguồn mở. Ban đầu, Prometheus được Soundcloud tạo ra vào năm 2012. Kể từ đó, dự án Prometheus được một số công ty nổi tiếng áp dụng đã trở thành một dự án lớn hơn với các nhà phát triển và cộng đồng rất tích cực. Vào năm 2016, dự án Prometheus đã được tốt nghiệp theo Cloud Native Computing Foundation (CNCF).
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Prometheus và Node Exporter trên máy chủ Debian 12.
Prometheus cung cấp tính linh hoạt thông qua Ngôn ngữ truy vấn Prometheus (PromQL). Bạn có thể sử dụng PromQL để truy vấn cơ sở dữ liệu chuỗi thời gian Prometheus.
Trên các máy chủ đích, bạn phải cài đặt ứng dụng 'exporter' để hiển thị tất cả dữ liệu và số liệu cho Prometheus. 'Node Exporter' là một trình xuất dữ liệu thường được sử dụng để giám sát các máy Linux.
Node exporter hiển thị phần cứng và ma trận liên quan đến hạt nhân từ các máy Linux. Nó đi kèm dưới dạng một tệp nhị phân duy nhất sẽ hiển thị số liệu cuối dữ liệu cho máy chủ Prometheus.
Trên phiên bản Debian mới nhất, cả Prometheus và Node Exporter đều có sẵn trên kho lưu trữ và có thể được cài đặt bằng trình quản lý gói APT.
Trước tiên, hãy cập nhật và làm mới chỉ mục gói Debian của bạn bằng cách thực hiện lệnh sau.
Bây giờ hãy cài đặt Prometheus và Node Exporter thông qua lệnh apt bên dưới. Kho lưu trữ Debian cung cấp Prometheus 2.42.0 và Node Exporter 1.5.0.
Nhập Y để tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, cả Prometheus và Node Exporter sẽ chạy như một dịch vụ systemd và được bật tự động. Prometheus sẽ có dịch vụ prometheus và Node Exporter sẽ có dịch vụ prometheus-node-exporter.
Xác minh dịch vụ prometheus bằng lệnh sau.
Đầu ra hiển thị bên dưới cho thấy dịch vụ prometheus đang chạy và được bật. Và theo mặc định, nó chạy trên cổng 9090.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22312%22%3E%3C/svg%3E
Bây giờ hãy xác minh dịch vụ prometheus-node-exporter bằng cách thực hiện lệnh sau.
Đầu ra hiển thị sẽ tương tự, cho thấy dịch vụ prometheus-node-exporter đang chạy và được bật. Cổng mặc định cho Node Exporter là 9100.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh prometheus bên dưới để xác minh phiên bản Prometheus.
Sau đó, kiểm tra đường dẫn nhị phân của promtool và phiên bản của nó như thế này. Promtool là một dòng lệnh để quản lý hệ thống giám sát Prometheus.
Dựa trên kết quả hiển thị, Prometheus và promtool 2.42.0 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22726%22%20height=%22374%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh Node Đường dẫn nhị phân của trình xuất prometheus-node-exporter và phiên bản của nó bằng lệnh sau.
Đầu ra hiển thị bên dưới xác nhận rằng Node Exporter 1.5 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22232%22%3E%3C/svg%3E
Mở tệp cấu hình Prometheus mặc định /etc/prometheus/prometheus.yml bằng trình chỉnh sửa nano sau lệnh.
Trong phần scrape_configs, hãy thêm một công việc mới prometheus với điểm cuối mục tiêu 192.168.10.15:9090, đó chính là máy chủ Prometheus.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn đã hoàn tất.
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ prometheus và áp dụng những thay đổi bạn đã thực hiện.
Bây giờ hãy khởi chạy trình duyệt web của bạn và truy cập cài đặt Prometheus, chẳng hạn như http://192.168.10.15:9090. Nếu mọi thứ hoạt động bình thường, bạn sẽ thấy bảng điều khiển Prometheus trong lệnh sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22298%22%3E%3C/svg%3E
Nhấp vào menu Trạng thái > Mục tiêu để lấy danh sách các điểm cuối của hệ thống giám sát mục tiêu. Bạn sẽ thấy điểm cuối prometheus có trạng thái Đang hoạt động.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22309%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể xác minh số liệu của Prometheus bằng cách truy cập URL đường dẫn /metrics, chẳng hạn như http://192.168.10.15:9090/metrics. Bạn sẽ thấy dữ liệu số liệu tương tự được tạo ra bởi Prometheus.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22658%22%3E%3C/svg%3E
Kiểm tra trạng thái dịch vụ prometheus-node-exporter bằng cách thực hiện lệnh sau.
Nếu đang chạy, trạng thái dịch vụ prometheus-node-exporter sẽ như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để đảm bảo cổng 9100 đang ở trạng thái LISTEN mà Node Exporter sử dụng.
Đầu ra sau đây xác nhận rằng Node Exporter sử dụng cổng 9100.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2289%22%3E%3C/svg%3E
Cuối cùng, hãy mở trình duyệt web của bạn và truy cập URL số liệu của Node Exporter, chẳng hạn như http://192.168.10.15:9100/metrics. Bạn sẽ thấy các số liệu được tạo bởi Node Exporter như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22626%22%3E%3C/svg%3E
Mở cấu hình Prometheus /etc/prometheus/prometheus.yml bằng lệnh nano editor sau.
Trong phần scrape_configs, hãy thêm một công việc mới prometheus-node-exporter với điểm cuối là số liệu của Node Exporter như sau.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Tiếp theo, hãy thực hiện lệnh systemctl sau lệnh khởi động lại dịch vụ prometheus và áp dụng các thay đổi.
Cuối cùng, quay lại bảng điều khiển Prometheus, sau đó nhấp vào menu Trạng thái > Mục tiêu. Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy Node Exporter trên điểm cuối mục tiêu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22389%22%3E%3C/svg%3E
Nhập truy vấn node_os_info và nhấp vào nút Thực thi. node_os_info là ngôn ngữ truy vấn do Node Exporter cung cấp để kiểm tra thông tin chi tiết về hệ điều hành.
Trên phần Console, bạn sẽ thấy thông tin chi tiết về máy chủ như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22395%22%3E%3C/svg%3E
Tiếp theo, nhập một truy vấn khác như node_memory_Active_bytes để kiểm tra bộ nhớ đang hoạt động trên máy chủ đích. Trong phần Biểu đồ, bạn sẽ thấy các kết quả tương tự như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22367%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể sử dụng PromQL (Ngôn ngữ truy vấn Prometheus) để lấy dữ liệu cụ thể, chẳng hạn như node_memory_Active_bytes[5] sẽ hiển thị dữ liệu trong 5 phút qua.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Prometheus và Node Exporter trên máy chủ Debian 12.
Điều kiện tiên quyết
Để bắt đầu, hãy đảm bảo bạn có những điều sau:- Máy chủ Debian 12.
- Người dùng không phải root có quyền quản trị viên sudo.
Những khái niệm cơ bản bạn phải biết
Về cơ bản, Prometheus thu thập dữ liệu và số liệu thông qua các điểm cuối HTTP từ các máy chủ đích và sau đó lưu trữ tất cả dữ liệu dưới dạng chuỗi thời gian. Trong Prometheus, dữ liệu chuỗi thời gian được xác định bằng tên số liệu và cặp khóa/giá trị.Prometheus cung cấp tính linh hoạt thông qua Ngôn ngữ truy vấn Prometheus (PromQL). Bạn có thể sử dụng PromQL để truy vấn cơ sở dữ liệu chuỗi thời gian Prometheus.
Trên các máy chủ đích, bạn phải cài đặt ứng dụng 'exporter' để hiển thị tất cả dữ liệu và số liệu cho Prometheus. 'Node Exporter' là một trình xuất dữ liệu thường được sử dụng để giám sát các máy Linux.
Node exporter hiển thị phần cứng và ma trận liên quan đến hạt nhân từ các máy Linux. Nó đi kèm dưới dạng một tệp nhị phân duy nhất sẽ hiển thị số liệu cuối dữ liệu cho máy chủ Prometheus.
Cài đặt Prometheus và Node Exporter
Prometheus là một hệ thống giám sát mã nguồn mở để thu thập số liệu hệ thống. Prometheus sử dụng một trình xuất để thu thập số liệu hệ thống, chẳng hạn như Node Exporter cho phép bạn thu thập số liệu cho hệ thống của mình.Trên phiên bản Debian mới nhất, cả Prometheus và Node Exporter đều có sẵn trên kho lưu trữ và có thể được cài đặt bằng trình quản lý gói APT.
Trước tiên, hãy cập nhật và làm mới chỉ mục gói Debian của bạn bằng cách thực hiện lệnh sau.
Mã:
sudo apt update

Bây giờ hãy cài đặt Prometheus và Node Exporter thông qua lệnh apt bên dưới. Kho lưu trữ Debian cung cấp Prometheus 2.42.0 và Node Exporter 1.5.0.
Mã:
sudo apt install prometheus prometheus-node-exporter
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, cả Prometheus và Node Exporter sẽ chạy như một dịch vụ systemd và được bật tự động. Prometheus sẽ có dịch vụ prometheus và Node Exporter sẽ có dịch vụ prometheus-node-exporter.
Xác minh dịch vụ prometheus bằng lệnh sau.
Mã:
sudo systemctl is-enabled prometheus
sudo systemctl status prometheus
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22312%22%3E%3C/svg%3E
Bây giờ hãy xác minh dịch vụ prometheus-node-exporter bằng cách thực hiện lệnh sau.
Mã:
sudo systemctl is-enabled prometheus-node-exporter
sudo systemctl status prometheus-node-exporter
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh prometheus bên dưới để xác minh phiên bản Prometheus.
Mã:
prometheus --version
Mã:
which promtool
promtool --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22726%22%20height=%22374%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh Node Đường dẫn nhị phân của trình xuất prometheus-node-exporter và phiên bản của nó bằng lệnh sau.
Mã:
which prometheus-node-exporter
prometheus-node-exporter --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22232%22%3E%3C/svg%3E
Cấu hình Prometheus
Sau khi cài đặt Prometheus và Node Exporter, bước tiếp theo bạn sẽ cấu hình Prometheus bằng cách chỉnh sửa tệp cấu hình mặc định prometheus.yml nằm trong thư mục cấu hình prometheus /etc/prometheus.Mở tệp cấu hình Prometheus mặc định /etc/prometheus/prometheus.yml bằng trình chỉnh sửa nano sau lệnh.
Mã:
sudo nano /etc/prometheus/prometheus.yml
Mã:
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["192.168.10.15:9090"]
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ prometheus và áp dụng những thay đổi bạn đã thực hiện.
Mã:
sudo systemctl restart prometheus
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22298%22%3E%3C/svg%3E
Nhấp vào menu Trạng thái > Mục tiêu để lấy danh sách các điểm cuối của hệ thống giám sát mục tiêu. Bạn sẽ thấy điểm cuối prometheus có trạng thái Đang hoạt động.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22309%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể xác minh số liệu của Prometheus bằng cách truy cập URL đường dẫn /metrics, chẳng hạn như http://192.168.10.15:9090/metrics. Bạn sẽ thấy dữ liệu số liệu tương tự được tạo ra bởi Prometheus.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22658%22%3E%3C/svg%3E
Thêm Node Exporter vào Prometheus
Bây giờ bạn đã cấu hình Prometheus, bước tiếp theo là thêm Node Exporter vào cài đặt Prometheus của bạn. Node Exporter sẽ thu thập số liệu từ máy chủ của bạn. Để đạt được điều đó, bạn phải hoàn tất các bước sau:- Kiểm tra Trạng thái Node Exporter: Điều này sẽ đảm bảo rằng Node Exporter đang chạy trước khi tiếp tục.
- Thêm Công việc Mới vào Prometheus: Điều này sẽ chỉ cho bạn cách thêm hệ thống giám sát mục tiêu vào Prometheus.
Kiểm tra Trạng thái Node Exporter
Trước khi thêm Node Exporter vào Prometheus, bạn phải đảm bảo rằng Node Exporter đang chạy mà không có bất kỳ lỗi nào. Bạn có thể thực hiện việc này bằng cách kiểm tra trạng thái dịch vụ prometheus-node-exporter, kiểm tra cổng 9100 được Node Exporter sử dụng và truy cập số liệu Node Exporter từ trình duyệt của bạn.Kiểm tra trạng thái dịch vụ prometheus-node-exporter bằng cách thực hiện lệnh sau.
Mã:
sudo systemctl status prometheus-node-exporter
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để đảm bảo cổng 9100 đang ở trạng thái LISTEN mà Node Exporter sử dụng.
Mã:
ss -tulpn | grep 9100
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2289%22%3E%3C/svg%3E
Cuối cùng, hãy mở trình duyệt web của bạn và truy cập URL số liệu của Node Exporter, chẳng hạn như http://192.168.10.15:9100/metrics. Bạn sẽ thấy các số liệu được tạo bởi Node Exporter như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22626%22%3E%3C/svg%3E
Thêm công việc mới vào Prometheus
Bây giờ Node Exporter đang chạy, bạn đã sẵn sàng để thêm Node Exporter vào Prometheus.Mở cấu hình Prometheus /etc/prometheus/prometheus.yml bằng lệnh nano editor sau.
Mã:
sudo nano /etc/prometheus/prometheus.yml
Mã:
- job_name: 'prometheus-node-exporter'
scrape_interval: 5s
static_configs:
- targets: ['192.168.10.15:9100']
Tiếp theo, hãy thực hiện lệnh systemctl sau lệnh khởi động lại dịch vụ prometheus và áp dụng các thay đổi.
Mã:
sudo systemctl restart prometheus
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22389%22%3E%3C/svg%3E
Cách sử dụng cơ bản Prometheus Dashboard
Trong phần này, bạn sẽ tìm hiểu về truy vấn cơ bản của Prometheus và Node Exporter, có thể được thực hiện từ bảng điều khiển Prometheus.Nhập truy vấn node_os_info và nhấp vào nút Thực thi. node_os_info là ngôn ngữ truy vấn do Node Exporter cung cấp để kiểm tra thông tin chi tiết về hệ điều hành.
Trên phần Console, bạn sẽ thấy thông tin chi tiết về máy chủ như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22395%22%3E%3C/svg%3E
Tiếp theo, nhập một truy vấn khác như node_memory_Active_bytes để kiểm tra bộ nhớ đang hoạt động trên máy chủ đích. Trong phần Biểu đồ, bạn sẽ thấy các kết quả tương tự như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22367%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể sử dụng PromQL (Ngôn ngữ truy vấn Prometheus) để lấy dữ liệu cụ thể, chẳng hạn như node_memory_Active_bytes[5] sẽ hiển thị dữ liệu trong 5 phút qua.