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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 有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





相关文章
|
6月前
|
监控 关系型数据库 MySQL
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
|
1月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
25 2
|
1月前
|
存储 监控 Linux
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
【2月更文挑战第17天】Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
29 1
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
|
1月前
|
编解码 前端开发 JavaScript
Grafana Plugin: 支持 jsx 实时渲染的 grafana 面板插件
A JSX real-time rendering grafana panel plugin. / 一个支持 JSX 实时渲染的 grafana 面板插件
55 3
|
6月前
|
存储 Prometheus 监控
服务搭建篇(一) 搭建基于prometheus + node_exporter + grafana + Alertmanager 的监控报警系统 , 保姆级教程
Alertmanager处理客户端应用程序(如Prometheus服务器)发送的警报。它负责重复数据删除、分组,并将它们路由到正确的接收器集成,如电子邮件、PagerDuty或OpsGenie。它还负责静音和抑制警报
187 0
|
2月前
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix
|
3月前
|
JSON 监控 数据库
使用Telegraf+Influxdb+Grafana配置VMware vSphere监控大屏
使用Telegraf+Influxdb+Grafana配置VMware vSphere监控大屏
68 0
|
3月前
|
监控 数据库 开发工具
使用Telegraf+Grafana监控Microsoft SQLServer数据库
使用Telegraf+Grafana监控Microsoft SQLServer数据库
70 1
|
3月前
|
Prometheus 监控 Cloud Native
微服务框架(二十二)Prometheus + Grafana 可视化监控
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Prometheus + Grafana 可视化监控的介绍,下篇为Prometheus + Grafana...
|
3月前
|
Prometheus 监控 Cloud Native
微服务框架(十九)Spring Boot 可视化监控 Prometheus + Grafana
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Spring Boot 通过 micrometer 的监控门面,实现Prometheus + G...