Cách giám sát PostgreSQL bằng Prometheus và Grafana trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Trong hướng dẫn này, bạn sẽ thiết lập Prometheus và Grafana Monitoring Platforms để giám sát máy chủ cơ sở dữ liệu PostgreSQL. Bạn sẽ cài đặt và thiết lập postgres_exporter để thu thập ma trận máy chủ PostgreSQL và hiển thị chúng cho máy chủ Prometheus. Vào cuối hướng dẫn này, bạn sẽ thiết lập giám sát bảng điều khiển cho máy chủ PostgreSQL thông qua nền tảng trực quan hóa dữ liệu Grafana.

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

Để hoàn thành hướng dẫn này, bạn sẽ cần các yêu cầu sau:
  • Một máy chủ có cài đặt Prometheus và Grafana.
  • Một máy chủ đích có cài đặt máy chủ cơ sở dữ liệu PostgreSQL.
  • Một người dùng không phải root có quyền quản trị viên sudo/root.
Dưới đây là một số hướng dẫn cài đặt từng thành phần.

Cách cài đặt Prometheus và Grafana Monitoring Platform trên Ubuntu 22.04 Server.
Cách cài đặt PostgreSQL Database Server trên Ubuntu 22.04 Server.

Bây giờ chúng ta hãy bắt đầu Khi tất cả các điều kiện tiên quyết đã hoàn tất và được thiết lập.

Cấu hình máy chủ PostgreSQL​

Máy chủ PostgreSQL cung cấp hai các phương pháp mã hóa mật khẩu khác nhau: md5 và scram-sha-256. Cả hai mã hóa mật khẩu đều có thể được cấu hình thông qua tệp cấu hình PostgreSQL 'postgresql.conf'.

Trong bước này, bạn sẽ thiết lập PostgreSQL để sử dụng mã hóa mật khẩu 'scram-sha-256'.

Ví dụ này sử dụng máy chủ PostgreSQL v14 được cài đặt trên hệ thống Ubuntu, do đó các tệp cấu hình PostgreSQL được lưu trữ trong thư mục '/etc/postgresql/14/main'.

Di chuyển đến thư mục làm việc đến thư mục '/etc/postgresql/14/main' và mở tệp cấu hình 'postgresql.conf' thông qua lệnh trình soạn thảo nano.
Mã:
cd /etc/postgresql/14/main
sudo nano postgresql.conf
Bỏ ghi chú tùy chọn 'password_encryption' và thay đổi giá trị thành 'scram-sha-256'.
Mã:
password_encryption = scram-sha-256 # scram-sha-256 or md5
Lưu tệp và thoát khỏi trình soạn thảo khi bạn hoàn tất.


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


Tiếp theo, mở tệp cấu hình 'pg_hba.conf' thông qua lệnh trình chỉnh sửa nano bên dưới. Tệp 'pg_hba.conf' là cấu hình trong đó các phương thức xác thực mật khẩu được xác định cho máy chủ hoặc địa chỉ IP.
Mã:
sudo nano pg_hba.conf
Thay đổi các phương thức xác thực mặc định cho máy chủ '127.0.0.1/32' và '::1/128' thành 'scram-sha-256'. Với điều này, phương pháp xác thực 'scram-sha-256' sẽ được sử dụng cho mọi kết nối máy khách tới máy chủ PostgreSQL '127.0.0.1'.
Mã:
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
Lưu và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.


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


Cuối cùng, hãy chạy tiện ích lệnh systemctl bên dưới để khởi động lại dịch vụ PostgreSQL và áp dụng các thay đổi.
Mã:
sudo systemctl restart postgresql
Sau khi cấu hình máy chủ PostgreSQL, tiếp theo bạn sẽ cài đặt 'postgres_exporter' cho phép bạn thu thập số liệu của PostgreSQL máy chủ.

Đang tải xuống postgres_exporter​

'postgres_exporter' là trình xuất dữ liệu prometheus cho số liệu máy chủ PostgreSQL. Nó hỗ trợ nhiều phiên bản PostgreSQL như 9.4, 9.5, 9.6, 10, 11, 12, 13 và 14. 'postgres_exporter' là một ứng dụng tệp nhị phân đơn, chủ yếu được viết bằng Go.

