Prometheus Exporter系列-Mysql_Exporter一鍵部署

新項目舊項目都需要給研發配置mysql監控,這里mysql監控對應aws 阿里云 騰訊云 華為云的云mysql產品或開源自建mysql。
exporter安裝雖然簡單,經常手動操作不免讓人心煩,一鍵完成省去繁瑣的常規操作。
配置信息對的情況下測試多次都可以正常安裝,支持一臺機器上安裝多個數據庫exporter,安裝時提供不同端口作為參數即可

指定exporter使用的用戶名、密碼和版本號。默認版本號為文檔日期所在最新版本

root@exporter-agent:/data/mysql-exporter# cat  install_mysql_exporter.sh 
#!/bin/bash# MySQL Exporter 一鍵安裝腳本(優化版)
# 使用方法: ./mysql_exporter_setup.sh <導出端口>set -e# 配置信息
MYSQL_HOST="db-host"
MYSQL_USER="monitor_user"
MYSQL_PASSWORD="bagayalu321"
MYSQL_PORT="3306"
VER=0.17.2# 獲取導出端口,默認為9104
EXPORTER_PORT=${1:-9104}# 基礎目錄
BASE_DIR="/data/mysql-exporter"
# 特定端口的工作目錄
WORK_DIR="${BASE_DIR}/${EXPORTER_PORT}"# 創建基礎目錄和端口特定目錄
mkdir -p $WORK_DIRecho "===> 開始安裝 MySQL Exporter 到 ${WORK_DIR}..."# 打印創建 MySQL 監控用戶的語句(僅供參考,不執行)
echo "===> MySQL 監控用戶授權語句(需手動執行):"
cat << EOF
-- 在 MySQL 中創建監控用戶的 SQL 語句:
CREATE USER '${MYSQL_MONITOR_USER}'@'%' IDENTIFIED BY '${MYSQL_MONITOR_PASSWORD}';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO '${MYSQL_MONITOR_USER}'@'%';
FLUSH PRIVILEGES;
EOFcat > $WORK_DIR/create_mysql_user.sql << EOF
-- 在 MySQL 中創建監控用戶的 SQL 語句:
CREATE USER '${MYSQL_MONITOR_USER}'@'%' IDENTIFIED BY '${MYSQL_MONITOR_PASSWORD}';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO '${MYSQL_MONITOR_USER}'@'%';
FLUSH PRIVILEGES;
EOFecho "===> 授權語句已保存到: ${WORK_DIR}/create_mysql_user.sql"
echo "===> 注意: 創建的監控用戶為 '${MYSQL_MONITOR_USER}',密碼為 '${MYSQL_MONITOR_PASSWORD}'"
echo "===> 如需修改,請編輯授權語句后手動執行"
# 清理舊的服務(如果存在)
if systemctl is-active --quiet mysql_exporter_${EXPORTER_PORT}; thenecho "===> 停止并禁用舊的 MySQL Exporter 服務..."systemctl stop mysql_exporter_${EXPORTER_PORT}systemctl disable mysql_exporter_${EXPORTER_PORT}
fi# 檢查 MySQL Exporter 是否已安裝
if [ -f "${BASE_DIR}/mysqld_exporter" ] && ${BASE_DIR}/mysqld_exporter --version &>/dev/null; thenecho "===> MySQL Exporter 已安裝,跳過下載步驟..."# 確保二進制文件可執行chmod +x ${BASE_DIR}/mysqld_exporter
elseecho "===> 下載并安裝 MySQL Exporter..."cd $BASE_DIRwget https://github.com/prometheus/mysqld_exporter/releases/download/v${VER}/mysqld_exporter-${VER}.linux-amd64.tar.gztar xvfz mysqld_exporter-${VER}.linux-amd64.tar.gzmv mysqld_exporter-${VER}.linux-amd64/mysqld_exporter .chmod +x mysqld_exporterrm -rf mysqld_exporter-${VER}.linux-amd64*
fi# 創建配置文件
echo "===> 創建 MySQL Exporter 配置文件..."
cat > $WORK_DIR/.my.cnf << EOF
[client]
host=$MYSQL_HOST
port=$MYSQL_PORT
user=$MYSQL_MONITOR_USER
password=$MYSQL_PASSWORD
EOFchmod 600 $WORK_DIR/.my.cnf# 保存配置信息
cat > $WORK_DIR/config.info << EOF
# MySQL Exporter 配置信息
MYSQL_HOST=$MYSQL_HOST
MYSQL_PORT=$MYSQL_PORT
MYSQL_USER=$MYSQL_USER
MYSQL_PASSWORD=$MYSQL_PASSWORD
EXPORTER_PORT=$EXPORTER_PORT
EOFchmod 600 $WORK_DIR/config.info# 創建 systemd 服務文件
echo "===> 配置 systemd 服務..."
cat > /etc/systemd/system/mysql_exporter_${EXPORTER_PORT}.service << EOF
[Unit]
Description=MySQL Exporter for Prometheus (Port ${EXPORTER_PORT})
After=network.target[Service]
User=root
Group=root
Type=simple
ExecStart=${BASE_DIR}/mysqld_exporter --config.my-cnf=${WORK_DIR}/.my.cnf --web.listen-address=:${EXPORTER_PORT}
Restart=always
RestartSec=10[Install]
WantedBy=multi-user.target
EOF# 重新加載 systemd 配置
systemctl daemon-reload# 啟動 MySQL Exporter 服務
echo "===> 啟動 MySQL Exporter 服務..."
systemctl enable mysql_exporter_${EXPORTER_PORT}
systemctl start mysql_exporter_${EXPORTER_PORT}# 等待服務啟動
sleep 5# 檢查服務狀態
if systemctl is-active --quiet mysql_exporter_${EXPORTER_PORT}; thenecho "===> MySQL Exporter 安裝成功!服務正在運行"echo "===> 監控端口: ${EXPORTER_PORT}"echo "===> 可通過訪問 http://$(hostname -I | awk '{print $1}'):${EXPORTER_PORT}/metrics 測試"# 創建清理腳本cat > $WORK_DIR/uninstall.sh << EOF
#!/bin/bash
# 卸載此 MySQL Exporter 實例的腳本systemctl stop mysql_exporter_${EXPORTER_PORT}
systemctl disable mysql_exporter_${EXPORTER_PORT}
rm -f /etc/systemd/system/mysql_exporter_${EXPORTER_PORT}.service
systemctl daemon-reloadecho "MySQL Exporter (端口 ${EXPORTER_PORT}) 已停止并禁用"
echo "可以手動刪除目錄: ${WORK_DIR}"
EOFchmod +x $WORK_DIR/uninstall.shecho "===> 卸載腳本已創建: ${WORK_DIR}/uninstall.sh"
elseecho "===> 安裝失敗,服務未能正常啟動"echo "===> 請檢查日志: journalctl -u mysql_exporter_${EXPORTER_PORT}"exit 1
fiecho "===> 所有文件均存放在: ${WORK_DIR}"
echo "===> 二進制文件位置: ${BASE_DIR}/mysqld_exporter"
echo "===> 配置信息已保存到: ${WORK_DIR}/config.info"
echo "===> 監控用戶創建腳本: ${WORK_DIR}/create_mysql_user.sql"
echo "===> 安裝完成!"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73298.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73298.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73298.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025年移動端開發性能優化實踐與趨勢分析

