【实战】CentOS7 Prometheus+Grafana面板搭建+监控node_exporter+监控mysqld_exporter

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 有3台主机(CentOS7): 192.168.188.100 服务端 192.168.188.101 客户端 192.168.188.102 客户端100部署Prometheus(9090)+Grafana(3000)101部署node_exporter(39100)模块,监控该服务器所用资源情况102部署mysqld_exporter(39200)模块,监控该服务器上的数据库使用情况

1、下载所需资源:

下载go的tar包:

https://go.dev/dl/go1.20.6.linux-amd64.tar.gz

下载prometheus的tar包:

https://github.com/prometheus/prometheus/releases/download/v2.46.0-rc.0/prometheus-2.46.0-rc.0.linux-amd64.tar.gz

下载适用于CentOS7系统的grafana面板的rpm包:

https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.2-1.x86_64.rpm

下载node_exporter模块的tar包:

https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

下载mysqld_exporter模块的tar包:

https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz


2、3台主机上都需要部署的服务:

关闭防火墙(不关闭防火墙要放行服务+服务所使用的端口):

systenctl stop firewalld.service #暂停防火墙

systenctl disable firewalld.service #关闭防火墙

systenctl status firewalld.service #查询防火墙状态


允许防火墙放行服务+端口号:

firewall-cmd --permanent --add-service=node_exporter #允许node_exporter服务 通过防火墙(永久)

firewall-cmd --permanent --add-port=8074/tcp #允许node_exporter服务所使用的端口 通过防火墙(永久) 端口可以指定

firewall-cmd --reload #重新加载防火墙使防火墙配置生效


关闭SELINUX:

setenforce 0 #临时关闭selinux

vi /etc/selinux/config  #永久关闭selinux服务

                 SELINUX=disabled

           sestatus #查看selinux状态


部署go:

将go的tar包上传到100服务器的/home/Prometheus目录下

解压tar包:

tar -zxvf go1.20.6.linux-amd64.tar.gz

将go下的bin添加到环境变量中:

vi /etc/profile

#最后1行添加
export PATH=$PATH:/home/Prometheus/go/bin
#保存退出
source /etc/profile #source该文件,使刚才的配置生效

验证:

go version #出现go version go1.20.6 linux/amd64 说明生效


3、100服务端 服务器部署Prometheus+grafana面板:

prometheus-2.46.0-rc.0.linux-amd64.tar.gz包上传到/home/Prometheus目录下

grafana-enterprise-10.0.2-1.x86_64.rpm包上传到/home/Prometheus目录下


解压prometheus-2.46.0-rc.0.linux-amd64.tar.gz包:

tar -zxvf prometheus-2.46.0-rc.0.linux-amd64.tar.gz


修改prometheus-2.46.0-rc.0.linux-amd64目录名为prometheus

mv prometheus-2.46.0-rc.0.linux-amd64prometheus


查看prometheus服务的版本号:

cd /home/Prometheus/premetheus/

./prometheus --version #执行当前目录下的prometheus 查看其版本号 显示说明服务能正常运行


配置prometheus.yml文件:

vi /home/Prometheus/premetheus/prometheus.yml

# job名称会增加到拉取到的所有采样点上,同时还有一个instance目标服务的host:port标签也会增加到采样点上
  - job_name: 'prometheus'
    # 覆盖global的采样点,拉取时间间隔5s
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:9090']


编辑prometheus.service文件:

vi /usr/lib/systemd/system/prometheus.service

[Unit]
  Description=https://prometheus.io
  [Service]
  Restart=on-failure
  ExecStart=/home/Prometheus/premetheus/prometheus --config.file=/home/Prometheus/premetheus/prometheus.yml --web.listen-address=:9090
            #prometheus目录中prometheus的文件         prometheus目录中prometheus.yml文件 指定监听端口为9090  端口可以改
  [Install]                      
  WantedBy=multi-user.target


刷新system文件,启动

systemctl daemon-reload               #加载服务

systemctl start prometheus            #启动服务 重启restart

systemctl enable prometheus         #设置开机自启

systemctl status prometheus          #查看服务状态


浏览器访问测试:

服务端IP:端口

192.168.188.100:9090


部署grafana面板:

yum -y install grafana-enterprise-10.0.2-1.x86_64.rpm


启动grafana服务:

service grafana-server start  #启动

service grafana-server status #查看状态

systemctl enable grafana-server.service #设置开机自启


浏览器访问:

192.168.188.100:3000

#服务默认使用的3000端口


初始用户名+密码:

用户名:admin

密码:admin


#如果防火墙开着要放行服务和端口(只放行端口也行)

firewall-cmd --permanent --add-port=3000/tcp

firewall-cmd --reload #重新加载防火墙


grafana面板配置成中文:

在服务端搜defaults.ini文件,修改defaults.ini文件文件中的配置

find /  -name defaults.ini  #找到后修改文件


vi defaults.ini

注销#default_language = en-US
default_language = zh-Hans #添加

保存后重启服务即可

service grafana-server restart  #重启服务


4、101客户端服务器部署node_exporter模块:

