Để đả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.
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.
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ép và lựa chọn trong tất cả các cơ sở dữ liệu trên máy chủ MySQL.
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.
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
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.
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.
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ý.
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ở tệp '/etc/default/prometheus-mysqld-exporter' bằng trình soạn thảo 'nano' sau.
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'.
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.
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
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'.
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'.
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.
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
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
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
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';
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
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
Mã:
DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"
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
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
Mã:
scrape_configs:
- job_name: server1
static_configs:
- targets: ['192.168.10.41:9104']
labels:
alias: db1
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
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