啟動速度優化 本質&#xff1a;縮短首次可見幀渲染時間。 方法&#xff1a; iOS&#xff1a;利用Core ML本地模型輕量化部署&#xff0c;減少云端等待。Android&#xff1a;強制啟用SplashScreen API&#xff0c;通過setKeepOnScreenCondition控制動畫時長。冷啟動需將耗時操…

【MySQL篇】DEPENDENT SUBQUERY(依賴性子查詢)優化:從百秒到秒級響應的四種優化辦法

&#x1f4ab;《博主介紹》&#xff1a;?又是一天沒白過&#xff0c;我是奈斯&#xff0c;從事IT領域? &#x1f4ab;《擅長領域》&#xff1a;??擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控&#xff1b;并對SQLserver、NoSQL(…

全文 - MLIR Toy Tutorial Chapter 1: Toy Language and AST

Toy 語言 本教程&#xff0c;將會借助一個玩具語言來講解&#xff0c;這個語言我們稱其為 Toy。Toy 是一個基于張量的語言&#xff0c;它允許你定義函數&#xff0c;執行一些數學計算&#xff0c;并且打印結果。做這樣的設定&#xff0c;是因為我們希望讓教程保持簡明&#xff…

排序復習_代碼純享

頭文件 #pragma once #include<iostream> #include<vector> #include<utility> using std::vector; using std::cout; using std::cin; using std::endl; using std::swap;//插入排序 //1、直接插入排序&#xff08;穩定&#xff09; void InsertSort(vecto…

