Cách giám sát MySQL hoặc MariaDB bằng Prometheus và Grafana

theanh

Administrator
Nhân viên
Để đảm bảo máy chủ MySQL/MariaDB hoạt động bình thường, bạn cần triển khai giám sát trên cơ sở hạ tầng của mình. Điều này cho phép bạn tối ưu hóa hiệu suất, xác định các vấn đề/điểm nghẽn và đảm bảo cơ sở dữ liệu của bạn hoạt động tốt. Với Prometheus và Grafana, bạn có thể đạt được những điều đó và tạo bảng điều khiển giám sát đẹp mắt cho máy chủ MySQL.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách giám sát máy chủ MySQL/MariaDB bằng Prometheus và Grafana. Bạn sẽ thiết lập 'prometheus-mysqld-exporter' để tạo số liệu và thêm giám sát điểm cuối vào máy chủ Prometheus. Sau đó, bạn sẽ tạo một bảng điều khiển Grafana mới để giám sát MySQL.

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

Để bắt đầu, hãy đảm bảo bạn có những điều sau:
  • Đã cài đặt máy chủ MySQL/MariaDB
  • Người dùng không phải root có quyền quản trị viên
  • Đã cài đặt Prometheus và Grafana trên máy chủ của bạn

Thiết lập người dùng MySQL/MariaDB​

Để giám sát máy chủ MySQL/MariaDB, bạn cần tạo một người dùng MySQL chuyên dụng mới. Người dùng này sẽ có ít quyền nhất, chẳng hạn như PROCESS, REPLICATION CLIENT và SELECT trên tất cả các cơ sở dữ liệu của bạn.

Trong phần này, bạn sẽ tạo một người dùng MySQL mới để theo dõi máy chủ MySQL của mình.

Đăng nhập vào máy chủ MySQL/MariaDB của bạn bằng thông tin sau. Nhập mật khẩu 'root' khi được nhắc.
Mã:
sudo mysql -u root -p
Bây giờ hãy chạy các truy vấn sau để tạo người dùng MySQL mới 'prometheus' với xác thực 'unix_socket'. Người dùng này sẽ có quyền xem quy trình, máy khách sao chéplựa chọn trong tất cả các cơ sở dữ liệu trên máy chủ MySQL.
Mã:
CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';
FLUSH PRIVILEGES;

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


Tiếp theo, chạy truy vấn bên dưới để kiểm tra người dùng MySQL 'prometheus@localhost'. Bạn sẽ thấy người dùng 'prometheus' có các quyền SELECT, PROCESS và BINLOG MONITOR như một máy khách sao chép.
Mã:
SHOW GRANTS FOR 'prometheus'@'localhost';
Nhập 'quit' để thoát khỏi máy chủ MySQL/MariaDB.


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

Cài đặt prometheus-mysqld-exporter​

'prometheus-mysqld-exporter' là một trình xuất dữ liệu cho MySQL metrics. Nó hỗ trợ MySQL >= 5.6 và MariaDB >= 10.3. Để sử dụng 'prometheus-mysqld-exporter', bạn cần cài đặt nó trên máy chủ MySQL của mình.

Trong ví dụ này, máy chủ MySQL đang chạy trên máy chủ Debian 12. Theo mặc định, 'prometheus-mysqld-exporter' có sẵn trên kho lưu trữ Debian chính thức, vì vậy chúng ta sẽ cài đặt nó thông qua APT. Nếu bạn đang sử dụng một bản phân phối khác, bạn có thể tải xuống và cài đặt thủ công cho GitHub.

Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Debian của bạn.
Mã:
sudo apt update

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


Sau khi kho lưu trữ được cập nhật, hãy cài đặt Gói 'prometheus-mysqld-exporter' bằng lệnh sau. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt install prometheus-mysqld-exporter

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


Sau khi cài đặt hoàn tất, 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 đó, bạn có thể khởi động và kích hoạt dịch vụ 'prometheus-mysqld-exporter' bằng lệnh bên dưới. Với điều này, dịch vụ 'prometheus-mysqld-exporter' sẽ chạy và được bật trên hệ thống của bạn.
Mã:
sudo systemctl enable --now prometheus-mysqld-exporter

Thêm người dùng MySQL vào prometheus-mysqld-exporter​

Bây giờ bạn đã tạo người dùng MySQL và cài đặt 'prometheus-mysqld-exporter'. Bước tiếp theo là thêm MySQL của bạn vào cấu hình 'prometheus-mysqld-exporter'. Thực hiện thao tác này cho phép bạn tạo số liệu của máy chủ MySQL và hiển thị điểm cuối trên cổng mặc định '9104'.

