有效監控 mysql 和 mariadb 數據庫對于保持最佳性能、識別潛在瓶頸以及確保整體系統可靠性至關重要。 prometheus mysql exporter 是一款強大的工具,可提供對數據庫指標的詳細洞察,這對于主動管理和故障排除至關重要。
在本教程中,您將學習如何設置 prometheus mysql 導出器使用手動監控 MySQL 和 MariaDB 數據庫 配置和基于腳本的自動化。這些方法提供 靈活選擇最佳部署策略和運營
方法一-手動配置
我們繼續本節的手動配置方法。
添加 Prometheus 系統用戶和組
在此步驟中,您將配置目標 Droplet。讓我們創建一個名為“prometheus”的系統用戶和組來管理導出器服務。
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
下載并安裝 Prometheus MySQL Exporter
在此步驟中,您將下載最新版本的 Prometheus 來自 gitHub 的 MySQL Exporter,提取下載的文件,并將 二進制文件到 /usr/local/bin/目錄。
curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest | grep browser_download_url | grep Linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf mysqld_exporter*.tar.gz
sudo mv mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod x /usr/local/bin/mysqld_exporter
創建Prometheus Exporter 數據庫用戶
以 root 身份登錄 MySQL,并為導出器創建具有必要權限的專用用戶。
mysql -u root -p
如果需要,請輸入 root 密碼,您將請參閱 MySQL/mariadb 提示符。然后執行以下命令(將下面命令中的giveapassword替換為mysqld_exporter數據庫用戶的新密碼)。
創建一個名為mysqld_exporter的新MySQL用戶,密碼為本地的giveapassword
CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'giveapassword';
授予 mysqld_exporter 用戶查看進程列表、客戶端復制狀態和查詢所有數據
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';
重新加載授權表以應用對用戶所做的更改權限。
FLUSH PRIVILEGES;
退出 MySQL 命令行
EXIT
配置數據庫憑證
創建配置文件來存儲MySQL 導出器
sudo vi /etc/.mysqld_exporter.cnf
將以下用戶憑據添加到file:
[client]user=mysqld_exporterpassword=giveapassword
設置配置的所有權權限file:
sudo chown root:prometheus /etc/.mysqld_exporter.cnf
創建 systemd 單元文件
創建 systemd 服務單元用于管理 MySQL Exporter 的文件service:
sudo vi /etc/systemd/system/mysql_exporter.service
將以下數據添加到file:
[Unit]Description=Prometheus MySQL ExporterAfter=network.targetUser=prometheusGroup=prometheus[Service]Type=simpleRestart=alwaysExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf /etc/.mysqld_exporter.cnf --collect.global_status --collect.info_schema.innodb_metrics --collect.auto_increment.columns --collect.info_schema.processlist --collect.binlog_size --collect.info_schema.tablestats --collect.global_variables --collect.info_schema.query_response_time --collect.info_schema.userstats --collect.info_schema.tables --collect.perf_schema.tablelocks --collect.perf_schema.file_events --collect.perf_schema.eventswaits --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.slave_status --web.listen-address=0.0.0.0:9104[Install]WantedBy=multi-user.target
重新加載 systemd 并啟動 MySQL Exporter 服務
重新加載 systemd配置并啟動 MySQL Exporter服務:
sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter
正在配置Prometheus Droplet
讓我們首先備份 prometheus.yml 文件:
cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml-$(date '%d%b%Y-%H:%M')
現在登錄到您的 Prometheus 服務器并添加要抓取的 MySQL Exporter 端點。
將 IP 地址和端口替換為您的 MySQL Exporter 端點(9104 是 Prometheus MySQLd 的默認端口出口商)。
vi /etc/prometheus/prometheus.yml
scrape_configs: - job_name: server1_db static_configs: - targets: ['10.10.1.10:9104'] labels: alias: db1 - job_name: server2_db static_configs: - targets: ['10.10.1.11:9104'] labels: alias: db2
方法2-使用腳本進行配置
您還可以通過運行兩個腳本來實現這一目標 – 一個用于目標 Droplet,另一個用于 Prometheus Droplet。
讓我們從配置目標 Droplet 開始。
第 1 步:通過 ssh 連接到目標 Droplet。
第 2 步:下載目標配置腳本使用以下命令:
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Target_Config.sh
第 3 步:下載腳本后,確保它已包含可執行權限由running:
chmod x DO_MySQL_MariaDB_Target_Config.sh
第 4 步:執行腳本running:
./DO_MySQL_MariaDB_Target_Config.sh
第 5 步:輸入 mysql_exporter 用戶的新密碼,然后輸入MySQL 根目錄密碼:
配置完成。
配置 Prometheus Droplet(腳本方法)
第 1 步:通過 SSH 登錄 Prometheus Droplet .
第 2 步:使用以下命令下載 Prometheus 配置腳本命令:
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Prometheus_Config.sh
這個 bash腳本自動更新Prometheus配置文件添加 新的服務器端點。首先備份當前的 帶有時間戳文件名的 prometheus.yml 文件。
然后腳本提示用戶指定要添加的服務器數量并驗證此輸入。
對于每個服務器,它請求一個主機名和IP 地址,確保 每個 IP 地址在配置文件中都是唯一的。有效服務器 配置附加到 prometheus.yml 文件中。更新后 配置完成后,腳本會重啟 Prometheus 服務并檢查 其狀態以確認更改已應用。
最后,它在退出之前等待用戶輸入。
第 3 步:下載腳本后,通過以下方式確保其具有可執行權限running:
chmod x DO_MySQL_MariaDB_Prometheus_Config.sh
第 4 步:執行腳本running:
./DO_MySQL_MariaDB_Prometheus_Config.sh
第 5 步:輸入要添加到監控的 Droplet 數量。
第6步:輸入主機名和IP地址。
第 7 步:配置完成。
第 8 步:添加后,通過訪問 URLprometheushostname:9090/ 檢查目標是否已更新目標。
配置 grafana
步驟1:在瀏覽器上訪問 Grafana-IP:3000 登錄 Grafana 儀表板。
步驟 2:轉到配置 > 數據源。
步驟3:點擊添加數據源。
第 4 步:搜索并選擇 Prometheus。
第 5 步:輸入 Prometheus 名稱和 URL (Prometheus主機名:9090)并單擊“保存并測試”。如果看到“數據源正在運行”,則說明您已成功添加數據源。完成后,轉到“創建”>“導入”。
第 6 步:您可以手動配置儀表板或 通過上傳 JSON 文件導入儀表板。 json 模板 MySQL和MariaDB監控可以在以下鏈接找到:
https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_Grafana-Mysql-MariaDB_Monitoring.json
第7步:填寫田野和導入。
第 8 步:Grafana 儀表板已準備就緒。選擇 托管并檢查指標是否可見。您可以修改和編輯 根據需要使用儀表板。