CSS語言的雙向鏈表

CSS語言的雙向鏈表 引言 在計算機科學中&#xff0c;數據結構是一個極為重要的概念&#xff0c;而鏈表則是最常見的數據結構之一。鏈表可以分為單向鏈表和雙向鏈表&#xff0c;其中雙向鏈表因其靈活性和高效性而受到廣泛應用。在前端開發的領域&#xff0c;尤其是CSS&#xf…

簡單理解機器學習中top_k、top_p、temperature三個參數的作用

AI系列文章&#xff1a; AWS AI認證考試中經常提及幾個重要的工具介紹 簡單理解機器學習中top_k、top_p、temperature三個參數的作用 用Deepseek Kimi 快速生成高質量的ppt 在機器學習中&#xff0c;top_k、top_p 和 temperature 是用于控制生成模型&#xff08;如語言模型…

紅寶書第十三講:詳解JavaScript核心對象:Array、Object、Date、RegExp

紅寶書第十三講&#xff1a;詳解JavaScript核心對象&#xff1a;Array、Object、Date、RegExp 資料取自《JavaScript高級程序設計&#xff08;第5版&#xff09;》。 查看總目錄&#xff1a;紅寶書學習大綱 一、Object&#xff1a;萬物皆對象的“盒子” Object是JavaScript中…

昆侖技術重構AI大模型落地范式,長期作“加法”迎來國產生態化“拐點”

作者 | 曾響鈴 文 | 響鈴說 DeepSeek的爆火&#xff0c;在業內迅速掀起了一場國產化的變革。“國產大模型國產算力”軟硬協同的范式正在被重構&#xff0c;AI產業國產化的含金量持續提升&#xff0c;越來越多的企業在這一趨勢下加速走上數智化轉型路徑。 其中&#xff0c;以…

原開源鴻蒙倉庫停止更新

2月24日&#xff0c;gitee 上的開源鴻蒙組織&#xff0c;所有代碼停止更新&#xff0c;查看代碼倉顯示已關閉&#xff0c;不少小伙伴以為停止更新了&#xff0c;發生了什么&#xff1f; 原因很簡單&#xff0c;所有代碼倉遷移至 Gitcode&#xff0c;至于為什么改用 Gitcode&…

Spring Boot框架中常用注解

以下是Spring Boot框架中常用注解的詳細說明&#xff0c;包括名稱、用途、用法、使用位置及擴展示例&#xff0c;按功能模塊分類整理&#xff1a; 一、核心啟動與配置注解 1. SpringBootApplication 用途&#xff1a;主啟動類注解&#xff0c;整合了 Configuration、EnableAu…

Azure Delta Lake、Databricks和Event Hubs實現實時欺詐檢測

