mysqld_exporter的搭建

1、创建/data/apps目录,并且下载mysql_exporte

复制代码
mkdir -p /data/apps
​
cd /data/apps
​
wget https://githubfast.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
或者
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz

2、解压压缩包到/usr/local,并且重创建软链接

复制代码
tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local
​
cd /usr/local
​
ln -s mysqld_exporter-0.12.1.linux-amd64 mysqld_exporter
​

3、使用systemctl管理mysqld_exporter

复制代码
vi /usr/lib/systemd/system/mysqld_exporter.service
​
[Unit]
​
Description=Prometheus
​
[Service]
​
Environment=DATA_SOURCE_NAME=exporter:Prometheus@(localhost:3306)/
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf --web.listen-address=:9104
Restart=on-failure
​
[Install]
​
WantedBy=multi-user.target
​

4、设置开机自启并且开启mysqld_exporter服务,数据库进行添加用户和放开权限

复制代码
systemctl enable mysqld_exporter && systemctl start mysqld_exporter && systemctl status mysqld_exporter
​
iptables -I INPUT -p tcp --dport 9104 -j ACCEPT &&
iptables-save
​
数据库的操作
​
cd /usr/local/mysqld_exporter
​
cat > .my.cnf <<EOF
[client]
user=exporter
password=Prometheus
EOF
​
mysql -u root -p
​
set global validate_password_policy=LOW;  
​
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'Prometheus' WITH MAX_USER_CONNECTIONS 5;
​
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
​

5、在prometheus服务器添加mysqld_exporter节点监控

复制代码
vi /usr/local/prometheus/prometheus.yml
​
  - job_name: "mysqld_exporter"
    static_configs:
      - targets: ['被监控设备的IP:9104']
        labels:
          app: mysqld_exporter
          role: mysqld_exporter
      
或者以file_sd_configs方式添加node
vi /usr/local/prometheus/prometheus.yml
​
  - job_name: "mysqld_exporter"
    file_sd_configs:
      - files:
        - /usr/local/prometheus/target/mysqld_exporter.yml
        
# pwd
/usr/local/prometheus/target
# cat mysqld_exporter.yml 
- targets:
  - "被监控设备的IP:9104"
  labels:
    app: mysqld_exporter
    role: mysqld_exporter
​

6、热加载prometheus配置

复制代码
curl  -X POST http://127.0.0.1:9090/-/reload
​
复制代码
脚本方式部署
----------------------------------------------------------------------------
mysqld_exporter节点

vi mysqld_exporter.sh
​
#!/bin/bash
​
setenforce 0 &&
iptables -I INPUT -p tcp --dport 9104 -j ACCEPT &&
iptables-save > /dev/null  &&
mkdir -p /data/apps > /dev/null &&
cd /data/apps &&
wget https://githubfast.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz > /dev/null &&
echo "下载mysqld_exporter压缩包完成" &&
tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local > /dev/null &&
cd /usr/local &&
ln -s mysqld_exporter-0.12.1.linux-amd64 mysqld_exporter &&
echo "[Unit]
​
Description=Prometheus
​
[Service]
​
Environment=DATA_SOURCE_NAME=exporter:Prometheus@(localhost:3306)/
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf --web.listen-address=:9104
Restart=on-failure
​
[Install]
​
WantedBy=multi-user.target" | tee -i /usr/lib/systemd/system/mysqld_exporter.service > /dev/null &&
systemctl enable mysqld_exporter && 
systemctl start mysqld_exporter && 
systemctl status mysqld_exporter 
​
sh ./mysqld_exporter.sh

​进行上面4的数据库的操作

卸载mysqld_exporter节点

vi mysqld_exporter_uninstall.sh
​
#!/bin/bash
​
systemctl disable mysqld_exporter && 
systemctl stop mysqld_exporter && 
rm -rf /usr/lib/systemd/system/mysqld_exporter.service &&
setenforce 1 &&
iptables -D INPUT -p tcp --dport 9104 -j ACCEPT &&
iptables-save > /dev/null  &&
cd /usr/local &&
unlink mysqld_exporter &&
rm -rf mysqld_exporter-0.12.1.linux-amd64 &&
rm -rf /data/apps/mysqld_exporter-0.12.1.linux-amd64.tar.gz > /dev/null &&
echo "删除mysqld_exporter压缩包完成" 
​
sh ./mysqld_exporter_uninstall.sh
​

​prometheus节点

vi mysqld_exporter_join.sh
​
#!/bin/bash
​
#对应被监控的node名称
NODENAME=$1
#对应被监控的IP地址
IPADDRESS=$2
echo "
  - job_name: "$NODENAME"
    static_configs:
      - targets: ["$IPADDRESS:9104"]
    " | tee -a /usr/local/prometheus/prometheus.yml > /dev/null &&
/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml &&
curl  -X POST http://127.0.0.1:9090/-/reload
​
sh ./mysqld_exporter_join.sh NODENAME(对应被监控的node名称) IPADDRESS(对应被监控的IP地址)
​
相关推荐
梦影_1 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
John_Hui3 小时前
Windows 10 安装版本:mysql-8.1.0-winx64.zip
数据库·windows·mysql
莫晓燚3 小时前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
灵晔君5 小时前
【MySQL】数据库基础
数据库·mysql·adb
香蕉大香蕉(06敬畏市场)6 小时前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
杨云龙UP7 小时前
MySQL 主从复制管理:暂停、恢复、清理主从关系及命令执行位置
运维·数据库·mysql·主从配置·主从命令·reset replica·清除复制
霂鳯8 小时前
新手勇闯网络安全 | MySQL复习
mysql·安全·web安全
凤凰院凶涛QAQ8 小时前
《MySQL内核拆解:从SQL到InnoDB》(三) : 数据库设计 & 聚合查询 & 分组查询
数据库·sql·mysql
Decay__9 小时前
01_MySQL 体系架构全解 —— 连接层、SQL 层、存储引擎层与 InnoDB 深入
运维·数据库·sql·mysql·架构
在多学一点10 小时前
MySQL_DDL的基本命令
数据库·mysql·adb