目录
说明
mysqld_exporter 获取mysql日志
prometheus 根据mysqld_exporter提供的数据进行监控
General 为prometheus提供更高效的可视化界面
服务安装
mysql安装
参考:CentOS7离线安装mysql8
mysqld_exporter 安装
-
获取安装包
官网Git地址
本教程采用mysqld_exporter-0.14.0.linux-amd64.tar.gz -
解压部署 我的mysql安装目录为/usr/local/mysql/ 不想为mysqld_exporter 单独创建文件路径 故放置于mysql目录下
tar -zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/mysql/ cd /usr/local/mysql/ mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter
-
连接mysql创建mysqld_exporter访问用户
mysql -uroot -p
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'exporter_pwd' WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost'; exit;
-
创建mysqld_exporter启动的配置文件
cd mysqld_exporter vi my.cnf
my.cnf
[client] ## user=exporter password=exporter_pwd host=localhost port=3306
-
创建mysqld_exporter启动脚本
vi start.sh
#!/bin/bash #获取脚本文件所在的绝对路径 SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" SOURCE="$(readlink "$SOURCE")" [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" done DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" #启动命令 nohup $DIR/mysqld_exporter --config.my-cnf=$DIR/my.cnf --web.listen-address="0.0.0.0:9088" --log.level=info >$DIR/logs/mysqld_exporter.log 2>&1 &
创建日志文件夹并赋予脚本可执行权限
mkdir logs chmod a+x start.sh
prometheus安装
- 获取安装包
官网下载地址
本次教程采用prometheus-2.34.0.linux-amd64.tar.gz - 安装部署
tar -zxvf prometheus-2.34.0.linux-amd64.tar.gz -C /usr/local/ cd /usr/local/ mv prometheus-2.34.0.linux-amd64 prometheus cd prometheus
- 修改prometheus.yml配置文件 在尾部添加mysqld_exporter监控配置
targets地址为mysqld_exporter的web.listen-address参数,0.0.0.0转为实际IPvi prometheus.yml
- job_name: 'mysql' static_configs: - targets: ['172.16.72.150:9088']
- 启动
命令启动不方便,可创建prometheus.service 启动 可创建一个专门用于该服务的用户nohup ./prometheus --config.file=prometheus.yml --storage.tsdb.path=data >prometheus.log 2>&1 &
prometheus.service内容如下#创建用户 useradd -s /sbin/nologin -M prometheus #创建数据目录 cd /usr/local/prometheus mkdir data #修改目录属主 chown -R prometheus:prometheus /usr/local/prometheus vi /usr/lib/systemd/system/prometheus.service
[Unit] Description=Prometheus Documentation=https://prometheus.io/ After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data Restart=on-failure ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID [Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl enable prometheus systemctl start prometheus
General安装
-
获取安装包
官网wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.4.linux-amd64.tar.gz
-
安装部署
tar -zxvf grafana-enterprise-8.4.4.linux-amd64.tar.gz -C /usr/local/ cd /usr/local/ mv grafana-8.4.4 grafana
-
启动
3.1 nohup 启动cd /usr/local/grafana/ nohup ./bin/grafana-server 1>grafana.log 2>&1 &
3.2 配置启动/停止脚本
cd /usr/local/grafana/ vi start.sh
start.sh
#!/bin/bash #获取脚本文件所在的绝对路径 SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" SOURCE="$(readlink "$SOURCE")" [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" done DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd )" cd nohup $DIR/grafana-server -homepath $DIR/../ >$DIR/../log.log 2>&1 &
stop.sh
#!/bin/bash pgrep grafana-server | xargs -exec kill -9
chmod a+x stop.sh chmod a+x start.sh
-
添加监控
4.1 添加Prometheus 配置
在Configuration中选择Add data source 选择 Prometheus
拉到尾部save保存
4.2 导入解析配置
create->import 填写mysql的配置(7362) Load->prometheus 选择Prometheus->Import