設計Azure云架構方案實現Azure Delta Lake和Azure Databricks&#xff0c;結合 Azure Event Hubs/Kafka 攝入實時數據&#xff0c;通過 Delta Lake 實現 Exactly-Once 語義&#xff0c;實時欺詐檢測&#xff08;流數據寫入 Delta Lake&#xff0c;批處理模型實時更新&#xff0…

車載以太網網絡測試 -23【TCPUDP通信示例】

1 摘要 在車載通信場景中&#xff0c;TCP以及UDP的通信可以用于多種應用&#xff0c;例如車輛狀態監控、遠程控制、數據采集等。以下是詳細的代碼示例&#xff0c;展示了如何使用Python實現簡單的TCP客戶端與服務端通信以及簡單的UDP客戶端與服務端通信&#xff0c;并模擬了車…

SpringBoot大學生競賽管理系統設計與實現

一個用于管理大學生競賽報名、信息查詢與競賽管理的系統&#xff0c;采用了現代化的SpringBoot框架進行開發。該系統的主要功能包括學生信息管理、教師信息管理、競賽報名審核、競賽信息管理等模塊&#xff0c;適用于學校或教育機構進行競賽活動的組織與管理。系統界面簡潔&…

深入解析libsunrpc:構建分布式系統的核心RPC庫

深入解析libsunrpc&#xff1a;構建分布式系統的核心RPC庫 引言 在分布式系統開發中&#xff0c;遠程過程調用&#xff08;Remote Procedure Call, RPC&#xff09; 是連接不同節點、實現跨網絡服務調用的關鍵技術。作為SUN公司開源的經典RPC實現&#xff0c;libsunrpc 憑借其…

MinIO搭建部署

1、命令行安裝 訪問monio官網下載應用程序 # wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm # sudo dnf install minio.rpm # mkdir ~/minio # minio server ~/minio --console-address :90012、dock…

Linux修改SSH端口號

我這里那RedHat系列的操作系統舉例,修改SSH端口號 修改SSH配置文件:/etc/ssh/sshd_config,將端口號修改為2222.vim /etc/ssh/sshd_config重啟SSH服務systemctl restart sshd# 如果是比較舊的OS,使用下面的命令重啟 service ssh restart驗證端口更改是否成功netstat -tulnp …

【嵌入式Linux】基于ArmLinux的智能垃圾分類系統項目

目錄 1. 功能需求2. Python基礎2.1 特點2.2 Python基礎知識2.3 dict嵌套簡單說明 3. C語言調用Python3.1 搭建編譯環境3.2 直接調用python語句3.3 調用無參python函數3.4 調用有參python函數 4. 阿里云垃圾識別方案4.1 接入阿里云4.2 C語言調用阿里云Python接口 5. 香橙派使用攝…

【商城實戰(63)】配送區域與運費設置全解析

【商城實戰】專欄重磅來襲&#xff01;這是一份專為開發者與電商從業者打造的超詳細指南。從項目基礎搭建&#xff0c;運用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用戶、商品、訂單等核心模塊開發&#xff0c;再到性能優化、安全加固、多端適配&#xf…

字節跳動實習生主導開發強化學習算法,助力大語言模型性能突破

目錄 禹棋贏的背景與成就 主要成就 DAPO算法的技術細節 算法優勢 禹棋贏的研究歷程 關鍵時間節點 字節跳動的“Top Seed人才計劃” 計劃特點 小編總結 在大模型時代&#xff0c;經驗不再是唯一的衡量標準&#xff0c;好奇心、執行力和對新技術的敏銳洞察力成為推動技術…

Rust + 時序數據庫 TDengine:打造高性能時序數據處理利器

引言&#xff1a;為什么選擇 TDengine 與 Rust&#xff1f; TDengine 是一款專為物聯網、車聯網、工業互聯網等時序數據場景優化設計的開源時序數據庫&#xff0c;支持高并發寫入、高效查詢及流式計算&#xff0c;通過“一個數據采集點一張表”與“超級表”的概念顯著提升性能…