Prometheus 部署mysql 监控
本篇文章部分内容与我前一篇文章衔接,看不明白的可以参考我前一篇文章
Centos7下搭建Prometheus+Grafana并部署基础监控
Redis 监控
对于 Redis 的监控,Prometheus 可以收集多种指标,包括但不限于:
- 命令统计:如每个命令的调用次数、执行时间等。
- 内存使用情况:包括已使用的内存量、内存碎片等。
- 客户端连接数:当前连接到 Redis 服务器的客户端数量。
- 键空间统计:如键的总数、过期键的数量等。
为了实现 Redis 的监控,通常需要使用 Redis 的 INFO 命令来获取这些指标,并通过一个 exporter(如 redis_exporter)将这些指标转换为 Prometheus 可以理解的格式。这个 exporter 会定期运行 INFO 命令并解析输出,然后将结果暴露给 Prometheus 服务器。
MySQL 监控
对于 MySQL 的监控,Prometheus 同样可以收集丰富的指标,包括:
- 查询性能:如查询的响应时间、慢查询的数量等。
- 连接统计:当前活动的连接数、尝试失败的连接数等。
- 存储引擎状态:如 InnoDB 的缓冲区使用情况、锁的状态等。
- 系统和进程信息:如 MySQL 服务器的 CPU 和内存使用情况。
为了监控 MySQL,通常会使用 mysql_exporter
这样的工具。这个 exporter 会连接到 MySQL 服务器,使用性能模式(Performance Schema)或其他机制来获取指标,并将它们暴露给 Prometheus 服务器。
配置和集成
在配置了 Redis 和 MySQL 的 exporter 之后,你需要在 Prometheus 的配置文件中添加对应的作业(job),以便 Prometheus 能够定期从这些 exporter 拉取指标。一旦配置完成并重启 Prometheus,它就会开始收集并存储这些指标,然后你可以使用 Prometheus 的查询语言(PromQL)来查询和分析这些指标,或者使用 Grafana 这样的工具来进行可视化。
准备
两台虚拟机
192.168.100.125 Prometheus端 192.168.100.126 node端
开放防火墙端口
更改防火墙
在两台机器执行
请运行以下命令以开放端口
firewall-cmd --zone=public --add-port=9104/tcp --permanent firewall-cmd --zone=public --add-port=9121/tcp --permanent firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload
1、打开 SELinux 的配置文件
sudo vi /etc/selinux/config
2、在打开的配置文件中,找到SELINUX
这一行。这一行可能设置为enforcing
(强制模式)或permissive
(宽容模式)。如果你想要将 SELinux 设置为宽容模式,确保这一行的值是permissive
:
SELINUX=permissive
3、保存并关闭文件。如果你使用的是 vi 编辑器,按Esc
,然后输入:wq
并按Enter
来保存并退出。
4、为了并关闭文件。如果你使用的是 vi 编辑器,按Esc
,然后输入:wq
并按Enter
来保存并退出。
sudo reboot
5、或者也可以尝试使用setenforce
命令临时将 SELinux 设置为宽容模式,但这只是临时的,重启后 SELinux 会恢复到配置文件中的设置:
sudo setenforce 0
注意:node端(也就是被监控的)安装MySQL和redis
安装 mysql
1、下载 MySQL 安装包
yum install wget wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
2、安装rpm 包
使用 rpm 命令安装下载的 rpm 包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
3、安装 MySQL 社区版
使用 yum 安装 MySQL 社区版
yum -y install mysql-community-server --nogpgcheck
这里使用--nogpgcheck
参数忽略 gpg 检查。 4. 启动 MySQL 服务
使用 service 命令启动 MySQL 服务
service mysqld start
4、启动MySQL 服务
使用 service 命令启动 MySQL 服务
service mysqld start
5、查看
systemctl status mysqld
6、登录 MySQL 并修改密码
查看 MySQL 的临时密码
grep 'temporary password' /var/log/mysqld.log
登录 MySQL
mysql -uroot -p
输入临时密码
修改 MySQL 的 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
注意,为了安全起见,新密码应该足够复杂并难以猜测。
安装 mysqld_exporter
以下在 node 端执行
1、下载安装 mysqld_exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz tar -zvxf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/ cd /usr/local/ mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter cd /usr/local/mysqld_exporter
下载慢尝试
wget https://githubfast.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
2、mysqld_exporter 配置
进入数据库创建账号
CREATE USER 'exporter'@'%' IDENTIFIED BY 'password' WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, SELECT ON _._ TO 'exporter'@'%';
使用环境变量方式配置一下数据库连接认证信息并启动 Exporter
export DATA_SOURCE_NAME='exporter:password@(localhost:3306)/' cd /usr/local/mysqld_exporter nohup ./mysqld_exporter &
使用配置文件,在当前机器~/.my.cnf 配置文件中增加配置信息,注意修改自己实际情况参数。注意这个.my.cnf 在 exporter 所在机器创建就行,和 mysql 实际自己的配置文件 my.cnf 没有一点关系
vi ~/.my.cnf
[client] host=127.0.0.1 port=3306 user=exporter password=password
3、使用 systemctl 管理 mysqld_exporter
vi /usr/lib/systemd/system/mysqld_exporter.service
写入
[Unit] Description=mysqld_exporter for Prometheus monitoring After=network.target [Service] Type=simple User=root WorkingDirectory=/usr/local/mysqld_exporter/ ExecStart=/usr/local/mysqld_exporter/./mysqld_exporter Restart=always [Install] WantedBy=multi-user.target
mysqld_exporter 启动成功后,默认端口是 9104, 访问 ip:9104/metrics 即可查看 mysql 相关指标
以下在 Prometheus 端执行
4、修改 Prometheus 的配置文件 prometheus.yml 增加 mysql 相关 exporter job
vi /usr/local/prometheus/prometheus.yml
在最后添加
- job_name: 'mysql' static_configs: - targets: ['192.168.100.126:9104'] labels: instance: mysql
5、重启Prometheus 和 grafana
systemctl restart prometheus systemctl restart grafana-server
进入 prometheus 的 web 界面,再次选择 targets, 可以看到新加的 mysql 端点
然后导入 mysql 的监控大盘
标签:exporter,--,mysql,redis,Grafana,Centos7,Prometheus,mysqld,MySQL From: https://www.cnblogs.com/datacenter/p/18191306