1、下载所需资源:
下载go的tar包:
https://go.dev/dl/go1.20.6.linux-amd64.tar.gz
下载prometheus的tar包:
下载适用于CentOS7系统的grafana面板的rpm包:
https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.2-1.x86_64.rpm
下载node_exporter模块的tar包:
下载mysqld_exporter模块的tar包:
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