Cách cài đặt Prometheus và Node Exporter trên AlmaLinux 9

theanh

Administrator
Nhân viên
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à vào năm 2016, dự án Prometheus đã tốt nghiệp theo Cloud Native Computing Foundation (CNCF).

Các 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ủ mục tiêu, 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 theo 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. Đây là 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.

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ủ AlmaLinux 9.

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

Đảm bảo rằng bạn có những điều sau trước khi bắt đầu:
  • Hai máy chủ AlmaLinux 9 - Ví dụ này sẽ sử dụng một máy chủ riêng cho Prometheus và Node Exporter.
  • Người dùng không phải root có thể thực thi sudo để có được quyền root.

Cài đặt và cấu hình Prometheus​

Prometheus là một hệ thống giám sát và cảnh báo hệ thống hiện đại và mã nguồn mở. Nó có thể được cài đặt trên các máy chủ Unix/Linux truyền thống thông qua một gói được biên dịch trước, sử dụng công nghệ container như Docker và Kubernetes hoặc các công cụ quản lý cấu hình như Ansible, Chef, Puppet và Saltstack.

Phần sau đây sẽ hướng dẫn bạn cách cài đặt Prometheus thông qua tệp nhị phân dựng sẵn vào máy chủ ALmaLinux 9.

Hoàn thành các bước sau để cài đặt thành công Prometheus trên máy chủ AlmaLinux của bạn:
  • Thiết lập Người dùng và Thư mục
  • Tải xuống Gói nhị phân Prometheus
  • Cấu hình Máy chủ Prometheus
  • Chạy Prometheus ở chế độ nền như một dịch vụ Systemd

Thiết lập người dùng và thư mục​

Trước khi cài đặt prometheus, bạn sẽ tạo một người dùng và thư mục mới trên hệ thống của mình. Người dùng này sẽ được sử dụng để chạy Prometheus và một số thư mục sẽ được sử dụng để lưu trữ các tệp cấu hình và dữ liệu Prometheus.

Chạy lệnh sau để tạo người dùng hệ thống mới prometheus.
Mã:
sudo adduser -M -r -s /sbin/nologin prometheus
Chạy lệnh bên dưới để tạo thư mục mới /etc/prometheus sẽ được sử dụng để lưu trữ các tệp cấu hình Prometheus và thư mục /var/lib/prometheus sẽ được sử dụng làm thư mục dữ liệu cho Prometheus.
Mã:
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
Bây giờ hãy chạy lệnh bên dưới để thay đổi quyền sở hữu của cả hai thư mục /etc/prometheus/var/lib/prometheus thành người dùng prometheus và nhóm prometheus.
Mã:
sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22686%22%20height=%22185%22%3E%3C/svg%3E

Đang tải xuống gói Prometheus đã biên dịch sẵn​

Bây giờ, bạn sẽ cài đặt prometheus trên máy chủ của mình. Trong bản demo này, bạn sẽ cài đặt Prometheus thông qua gói nhị phân được biên dịch sẵn. Bạn sẽ cài đặt Prometheus trên máy chủ AlmaLinux có địa chỉ IP 192.168.10.20.

Chạy lệnh dnf bên dưới để cài đặt wget vào hệ thống của bạn.
Mã:
sudo dnf install wget -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22238%22%3E%3C/svg%3E


Di chuyển thư mục làm việc của bạn đến /usr/src và tải xuống tệp nhị phân được biên dịch trước của Prometheus thông qua wget.
Mã:
cd /usr/src
wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
Bây giờ hãy giải nén tệp nhị phân Prometheus prometheus-2.44.0.linux-amd64.tar.gz bằng lệnh tar bên dưới. Bạn sẽ nhận được một thư mục mới prometheus-2.44.0.linux-amd64 chứa tệp nhị phân Prometheus và một số cấu hình mặc định.
Mã:
tar -xf prometheus-2.44.0.linux-amd64.tar.gz
Chạy lệnh bên dưới để sao chép tệp cấu hình Prometheus mặc định prometheus.yml và một số thư mục quan trọng vào /etc/prometheus/.
Mã:
sudo cp /usr/src/prometheus-*/prometheus.yml /etc/prometheus/
sudo cp -r /usr/src/prometheus-*/consoles /etc/prometheus
sudo cp -r /usr/src/prometheus-*/console_libraries /etc/prometheus
Sau đó, thay đổi quyền sở hữu thư mục /etc/prometheus/ thành người dùng promtheus và nhóm prometheus bằng cách sử dụng lệnh sau lệnh.
Mã:
sudo chown -R prometheus:prometheus /etc/prometheus

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22216%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh sau để sao chép tệp nhị phân của prometheuspromtool vào /usr/bin/ thư mục.
Mã:
sudo cp /usr/src/prometheus-*/prometheus /usr/bin/
sudo cp /usr/src/prometheus-*/promtool /usr/bin/
Sau đó, xác minh prometheus và promtool bằng cách sử dụng lệnh sau lệnh.
Mã:
which prometheus
prometheus --version
Mã:
which promtool
promtool --version
Nếu cài đặt thành công, bạn sẽ thấy đường dẫn đầy đủ của lệnh prometheus và promtool, nằm trong thư mục /usr/bin/. Bạn cũng sẽ thấy phiên bản đã cài đặt của Prometheus.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22429%22%3E%3C/svg%3E

