Prometheus là một hệ thống giám sát nguồn mở cho phép bạn thu thập số liệu từ bất kỳ hệ thống mục tiêu nào được cấu hình. Prometheus triển khai một mô hình dữ liệu đa chiều với các truy vấn mạnh mẽ, khả năng trực quan hóa tuyệt vời, cảnh báo chính xác và đi kèm với nhiều tích hợp.
Prometheus ban đầu được SoundCloud tạo ra vào năm 2012, nhưng hiện đã trở thành một dự án nguồn mở độc lập được cộng đồng nguồn mở duy trì độc lập - tất cả các thành phần đều có sẵn theo Giấy phép Apache 2 trên Github.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Prometheus và node_exporter. Chúng tôi sẽ cài đặt hệ thống giám sát Prometheus và sau đó cấu hình node_exporter để thu thập số liệu từ máy chủ. Chúng tôi sẽ sử dụng máy chủ CentOS 7 cho hướng dẫn này.
Tạo người dùng 'prometheus' mới bằng lệnh bên dưới.
Một người dùng mới đã được tạo. Bây giờ hãy đăng nhập vào tài khoản người dùng và tải xuống prometheus bằng lệnh wget.
Giải nén tệp prometheus-xx.x.x.tar.gz và đổi tên thư mục thành 'prometheus'.
Prometheus được tải xuống máy chủ và tất cả các tệp prometheus đều nằm trong thư mục '/home/prometheus/prometheus'.
Đi tới thư mục '/etc/systemd/system/' và tạo tệp dịch vụ mới 'prometheus.service' bằng vimeditor.
Dán cấu hình dịch vụ prometheus bên dưới.
Lưu và thoát.
Bây giờ hãy tải lại hệ thống systemd bằng lệnh systemctl bên dưới.
Khởi động dịch vụ prometheus và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Prometheus hiện đang chạy dưới dạng dịch vụ systemd, hãy kiểm tra dịch vụ này bằng lệnh bên dưới.
Đảm bảo bạn nhận được trạng thái dịch vụ 'Đang chạy'.
Hoặc kiểm tra dịch vụ này bằng lệnh lệnh netstat bên dưới.
Đảm bảo bạn nhận được kết quả như hiển thị bên dưới.
Prometheus đang chạy theo mặc định dưới cổng '9090'.
Mở cổng 9090 để truy cập Prometheus bằng lệnh firewall-cmd bên dưới.
Bây giờ hãy mở trình duyệt web của bạn và nhập địa chỉ IP của máy chủ với cổng 9090.
Nhập 'http_requests_total' vào trường truy vấn và nhấp vào nút 'Thực thi'.
Và bạn sẽ thấy các yêu cầu HTTP đến máy chủ prometheus với tất cả thông tin về thời gian, mã trạng thái HTTP và phương thức, v.v.
Trong hướng dẫn này, chúng ta sẽ cài đặt node_exporter trên cùng một máy chủ prometheus. Chúng tôi sẽ theo dõi và lấy số liệu của máy chủ prometheus.
Đăng nhập vào người dùng prometheus và tải xuống 'node_exporter' bằng lệnh wget.
Giải nén node_exporter và đổi tên thư mục thành 'node_exporter'.
Tiếp theo, chúng tôi sẽ tạo tệp dịch vụ mới cho node_exporter. Quay lại shell gốc, hãy chuyển đến thư mục '/etc/systemd/system' và tạo tệp dịch vụ node_exporter mới 'node_exporter.service' bằng vim.
Tại đó, dán cấu hình dịch vụ node_exporter bên dưới.
Lưu và thoát.
Bây giờ hãy tải lại hệ thống systemd.
Sau đó, hãy khởi động dịch vụ node_exporter và bật dịch vụ này để khởi chạy mọi lúc khi khởi động hệ thống.
Dịch vụ node_exporter hiện đang chạy trên máy chủ - hãy kiểm tra bằng lệnh netstat.
Và bạn sẽ nhận được thông báo node-exporter đang chạy trên cổng 9100.
Đăng nhập vào người dùng prometheus.
Đi đến thư mục 'prometheus' và chỉnh sửa tệp cấu hình 'prometheus.yml'.
Dưới dòng 'scrape_config', thêm job_name node_exporter mới bằng cách sao chép-dán cấu hình bên dưới.
Lưu và thoát.
Bây giờ hãy khởi động lại dịch vụ prometheus.
node_exporter đã được thêm vào máy chủ prometheus.
Nhập trình thu thập meminfo 'node_memory_MemAvailable_bytes' vào trường truy vấn và nhấp vào nút 'Thực thi'.
Và bạn sẽ nhận được kết quả như bên dưới.
Bạn sẽ nhận được bộ nhớ khả dụng trên phiên bản máy chủ 'localhost:9100' và job_name 'node-exporter'.
Hoặc nếu bạn muốn truy cập dữ liệu thô của node_exporter, bạn cần thêm cổng node_exporter 9100 vào firewalld.
Sau đó nhập địa chỉ IP của máy chủ với cổng 9100.
Và bạn sẽ nhận được dữ liệu thô của node_exporter như hiển thị bên dưới.
Quá trình cài đặt và cấu hình hệ thống giám sát prometheus với node_exporter trên CentOS 7 đã hoàn tất thành công.
Prometheus ban đầu được SoundCloud tạo ra vào năm 2012, nhưng hiện đã trở thành một dự án nguồn mở độc lập được cộng đồng nguồn mở duy trì độc lập - tất cả các thành phần đều có sẵn theo Giấy phép Apache 2 trên Github.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Prometheus và node_exporter. Chúng tôi sẽ cài đặt hệ thống giám sát Prometheus và sau đó cấu hình node_exporter để thu thập số liệu từ máy chủ. Chúng tôi sẽ sử dụng máy chủ CentOS 7 cho hướng dẫn này.
Điều kiện tiên quyết
- Máy chủ CentOS 7
- Quyền root
Chúng ta sẽ làm gì?
- Tạo người dùng mới và tải xuống Prometheus
- Cấu hình Prometheus dưới dạng Dịch vụ Systemd
- Cấu hình Firewalld
- Cài đặt và Cấu hình node_exporter
- Thêm node_exporter vào Prometheus Máy chủ
- Kiểm tra
Bước 1 - Tạo Người dùng mới và Tải xuống Prometheus
Trong hướng dẫn này, dịch vụ Prometheus sẽ chạy dưới dạng người dùng không phải root. Vì vậy, chúng ta cần tạo một người dùng không phải root mới trên hệ thống. Chúng ta sẽ tạo một người dùng mới có tên là 'prometheus' và tất cả các dịch vụ prometheus sẽ chạy dưới người dùng prometheus.Tạo người dùng 'prometheus' mới bằng lệnh bên dưới.
Mã:
useradd -m -s /bin/bash prometheus
Mã:
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.2.1/prometheus-2.2.1.linux-amd64.tar.gz
Mã:
tar -xzvf prometheus-2.2.1.linux-amd64.tar.gz
mv prometheus-2.2.1.linux-amd64/ prometheus/
Bước 2 - Cấu hình Prometheus dưới dạng Dịch vụ Systemd
Trong bước này, chúng ta sẽ cấu hình prometheus dưới dạng dịch vụ systemd. Chúng tôi sẽ tạo một tệp dịch vụ mới prometheus.service trong thư mục '/etc/systemd/system'.Đi tới thư mục '/etc/systemd/system/' và tạo tệp dịch vụ mới 'prometheus.service' bằng vimeditor.
Mã:
cd /etc/systemd/system/
vim prometheus.service
Mã:
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Thay đổi dòng này nếu bạn tải xuống
#Prometheus trên đường dẫn khác user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Cài đặt]
WantedBy=multi-user.target
Bây giờ hãy tải lại hệ thống systemd bằng lệnh systemctl bên dưới.
Mã:
systemctl daemon-reload
Mã:
systemctl start prometheus
systemctl enable prometheus
Prometheus hiện đang chạy dưới dạng dịch vụ systemd, hãy kiểm tra dịch vụ này bằng lệnh bên dưới.
Mã:
systemctl status prometheus
Hoặc kiểm tra dịch vụ này bằng lệnh lệnh netstat bên dưới.
Mã:
netstat -plntu
Prometheus đang chạy theo mặc định dưới cổng '9090'.
Bước 3 - Cấu hình Firewalld
Nếu bạn đang sử dụng Firewalld trên hệ thống của mình, hãy thêm cổng 9090 vào danh sách cổng của Firewalld.Mở cổng 9090 để truy cập Prometheus bằng lệnh firewall-cmd bên dưới.
Mã:
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
Nhập 'http_requests_total' vào trường truy vấn và nhấp vào nút 'Thực thi'.
Và bạn sẽ thấy các yêu cầu HTTP đến máy chủ prometheus với tất cả thông tin về thời gian, mã trạng thái HTTP và phương thức, v.v.
Bước 4 - Cài đặt và cấu hình node_exporter
node_exporter là trình xuất dữ liệu máy có thể chạy trên hệ thống *Nix và Linux.Trong hướng dẫn này, chúng ta sẽ cài đặt node_exporter trên cùng một máy chủ prometheus. Chúng tôi sẽ theo dõi và lấy số liệu của máy chủ prometheus.
Đăng nhập vào người dùng prometheus và tải xuống 'node_exporter' bằng lệnh wget.
Mã:
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0-rc.1/node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
Mã:
tar -xzvf node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
mv node_exporter-0.16.0-rc.1.linux-amd64 node_exporter
Mã:
cd /etc/systemd/system/
vim node_exporter.service
Mã:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
Bây giờ hãy tải lại hệ thống systemd.
Mã:
systemctl daemon-reload
Mã:
systemctl start node_exporter
systemctl enable node_exporter
Dịch vụ node_exporter hiện đang chạy trên máy chủ - hãy kiểm tra bằng lệnh netstat.
Mã:
netstat -plntu
Bước 5 - Thêm node_exporter vào Máy chủ Prometheus
Trong bước này, chúng ta sẽ thêm node_exporter vào máy chủ prometheus. Đăng nhập vào người dùng prometheus và chỉnh sửa tệp cấu hình 'prometheus.yml'.Đăng nhập vào người dùng prometheus.
Mã:
su - prometheus
Mã:
cd prometheus/
vim prometheus.yml
Mã:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Bây giờ hãy khởi động lại dịch vụ prometheus.
Mã:
systemctl restart prometheus
Bước 6 - Kiểm tra Prometheus và node_exporter
Mở trình duyệt web của bạn rồi nhập địa chỉ IP của máy chủ.Nhập trình thu thập meminfo 'node_memory_MemAvailable_bytes' vào trường truy vấn và nhấp vào nút 'Thực thi'.
Và bạn sẽ nhận được kết quả như bên dưới.
Bạn sẽ nhận được bộ nhớ khả dụng trên phiên bản máy chủ 'localhost:9100' và job_name 'node-exporter'.
Hoặc nếu bạn muốn truy cập dữ liệu thô của node_exporter, bạn cần thêm cổng node_exporter 9100 vào firewalld.
Mã:
firewall-cmd --add-port=9100/tcp
firewall-cmd --reload
Và bạn sẽ nhận được dữ liệu thô của node_exporter như hiển thị bên dưới.
Quá trình cài đặt và cấu hình hệ thống giám sát prometheus với node_exporter trên CentOS 7 đã hoàn tất thành công.