环境 environment
centos6
1.下载mysqld_exporter
github地址https://github.com/prometheus/mysqld_exporter
cd /opt
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
tar -zxf mysqld_exporter-0.15.1.linux-amd64.tar.gz
mv mysqld_exporter-0.15.1.linux-amd64 mysqld_exporter
cd /opt/mysqld_exporter
cat > .my.cnf <<EOF
[client]
user = root
password = 123456
host = 127.0.0.1
port = 3306
EOF
下不动这个地址试试
wget https://g.ku0.cc/https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
1.1测试启动
/opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/.my.cnf
[root@01 mysqld_exporter]# /opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/.my.cnf
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:220 level=info msg="Starting mysqld_exporter" version="(version=0.15.1, branch=HEAD, revision=cc349684494b5038ec5a52233bdca9eb9291e6f2)"
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:221 level=info msg="Build context" build_context="(go=go1.21.5, platform=linux/amd64, user=root@d89c15b9f5ad, date=20231212-07:55:09, tags=unknown)"
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:233 level=info msg="Scraper enabled" scraper=global_status
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:233 level=info msg="Scraper enabled" scraper=global_variables
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:233 level=info msg="Scraper enabled" scraper=slave_status
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:233 level=info msg="Scraper enabled" scraper=info_schema.innodb_cmp
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:233 level=info msg="Scraper enabled" scraper=info_schema.innodb_cmpmem
ts=2024-03-16T12:35:59.208Z caller=mysqld_exporter.go:233 level=info msg="Scraper enabled" scraper=info_schema.query_response_time
ts=2024-03-16T12:35:59.210Z caller=tls_config.go:274 level=info msg="Listening on" address=0.0.0.0:9104
ts=2024-03-16T12:35:59.210Z caller=tls_config.go:277 level=info msg="TLS is disabled." http2=false address=0.0.0.0:9104
2.添加mysqld_exporter开机启动项
为了在CentOS 6中创建一个开机启动项,您可以使用/etc/init.d/目录下的启动脚本。下面是一个修改过的示例脚本,可以用来启动mysqld_exporter并传递所需的参数:
#!/bin/bash
#
# mysqld_exporter This shell script takes care of starting and stopping
# the mysqld_exporter daemon.
#
# chkconfig: 345 95 25
# description: mysqld_exporter is a MySQL server monitoring tool
# processname: mysqld_exporter
# pidfile: /var/run/mysqld_exporter.pid
### BEGIN INIT INFO
# Provides: mysqld_exporter
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: start and stop mysqld_exporter
# Description: mysqld_exporter is a MySQL server monitoring tool
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
prog="mysqld_exporter"
exec="/opt/mysqld_exporter/mysqld_exporter"
pidfile="/var/run/mysqld_exporter.pid"
lockfile="/var/lock/subsys/mysqld_exporter"
logfile="/var/log/mysqld_exporter.log"
config="--config.my-cnf=/opt/mysqld_exporter/.my.cnf"
start() {
[ -x $exec ] || exit 5
echo -n $"Starting $prog: "
daemon --pidfile=$pidfile $exec $config >> $logfile 2>&1 &
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $pidfile $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
保存这个脚本为 mysqld_exporter,然后将其复制到 /etc/init.d/ 目录下,并赋予执行权限:
sudo cp mysqld_exporter /etc/init.d/
sudo chmod +x /etc/init.d/mysqld_exporter
接下来,使用以下命令将其添加到系统服务中,并启用它:
sudo chkconfig --add mysqld_exporter
sudo chkconfig mysqld_exporter on
现在,mysqld_exporter服务应该会在系统启动时自动启动,并传递–config.my-cnf=/opt/mysqld_exporter/.my.cnf参数。您可以使用以下命令控制服务的启动、停止和重启:
sudo service mysqld_exporter start
sudo service mysqld_exporter stop
sudo service mysqld_exporter restart
确保替换脚本中的路径和文件名以匹配您的实际安装情况。
2.1 centos7添加开机启动项
如果在 CentOS 7 中,您可以使用 Systemd 来管理服务和启动项。以下是一个简单的 Systemd 服务单元文件,用于启动 mysqld_exporter
并传递指定的参数:
- 首先,创建一个名为
mysqld_exporter.service
的文件,路径为/etc/systemd/system/
:
sudo nano /etc/systemd/system/mysqld_exporter.service
- 将以下内容粘贴到文件中:
[Unit]
Description=MySQL Exporter
After=network.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/.my.cnf
[Install]
WantedBy=multi-user.target
-
保存并关闭文件(在 Nano 中使用
Ctrl + X
,然后按Y
保存)。 -
接下来,重新加载 Systemd 管理的服务单元列表,以使新添加的服务生效:
sudo systemctl daemon-reload
- 现在,您可以启动、停止、重启和查看服务状态了:
- 启动服务:
sudo systemctl start mysqld_exporter
- 停止服务:
sudo systemctl stop mysqld_exporter
- 重启服务:
sudo systemctl restart mysqld_exporter
- 查看服务状态:
sudo systemctl status mysqld_exporter
- 如果您希望
mysqld_exporter
在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable mysqld_exporter
现在,mysqld_exporter
将在系统启动时自动启动,并传递指定的参数。确保替换上述配置中的路径和文件名以匹配您的实际安装情况。
2.2清理
2.2.1如果centos6测试环境需要清理
chkconfig --del mysqld_exporter
rm -f /etc/init.d/mysqld_exporter
rm -rf /opt/mysqld_exporter
2.2.2 如果centos7测试环境需要清理
要从 CentOS 7 中删除开机启动项,您需要使用 systemctl
命令来停用服务并删除相关的 Systemd 单元文件。以下是删除 mysqld_exporter
开机启动项的步骤:
- 停止服务:首先,您需要停止
mysqld_exporter
服务。
sudo systemctl stop mysqld_exporter
- 禁用服务:然后,将服务标记为禁用,以防止它在系统启动时自动启动。
sudo systemctl disable mysqld_exporter
- 删除 Systemd 单元文件:最后,您需要删除相关的 Systemd 单元文件。
sudo rm /etc/systemd/system/mysqld_exporter.service
- 重新加载 Systemd 管理的服务单元列表:删除文件后,重新加载 Systemd 的服务列表以使更改生效。
sudo systemctl daemon-reload
现在,mysqld_exporter
的开机启动项已经从系统中删除了。
3. prometheus添加配置重载
scrape_configs下家job_name 可以多个
scrape_configs:
- job_name: 'mysql'
static_configs:
- targets: ['localhost:9104'] # 这里的端口是 mysqld_exporter 监听的端口,根据实际情况进行更改
metrics_path: /metrics
3.1 prometheus重载配置
curl -X POST -u user1:password http://localhost:9090/-/reload
prometheus无密码
curl -X POST http://localhost:9090/-/reload
grafana添加dashboard
打开 grafana地址:3000/dashboard/import
填写ID 7362 然后load
面板介绍: https://grafana.com/grafana/dashboards/7362-mysql-overview/
数据源选prometheus
大功告成
近期评论