Cấu hình Prometheus​

Sau khi prometheus được tải xuống và cài đặt, bạn sẽ bắt đầu cấu hình cơ bản của Prometheus.

Mở tệp cấu hình prometheus /etc/prometheus/prometheus.yml bằng nano biên tập viên.
Mã:
nano /etc/prometheus/prometheus.yml
Tại tham số scrape_configs, thêm công việc mới prometheus với mục tiêu là chính máy chủ Prometheus. Trong ví dụ này, máy chủ Prometheus có địa chỉ IP là 192.168.10.20 và điều này sẽ thu thập số liệu cho Prometheus.
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.20:9090"]
Lưu và đóng tệp khi hoàn tất.

Tiếp theo, tạo tệp dịch vụ systemd mới cho prometheus thành /etc/systemd/system/prometheus.service bằng trình chỉnh sửa nano lệnh.
Mã:
sudo nano /etc/systemd/system/prometheus.service
Thêm cấu hình sau để chạy Prometheus dưới dạng dịch vụ systemd.
Mã:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/bin/prometheus \
 --config.file /etc/prometheus/prometheus.yml \
 --storage.tsdb.path /var/lib/prometheus/ \
 --web.console.templates=/etc/prometheus/consoles \
 --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target
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 sau để tải lại trình quản lý systemd và áp dụng các thay đổi cho systemd.
Mã:
sudo systemctl daemon-reload
Sau đó, khởi động và kích hoạt dịch vụ prometheus bằng lệnh systemctl bên dưới.
Mã:
sudo systemctl start prometheus
sudo systemctl enable prometheus

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22192%22%3E%3C/svg%3E


Kiểm tra dịch vụ prometheus để đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl status prometheus
Nếu cài đặt thành công, bạn sẽ thấy trạng thái dịch vụ prometheus là hoạt động (đang chạy).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22142%22%3E%3C/svg%3E


