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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 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





相关文章
|
2月前
|
Prometheus 监控 Cloud Native
自定义grafana_table(数据源Prometheus)
综上所述,自定义 Grafana 表格并将 Prometheus 作为数据源的关键是理解 PromQL 的查询机制、熟悉 Grafana 面板的配置选项,并利用 Grafana 强大的转换和自定义功能使数据展示更为直观和有洞见性。随着对这些工具更深入的了解,您将可以创建出更高级的监控仪表盘,以支持复杂的业务监控需求。
84 1
|
2月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
2月前
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
97 1
|
2月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
156 1
|
2月前
|
Prometheus 监控 Cloud Native
Grafana 入门指南:快速上手监控仪表盘
【8月更文第29天】Grafana 是一款开源的数据可视化和监控工具,它允许用户轻松地创建美观的仪表盘和图表,以便更好地理解和监控数据。无论您是需要监控系统性能指标、应用程序日志还是业务关键指标,Grafana 都能提供灵活而强大的解决方案。本指南将带领您快速上手 Grafana,包括安装、配置以及创建第一个监控面板。
136 1
|
2月前
|
Prometheus 监控 Cloud Native
Spring Boot 性能护航!Prometheus、Grafana、ELK 组合拳,点燃数字化时代应用稳定之火
【8月更文挑战第29天】在现代软件开发中,保证应用性能与稳定至关重要。Spring Boot 作为流行的 Java 框架,结合 Prometheus、Grafana 和 ELK 可显著提升监控与分析能力。Prometheus 负责收集时间序列数据,Grafana 将数据可视化,而 ELK (Elasticsearch、Logstash、Kibana)则管理并分析应用日志。通过具体实例演示了如何在 Spring Boot 应用中集成这些工具:配置 Prometheus 获取度量信息、Grafana 显示结果及 ELK 分析日志,从而帮助开发者快速定位问题,确保应用稳定高效运行。
48 1
|
2月前
|
Prometheus Kubernetes 监控
Kubernetes(K8S) 监控 Prometheus + Grafana
Kubernetes(K8S) 监控 Prometheus + Grafana
150 2
|
1月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
66 0
|
2月前
|
Prometheus 监控 Cloud Native
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
|
3月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
下一篇
无影云桌面