本站文章总数为:165
Search Posts

centos6 prometheus+grafana+mysqld_exporter对mysql进行监控

内容纲要

环境 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 并传递指定的参数:

  1. 首先,创建一个名为 mysqld_exporter.service 的文件,路径为 /etc/systemd/system/
sudo nano /etc/systemd/system/mysqld_exporter.service
  1. 将以下内容粘贴到文件中:
[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
  1. 保存并关闭文件(在 Nano 中使用 Ctrl + X,然后按 Y 保存)。

  2. 接下来,重新加载 Systemd 管理的服务单元列表,以使新添加的服务生效:

sudo systemctl daemon-reload
  1. 现在,您可以启动、停止、重启和查看服务状态了:
  • 启动服务:
sudo systemctl start mysqld_exporter
  • 停止服务:
sudo systemctl stop mysqld_exporter
  • 重启服务:
sudo systemctl restart mysqld_exporter
  • 查看服务状态:
sudo systemctl status mysqld_exporter
  1. 如果您希望 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 开机启动项的步骤:

  1. 停止服务:首先,您需要停止 mysqld_exporter 服务。
sudo systemctl stop mysqld_exporter
  1. 禁用服务:然后,将服务标记为禁用,以防止它在系统启动时自动启动。
sudo systemctl disable mysqld_exporter
  1. 删除 Systemd 单元文件:最后,您需要删除相关的 Systemd 单元文件。
sudo rm /etc/systemd/system/mysqld_exporter.service
  1. 重新加载 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
大功告成

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注