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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云防火墙,500元 1000GB
可观测可视化 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





相关文章
|
2月前
|
人工智能 API 数据库
MCP Server 开发实战 | 大模型无缝对接 Grafana
以 AI 世界的“USB-C”标准接口——MCP(Model Context Protocol)为例,演示如何通过 MCP Server 实现大模型与阿里云 Grafana 服务的无缝对接,让智能交互更加高效、直观。
1076 115
|
7月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
716 3
|
4月前
|
监控 网络协议 算法
基于问题“如何监控局域网内的电脑”——Node.js 的 ARP 扫描算法实现局域网内计算机监控的技术探究
在网络管理与安全领域,监控局域网内计算机至关重要。本文探讨基于Node.js的ARP扫描算法,通过获取IP和MAC地址实现有效监控。使用`arp`库安装(`npm install arp`)并编写代码,可定期扫描并对比设备列表,判断设备上线和下线状态。此技术适用于企业网络管理和家庭网络安全防护,未来有望进一步提升效率与准确性。
94 8
|
6月前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
294 20
|
6月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
494 7
|
6月前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
835 3
|
7月前
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
208 5
|
9月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
7月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
686 0
|
4月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。