Mở tệp '/etc/default/prometheus-mysqld-exporter' bằng trình soạn thảo 'nano' sau.
Mã:
sudo nano /etc/default/prometheus-mysqld-exporter
Bỏ chú thích biến môi trường 'DATA_SOURCE_NAME' để tích hợp MySQL với 'prometheus-mysqld-exporter'. Trong ví dụ này, người dùng MySQL 'prometheus' sẽ được sử dụng để giám sát máy chủ MySQL thông qua tệp 'mysqld.sock'.
Mã:
DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"
Lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy chạy lệnh 'systemctl' bên dưới để khởi động lại dịch vụ 'prometheus-mysqld-exporter' và áp dụng các thay đổi của bạn. Sau đó, hãy kiểm tra trạng thái của nó để đảm bảo nó đang chạy.
Mã:
sudo systemctl restart prometheus-mysqld-exporter
sudo systemctl status prometheus-mysqld-exporter
Bạn có thể thấy bên dưới 'prometheus-mysqld-exporter' đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%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 http://192.168.10.41:9104/. Đây là điểm cuối mặc định cho 'prometheus-mysqld-exporter'. Nếu cấu hình của bạn thành công, một số liệu sẽ được tạo và hiển thị như sau:


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

Thêm điểm cuối prometheus-mysqld-exporter vào Prometheus​

Bây giờ cấu hình 'prometheus-mysqld-exporter' đã hoàn tất và số liệu đã được tạo. Bây giờ bạn cần thêm 'prometheus-mysqld-exporter' làm điểm cuối vào máy chủ Prometheus của bạn. Đối với hướng dẫn này, điểm cuối 'prometheus-mysqld-exporter' có sẵn tại '192.168.10.41:9104'.

Nếu bạn không có máy chủ Prometheus, hãy cài đặt máy chủ thông qua Cách cài đặt Prometheus và Node Exporter trên Debian 12

Di chuyển đến máy chủ Prometheus của bạn và mở tệp cấu hình '/etc/prometheus/prometheus.yml' bằng trình chỉnh sửa 'nano'.
Mã:
sudo nano /etc/prometheus/prometheus.yml
Trong 'scrape_configs', hãy thêm điểm cuối của 'prometheus-mysqld-exporter' của bạn như thế này. Đối với ví dụ này, 'prometheus-mysqld-exporter' đang chạy trên 'server1' với địa chỉ IP và cổng '192.168.10.41:9104'.
Mã:
scrape_configs:

- job_name: server1
static_configs:
- targets: ['192.168.10.41:9104']
labels:
alias: db1
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Bây giờ hãy chạy lệnh 'systemctl' sau để khởi động lại dịch vụ 'prometheus' và áp dụng thay đổi.
Mã:
sudo systemctl restart prometheus
Cuối cùng, hãy mở bảng điều khiển máy chủ Prometheus của bạn và chọn menu 'Trạng thái > Mục tiêu'. Đảm bảo bạn có thể thấy 'server1', đây là điểm cuối của quá trình giám sát MySQL của bạn.


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

Thiết lập Bảng điều khiển Grafana cho máy chủ MySQL​

Sau khi thêm điểm cuối 'prometheus-mysqld-exporter' vào máy chủ Prometheus, giờ đây bạn đã sẵn sàng để xây dựng bảng điều khiển Grafana để giám sát máy chủ MySQL. Trong phần này, bạn sẽ nhập bảng điều khiển giám sát cho MySQL thông qua GrafanaLabs.

Nếu bạn chưa cài đặt Grafana, hãy cài đặt bằng Cách cài đặt Grafana và Prometheus trên Ubuntu 24.04

Trên bảng điều khiển Grafana của bạn, nhấp vào menu 'Bảng điều khiển > Mới > Nhập'. Đối với ví dụ này, chúng tôi sẽ sử dụng các mẫu Grafana từ GrafanaLabs để giám sát máy chủ MySQL.

Sao chép số ID Grafana và dán, sau đó nhấp vào 'Tải' để xác nhận.


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


Bây giờ hãy chọn 'Prometheus' làm nguồn dữ liệu của bạn và nhấp vào 'Nhập'.


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


Nếu thành công, bạn sẽ thấy bảng điều khiển để theo dõi MySQL/MariaDB của mình bằng Prometheus và Grafana.


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

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất việc giám sát máy chủ MySQL/MariaDB bằng Prometheus và Grafana. Bạn đã giám sát máy chủ MySQL bằng 'prometheus-mysqld-exporter' và tạo số liệu cho MySQL. Bạn cũng đã thêm 'prometheus-mysqld-exporter' làm điểm cuối cho máy chủ Prometheus của mình. Cuối cùng, bạn đã tạo bảng điều khiển Grafana để giám sát máy chủ MySQL của mình.
 
Back
Bên trên