Cuối cùng, hãy khởi chạy trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 9090 (tức là http://192.168.10:20:9090/). Nếu cài đặt thành công, bạn sẽ nhận được trang đồ thị Prometheus như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E


Bạn cũng có thể xác minh trạng thái điểm cuối giám sát bằng cách nhấp vào Trạng thái > Mục tiêu. Bạn sẽ thấy job_name prometheus với trạng thái UP.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E

Cài đặt và cấu hình Node Exporter trên Target Monitoring​

Node Exporter là một ứng dụng của Prometheus cho phép hiển thị các số liệu hệ thống của mục tiêu giám sát. Nó cho phép bạn thu thập nhiều số liệu hệ thống khác nhau và có thể được hiển thị để Prometheus xử lý thêm.

Trong phần này, bạn sẽ cài đặt Node Exporter trên máy chủ AlmaLinux 9 có địa chỉ IP là 192.168.10.21. Bạn sẽ cài đặt Node Exporter thông qua một gói nhị phân được biên dịch trước do Prometheus cung cấp.

Tải xuống và cài đặt Node Exporter​

Để cài đặt Node Exporter, bạn phải tạo một người dùng hệ thống chuyên dụng cho nó và tải xuống gói nhị phân của Node Exporter vào hệ thống của bạn.

Trước tiên, hãy chạy lệnh sau để tạo một người dùng hệ thống mới node_exporter.
Mã:
sudo adduser -M -r -s /sbin/nologin node_exporter
Cài đặt wget bằng lệnh dnf bên dưới.
Mã:
sudo dnf install wget -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E


Sau đó, di chuyển đến thư mục /usr/src và tải xuống tệp nhị phân đã biên dịch trước của Node Exporter qua wget.
Mã:
cd /usr/src/
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
Sau khi tải xuống hoàn tất, bạn sẽ thấy tệp node_exporter-1.6.0.linux-amd64.tar.gz. Giải nén bằng lệnh tar bên dưới.
Mã:
tar -xf node_exporter-1.6.0.linux-amd64.tar.gz
Tiếp theo, di chuyển tệp nhị phân của Node Exporter vào thư mục /usr/bin bằng lệnh bên dưới.
Mã:
mv node_exporter-*/node_exporter /usr/bin
Bây giờ hãy xác minh Node Exporter bằng lệnh bên dưới. Nếu thành công, bạn sẽ nhận được đường dẫn nhị phân đầy đủ và phiên bản của Node Exporter.
Mã:
which node_exporter
node_exporter --version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22709%22%20height=%22333%22%3E%3C/svg%3E

Chạy Node Exporter ở chế độ nền dưới dạng dịch vụ​

Sau Node Exporter đã được cài đặt, bạn sẽ thiết lập và chạy Node Exporter ở chế độ nền như một dịch vụ systemd.

Để thực hiện điều đó, hãy tạo một tệp dịch vụ systemd mới /etc/systemd/system/node_exporter.service bằng lệnh nano editor bên dưới. Trong ví dụ này, bạn sẽ chạy Node Exporter như một dịch vụ systemd.
Mã:
sudo nano /etc/systemd/system/node_exporter.service
Chèn cấu hình sau vào tệp.
Mã:
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/bin/node_exporter

[Install]
WantedBy=multi-user.target
Lưu và thoát tệp khi bạn hoàn tất.

Bây giờ hãy chạy lệnh systemctl bên dưới để tải lại systemd quản lý.
Mã:
sudo systemctl daemon-reload
Sau đó khởi động và kích hoạt dịch vụ node_exporter bằng lệnh sau.
Mã:
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22201%22%3E%3C/svg%3E


Sau khi node_exporter được khởi động và bật, hãy chạy lệnh sau để xác minh và đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status node_exporter
Nếu đang chạy, bạn sẽ thấy dịch vụ node_exporter có trạng thái hoạt động (đang chạy).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22197%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh sau để xác minh cổng của Node Exporter. Theo mặc định, nó chạy trên cổng 9100.
Mã:
ss -tulpn | grep node
Bạn sẽ thấy cổng 9100 được dịch vụ node_exporter sử dụng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2293%22%3E%3C/svg%3E


Bạn cũng có thể xác minh thông qua trình duyệt web bằng cách truy cập địa chỉ IP của máy chủ theo sau là cổng 9100 (ví dụ: http://192.168.10.21:9100/). Bạn sẽ thấy dữ liệu điểm cuối của giám sát máy chủ thông qua Node Exporter.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22434%22%3E%3C/svg%3E

Thêm Node Exporter vào Prometheus Server​

Trong phần này, bạn sẽ thêm Node Exporter vào máy chủ Prometheus. Bạn đã cài đặt và hiển thị số liệu hệ thống trên máy chủ 192.168.10.21, sau đó bạn sẽ thêm nó vào máy chủ Prometheus đang chạy trên 192.168.10.20.

Mở cấu hình Prometheus /etc/prometheus/prometheus.yml bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/prometheus/prometheus.yml
Trong tham số scrape_config, hãy thêm job_name node_exporter_metrics mới và nhập điểm cuối chi tiết của Node Exporter. Ví dụ sau đây sẽ giám sát máy chủ node1 với địa chỉ IP 192.168.10.21.
Mã:
- job_name: 'node_exporter_metrics'
 scrape_interval: 5s
 static_configs:
 - targets: ['192.168.10.21:9100']
Lưu tệp và thoát khỏi trình chỉnh sửa sau khi hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22663%22%20height=%22345%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh sau để khởi động lại dịch vụ prometheus và áp dụng các thay đổi.
Mã:
sudo systemctl restart prometheus
Bây giờ hãy mở prometheus từ trình duyệt web của bạn và nhấp vào Trạng thái > Mục tiêu để đảm bảo rằng Node Exporter đã được thêm vào. Nếu thành công, bạn sẽ thấy công việc node_exporter_metrics có trạng thái LÊN.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22284%22%3E%3C/svg%3E


Tiếp theo, di chuyển đến menu Biểu đồ và nhập truy vấn bắt đầu bằng node_ để có danh sách các truy vấn do Node Exporter cung cấp.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22435%22%3E%3C/svg%3E


Nhập truy vấn node_network_iface_id để lấy danh sách các thiết bị mạng trên máy chủ 192.168.10.21.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22262%22%3E%3C/svg%3E


Bạn cũng có thể xác minh thông tin chi tiết về hệ điều hành thông qua truy vấn node_os_info.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22237%22%3E%3C/svg%3E


Cuối cùng, nhập truy vấn node_load15 và nhấp vào Tab Biểu đồ để biết trạng thái tải hệ thống trong 15 phút qua.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22466%22%3E%3C/svg%3E

Kết luận​

Làm tốt lắm! Bạn đã cài đặt thành công Prometheus trên máy chủ AlmaLinux 9 và cũng đã giám sát một máy chủ AlmaLinux thông qua Node Exporter.

Bây giờ bạn có thể giám sát một máy chủ khác hoặc giám sát ứng dụng của mình thông qua Prometheus exporter. Bạn cũng có thể tích hợp Prometheus của mình với Grafana để trực quan hóa hệ thống giám sát của mình.
 
Back
Bên trên