node_exporter-1.6.1.linux-amd64.tar.gz tar包上传到/home/Prometheus目录下(没有就创建)


解压node_exporter-1.6.1.linux-amd64.tar.gz tar包:

tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz


修改node_exporter-1.6.1.linux-amd64目录名为node_exporter

mv node_exporter-1.6.1.linux-amd64node_exporter


创建node_exporter.service文件 指定使用的端口为39100:

vi /usr/lib/systemd/system/node_exporter.service

[Unit]
Description=node_exporter
After=network.target 
#这里的node_exporter是文件,路径要指对 这里指定的哪个端口服务起来后用的就是哪个端口
[Service]
ExecStart=/home/Prometheus/node_exporter/node_exporter  --web.listen-address=192.168.188.100:39100 
Restart=on-failure
[Install]
WantedBy=multi-user.target

启动node_exporter服务:

systemctl daemon-reload                #加载服务

systemctl start node_exporter         #启动服务 重启restart

systemctl enable node_exporter      #设置开机自启

systemctl status  node_exporter      #查看服务状态


验证:

ps -ef | grep mysqld_exporter #根据查到的PID查询端口是否正常工作

ss -lntp |grep pid


允许防火墙放行node_exporter服务+端口号:

firewall-cmd --permanent --add-service=node_exporter #允许node_exporter服务 通过防火墙(永久) 报错也可只放行端口,服务名忽略

firewall-cmd --permanent --add-port=39100/tcp #允许node_exporter服务所使用的端口 通过防火墙(永久) 端口可以指定

firewall-cmd --reload #重新加载防火墙使防火墙配置生效


进入100服务端 服务器配置prometheus.yml文件,把node_exporter客户端的IP:端口加入文件中:

vi /home/Prometheus/premetheus/prometheus.yml

#添加node_exporter模块
- job_name: 'node_exporter'
    static_configs:
      - targets: ['192.168.188.101:39100']

重启premetheus,使服务生效:

systemctl restart prometheus  #重启服务


浏览器192.168.188.100:9090看到服务连上后在grafana面板添加对应可视化仪表盘即可


5、102客户端添加mysqld_exporter模块:

mysqld_exporter-0.15.0.linux-amd64.tar.gz tar包上传到/home/Prometheus目录下(没有就创建)


解压mysqld_exporter-0.15.0.linux-amd64.tar.gz tar包:

tar -zxvf mysqld_exporter-0.15.0.linux-amd64.tar.gz


修改mysqld_exporter-0.15.0.linux-amd64目录为mysqld_exporter:

mv mysqld_exporter-0.15.0.linux-amd64mysqld_exporter


创建隐藏文件.my.cnf

vi /home/Prometheus/mysqld_exporter/.my.cnf

[client]
host=192.168.188.102  #mysql数据库所在服务器的IP地址
user=root             #mysql数据库的名
password=root         #mysql数据库的密码
port=3306             #mysql数据库的端口

启动mysqld_exporter模块:

cd /home/Prometheus/mysqld_exporter

#在后台启动mysqld_exporter,监听39200端口,使用指定的配置文件连接MySQL数据库,并导出指标给Prometheus
nohup ./mysqld_exporter  --web.listen-address=:39200  --config.my-cnf="/home/mysqld_exporter/.my.cnf" &

验证:

ps -ef | grep mysqld_exporter #根据查到的PID查询端口是否正常工作

ss -lntp |grep pid


允许防火墙放行mysqld_exporter服务+端口号:

firewall-cmd --permanent --add-service=mysqld_exporter #允许mysqld_exporter服务 通过防火墙(永久) 报错也可只放行端口,服务名忽略

firewall-cmd --permanent --add-port=39200/tcp #允许node_exporter服务所使用的端口 通过防火墙(永久) 端口可以指定 我指定的端口是39200

firewall-cmd --reload #重新加载防火墙使防火墙配置生效


进入100服务端 服务器配置prometheus.yml文件,把mysqld_exporter客户端的IP:端口加入文件中:

vi /home/Prometheus/premetheus/prometheus.yml

#添加mysqld_exporter模块
- job_name: 'mysqld_exporter'
    static_configs:
      - targets: ['192.168.188.102:39200']

重启premetheus,使服务生效:

systemctl restart prometheus  #重启服务


浏览器192.168.188.100:9090看到服务连上后在grafana面板添加对应可视化仪表盘即可


grafana下载可视化面板地址:

https://grafana.com/grafana/dashboards/10242-node-exporter-full





相关文章
|
22天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
119 3
|
12天前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 监控关注的核心指标包括 Master 和 RegionServer 的进程存在性、RPC 请求数、JVM 内存使用率、磁盘和网络错误、延迟和吞吐量、资源利用率及 JVM 使用信息。通过 Grafana 可视化和告警规则,帮助管理员实时监控集群性能和健康状况。
|
23天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
60 2
|
21天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
104 0
|
2月前
|
Prometheus 监控 Cloud Native
介绍如何使用Prometheus进行监控
介绍如何使用Prometheus进行监控
215 3
|
1月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
107 64
|
12天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
13天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
85 1
Linux系统之Centos7安装cockpit图形管理界面
|
20天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
59 3