Bạn sẽ tải xuống 'postgres_exporter' theo các bước này trên máy chủ PostgreSQL.

Để bắt đầu, hãy chạy lệnh bên dưới để tạo người dùng hệ thống mới 'postgres_exporter' trên máy chủ PostgreSQL của bạn.
Mã:
sudo useradd -M -r -s /sbin/nologin postgres_exporter
Sau đó, tải xuống Tệp nhị phân 'postgres_exporter' thông qua lệnh wget bên dưới. Hãy chắc chắn kiểm tra trang GitHub 'postgres_exporter' để lấy phiên bản mới nhất của 'postgres_exporter'. Tại thời điểm viết bài này, phiên bản mới nhất của postgres_exporter là v0.12.
Mã:
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.12.0-rc.0/postgres_exporter-0.12.0-rc.0.linux-amd64.tar.gz
Tiếp theo, chạy lệnh tar bên dưới để giải nén gói postgres_exporter. Sau đó, di chuyển thư mục đã giải nén của postgres_exporter đến '/opt/postgres_exporter'.
Mã:
tar xvf postgres_exporter*.tar.gz
mv postgres_exporter*/ /opt/postgres_exporter
Cuối cùng, hãy kiểm tra danh sách các tệp và thư mục trong thư mục 'postgres_exporter'. Bạn sẽ thấy tệp nhị phân 'postgres_exporter' khả dụng.
Mã:
ls /opt/postgres_exporter

3-download-postgres_exporter.png



Sau khi tải xuống tệp nhị phân 'postgres_exporter', bạn sẽ định cấu hình 'postgres_exporter' để thu thập số liệu máy chủ PostgreSQL.

Đang định cấu hình postgres_exporter​

Trong bước này, bạn sẽ cấu hình 'postgres_exporter' để thu thập số liệu PostgreSQL và có thể thực hiện bằng cách xác định người dùng và mật khẩu PostgreSQL. Bạn cũng sẽ thiết lập và cấu hình dịch vụ systemd cho 'postgres_exporter'.

Với 'postgres_exporter', bạn có thể hiển thị số liệu cho tất cả các cơ sở dữ liệu khả dụng trên máy chủ PostgreSQL hoặc bạn có thể hiển thị các cơ sở dữ liệu cụ thể mà bạn muốn theo dõi. Bạn cũng có thể sử dụng chế độ SSL an toàn hoặc chế độ không phải SSL.

Di chuyển thư mục làm việc hiện tại đến '/opt/postgres_exporter'. thông qua lệnh cd bên dưới.
Mã:
cd /opt/postgres_exporter
Bây giờ hãy tạo một tệp mới '.env' bằng trình chỉnh sửa nano bên dưới command.
Mã:
nano .env
Thêm các dòng sau vào tệp. Ngoài ra, hãy đảm bảo thay đổi thông tin chi tiết về người dùng, mật khẩu và máy chủ PostgreSQL. Với tệp '.env' này, bạn sẽ thu thập và thu thập số liệu PostgreSQL từ tất cả các cơ sở dữ liệu khả dụng. Bạn cũng có thể thu thập số liệu từ một cơ sở dữ liệu PostgreSQL cụ thể và điều chỉnh tệp cấu hình sau.
Mã:
# Format
#DATA_SOURCE_NAME=postgresql://username:password@localhost:5432/postgres?sslmode=disable

# Monitor all databases via postgres_exporter
DATA_SOURCE_NAME="postgresql://postgres:strongpostgrespassword@localhost:5432/?sslmode=disable"

# Monitor specific databases on the PostgreSQL server
# DATA_SOURCE_NAME="postgresql://username:password@localhost:5432/database-name?sslmode=disable"
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Tiếp theo, chạy lệnh chown bên dưới để thay đổi quyền sở hữu thư mục '/opt/postgres_exporter' thành người dùng 'postgres_exporter'.
Mã:
sudo chown -R postgres_exporter: /opt/postgres_exporter
Sau đó, chạy lệnh bên dưới để tạo tệp dịch vụ systemd mới '/etc/systemd/system/postgres_exporter.service'. Với điều này, bạn có thể dễ dàng quản lý 'postgres_exporter' thông qua tiện ích lệnh systemctl.
Mã:
sudo tee /etc/systemd/system/postgres_exporter.service
 
Back
Bên trên