Centos7下Prometheus+Grafana部署 redis 以及 mysql 监控

Prometheus 部署 redis 以及 mysql 监控

本篇文章部分内容与我前一篇文章衔接,看不明白的可以参考我前一篇文章

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. 为了让新的 SELinux 配置生效,你需要重启你的系统:

    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
  1. 安装 rpm 包
    使用 rpm 命令安装下载的 rpm 包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
  1. 安装 MySQL 社区版
    使用 yum 安装 MySQL 社区版
yum -y install mysql-community-server --nogpgcheck

这里使用--nogpgcheck参数忽略 gpg 检查。 4. 启动 MySQL 服务
使用 service 命令启动 MySQL 服务

service mysqld start
  1. 查看 MySQL 状态
systemctl status mysqld
  1. 登录 MySQL 并修改密码
    查看 MySQL 的临时密码
grep 'temporary password' /var/log/mysqld.log

登录 MySQL

mysql -uroot -p

输入临时密码
修改 MySQL 的 root 用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

注意,为了安全起见,新密码应该足够复杂并难以猜测。

  1. (可选)修改 MySQL 密码安全校验强度
    如果设置的密码简单,可能需要将 MySQL 的密码安全校验强度改为低风险
SET GLOBAL validate_password_policy=LOW;
SET GLOBAL validate_password_length=4;

安装 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
  1. 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
  1. 使用 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 端执行

  1. 修改 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
  1. 重启 Prometheus 和 grafana
systemctl restart prometheus
systemctl restart grafana-server

进入 prometheus 的 web 界面,再次选择 targets, 可以看到新加的 mysql 端点
mysql 端点

然后导入 mysql 的监控大盘
导入 mysql 的监控大盘
导入 mysql 的监控大盘

导入 mysql 的监控大盘

导入 mysql 的监控大盘

安装 redis

以下在 node 端执行
  1. 由于 Redis 是用 C 语言编写,所以编译时需要 gcc
yum install gcc-c++
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -zxvf redis-5.0.0.tar.gz -C ~
cd ~/redis-5.0.0/
make install PREFIX=/usr/local/redis
  1. 进入安装目录 bin 下,修改配置文件
cd /usr/local/redis/bin
cp /root/redis-5.0.0/redis.conf /usr/local/redis/bin
vi /usr/local/redis/bin/redis.conf
在大约69行修改daemonize no为daemonize yes
在大约136行修改bind 127.0.0.1为bind 0.0.0.0

执行如下命令启动 redis:

cd /usr/local/redis/bin
./redis-server ./redis.conf
  1. 查看是否启动成功
ps aux|grep redis
  1. 在系统服务目录里创建 redis.service 文件
vi /etc/systemd/system/redis.service

写入以下内容:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重载系统服务:

systemctl daemon-reload
systemctl start redis.service

redis_exporter

wget https://github.com/oliver006/redis_exporter/releases/download/v1.36.0/redis_exporter-v1.36.0.linux-amd64.tar.gz
tar -zxvf redis_exporter-v1.36.0.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv redis_exporter-v1.36.0.linux-amd64 redis_exporter
cd /usr/local/redis_exporter
nohup ./redis_exporter --redis.password=123456 &

下载慢尝试

wget https://githubfast.com/oliver006/redis_exporter/releases/download/v1.36.0/redis_exporter-v1.36.0.linux-amd64.tar.gz
  1. 使用 systemctl 管理 redis_exporter
vi /usr/lib/systemd/system/redis_exporter.service

写入

[Unit]
Description=Redis Exporter for Prometheus
After=network.target

[Service]
ExecStart=/usr/local/redis_exporter/redis_exporter
Restart=always
User=root
Group=root
StandardOutput=append:/usr/local/redis_exporter/redis_exporter.log
StandardError=inherit
LogLevel=info

[Install]
WantedBy=multi-user.target

访问 http://ip:9121/metrics

以下在 Prometheus 端操作

在 prometheus.yml 中添加 redis_exporter 的配置, 要注意 yml 文件的语法规范

vi /usr/local/prometheus/prometheus.yml

在最后写入

  - job_name: "redis"
    static_configs:
    - targets: ['192.168.100.126:9121']
  1. 重启 Prometheus 和 grafana
systemctl restart prometheus
systemctl restart grafana-server

进入 prometheus 的 web 界面,再次选择 targets, 可以看到新加的 redis 端点

redis 端点

在 grafana 中导入监控大盘

redis 端点监控大盘

redis 端点监控大盘
redis 端点监控大盘

redis 端点监控大盘
参考文档:
https://blog.csdn.net/yichen0429/article/details/123819489
https://www.cnblogs.com/hxun/p/11075755.html

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上安装PrometheusGrafana,可以按照以下步骤进行操作: 1. 首先,下载Prometheus的压缩包。你可以在Prometheus的官方网站上选择一个适合你的安装包版本。使用wget命令下载压缩包: ``` wget http://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz ``` 2. 解压下载的压缩包: ``` tar -zvxf prometheus-2.44.0.linux-amd64.tar.gz ``` 3. 进入解压后的Prometheus文件夹: ``` cd prometheus-2.44.0.linux-amd64 ``` 4. 创建一个用于存储Prometheus数据的文件夹: ``` mkdir /usr/local/prometheus/data ``` 5. 创建一个用于运行Prometheus的系统用户: ``` useradd -s /sbin/nologin prometheus ``` 6. 将Prometheus文件夹移动到/usr/local目录下,并设置正确的所有者: ``` mv prometheus-2.44.0.linux-amd64 /usr/local/prometheus chown -R prometheus:prometheus /usr/local/prometheus/ ``` 7. 配置Prometheus的启动脚本。使用vim编辑器打开prometheus.service文件: ``` vim /usr/lib/systemd/system/prometheus.service ``` 8. 在文件中添加以下内容: ``` [Unit] Description=prometheus After=network.target <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [CentOS7安装Prometheus+Grafana](https://blog.csdn.net/weixin_58131623/article/details/129612643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Centos7匹配Locust+prometheus+grafana性能监控平台](https://blog.csdn.net/vikesgao/article/details/130965336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值