首页 > 编程语言 >【服务器监控】grafana+Prometheus+node exporter详细部署文档

【服务器监控】grafana+Prometheus+node exporter详细部署文档

时间:2024-12-06 16:00:41浏览次数:7  
标签:node exporter prometheus grafana Prometheus 安装

我们在进行测试时,不可能一直手动看着服务器的性能消耗,这时候就需要有个工具替我们监控服务器的性能消耗。这里记录下grafana+Prometheus+nodeExporter的组合用于监控服务器。

简单介绍:

grafana:看板工具,所有采集的性能数据都会展示在这个看板上,官网: link
Prometheus: 监控系统,数据的采集、存储、查询等主要功能都是在它这里,参考文档: link
node_exporter:其是Prometheus的一个采集组件,可以用来采集机器上的数据,并暴露接口给Prometheus,以此将数据传过去。
这是prometheus官网的架构图,可以参考这个看一下
在这里插入图片描述
我这里简单概述一下我们使用到的功能,即node_exporter采集机器节点上的性能数据,并将数据传给Prometheus处理,grafana再从Prometheus那里获取数据展示在看板上。(exporter有多种类型,比如采集容器的,mysql的,这里node_exporter直接是采集整个机器的)
本文grafana和Prometheus是使用docker安装部署的,如果机器上未装docker,可参考链接: link
本文为最新的安装流程,可直接按照该流程安装部署。

1.安装grafana

命令为:

docker run -d -p 3000:3000 --name=grafana grafana/grafana-oss

在这里插入图片描述

2.安装Prometheus

1.配置Prometheus的配置文件

mkdir -p /opt/monitor/prometheus
tee /opt/monitor/prometheus/prometheus.yml <<- 'EOF'
global:
  # 拉取规则
  scrape_interval: 10s
  # 执行规则频率
  evaluation_interval: 10s
  
scrape_configs:
  - job_name: prometheus  # 任务名
    static_configs:
      - targets: ['localhost:9100']  # 地址和端口,注意如果是docker安装的话,这个loalhost要替换成ip地址
EOF

在这里插入图片描述
这里的地址如果是采集本机的,写localhost即可,要是采集其它机器的,可以填对应的ip(这里的端口不是9090,而是9100,与下面的node_exporter对应的;而且如果是docker安装的话,这个loalhost要替换成机器的ip地址,不然容器内部根据localhost可识别不了机器实际的ip)

2.用配置文件部署启动Prometheus

docker run -d -p 9090:9090 -v /opt/monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --name=prometheus prom/prometheus

在这里插入图片描述

3.安装node_exporter

这里安装node_exporter是手动安装的,为什么不用docker直接安装呢,这是因为docker安装的exporter是在容器里面的,从容器里采集机器本机的数据的时候并不完全,有时会导致和实际数据相差较大(本人已踩过坑),这里建议手动安装到机器上。
下载地址: link
在这里插入图片描述
直接下载下来传到机器上并解压
在这里插入图片描述
然后我们配置服务启动项

tee /etc/systemd/system/node_exporter.service <<- 'EOF'
[Unit]
Description=node_exporter
After=network.target

[Service]
ExecStart=/opt/monitor/node_exporter/node_exporter --web.listen-address=:9100

[Install]
WantedBy=multi-user.target
EOF

在这里插入图片描述
配置完成后,我们启动服务

systemctl enable node_exporter  # 不是root用户前面都加一下sudo
systemctl start node_exporter
systemctl status node_exporter

在这里插入图片描述

4.监控服务串联

至此,我们各个模块都是各自安装完了,接下来我们把它们连成一个整体,首先看下node_exporter和Prometheus能否正常访问。

node exporter和Prometheus

查看node_exporter:可以浏览器直接访问http://192.168.238.128:9100/,这里192.168.238.128就是我linux机器的地址
在这里插入图片描述
显示无法访问。。。排查了一下,防火墙忘记关了。自己内网用的机器平时可以把防火墙关了(docker安装的服务端口未被防火墙限制,手动安装的服务端口会被限制)
在这里插入图片描述
这时再重新访问下
在这里插入图片描述
在这里插入图片描述
这里就是其采集的信息,可以看出采集服务已正常可用了。
然后我们看下Prometheus,浏览器直接访问http://192.168.238.128:9090/
在这里插入图片描述
也没问题,我们在上面输入框输点东西试一下数据能不能传上来

100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))

在这里插入图片描述
可以看出数据已经传上来了,这里时间不太对,应该是时区的问题吗,暂时不用管。至此,node exporter和Prometheus的对接正常了。

grafana配置

然后我们登录grafana:http://192.168.238.128:3000/
在这里插入图片描述
这里初始用户名密码是admin/admin,登录后可以修改下密码,grafana这里我们主要是配置下数据源以及展示模版,因为Prometheus那里的数据还没有和grafana对接,而且展示的数据也未经进一步处理,展示效果一般。

配置数据源:

进去找一下data sources,几个版本的grafana位置是不一样的,这个自己找一下即可

在这里插入图片描述
这里选择Prometheus
在这里插入图片描述
配置页面配置下名称(可使用默认的),以及连接的url,这个就是Prometheus的地址和端口,即我们上面访问的http://192.168.238.128:9090/
在这里插入图片描述
其他的默认即可,最后点击这个save&test,连接正常会弹出绿色的提示
在这里插入图片描述
到这里数据源就配置完成了。

导入监控模版:

这时候的数据都是Prometheus处理过的,虽然也有图表,但是比较简单,我们可以导入一个看板的模版,使其展示更加丰富,更加友好。(也可以自己写新的)
我们访问https://grafana.com/grafana/dashboards/这个网址,上面有已有的模版,可以查看下哪个适合我们

在这里插入图片描述
在这边搜索node exporter可以搜索出所有node exporter的模版
在这里插入图片描述
这里我们就选用第一个,点击进去
在这里插入图片描述
这里有两个选项,一个是复制id,一个是下载json,这里我们直接复制id好了。这个json其实就是模版文件了,但是我们也可以用id来自动导入。
然后我们进入自己搭建的grafana页面,点击这个import(各个版本的UI略有不同,按键位置可能也不同)
在这里插入图片描述
这里输入刚刚复制的id,然后点击load
在这里插入图片描述
加载完成后进入这个页面
在这里插入图片描述
这里选我们刚刚配好的数据源
在这里插入图片描述
然后点击import,就跳转到看板页面了,如果页面没有数据,可查看左上角这几个选项是不是正确;或者可以等一会,也有可能数据还没有上传上来。
在这里插入图片描述
至此,监控服务就部署好了,无论是做性能还是可靠性,我们可以对服务器进行长时间监测了。

问题记录:

实际部署时,也遇到了一些其他问题,这里记录下:
1.导入Node Exporter Full监控模版(id为1860)时,grafana一直报找不到方法,这个主要是1860这个模板和grafana当前版本不兼容,更新grafana即可。
2.监控数据不准确的问题,这个上面已经提到,解决办法是node_exporter手动直接安装在服务器上。
3.Prometheus可添加多个监控节点,网络能正常连通即可,修改Prometheus配置文件后需重启下服务。

标签:node,exporter,prometheus,grafana,Prometheus,安装
From: https://blog.csdn.net/evelol7/article/details/144289782

相关文章

  • nginx中添加lua模块,结合exporter计算内存使用率动态负载均衡调度
    一、nginx中添加lua模块1、安装依赖yuminstallgccgcc++readline-develwgetvimbash-completionpcrepcre-develzlibzlib-developensslopenssl-develunziplualua-devel-y2、编译安装luajit2wgethttps://github.com/openresty/luajit2/archive/refs/tags/v2......
  • ubuntu(22.04) 安装typescript基础运行环境 (nodejs, npm)
    https://nodejs.org/zh-cn/download/package-manager这里是nodejs的官网教程,可以直接看官网安装nodejs和npm不过是外国的服务器,可能下载会比较慢,这里我直接给出node.js22.12.0的安装脚本,(对应的官网的选项为这3个22.12.0Linuxnvm)点击就可以下载了nodejs-22.12.0-install.......
  • node的事件循环和浏览器的事件循环有什么区别?
    Node.js和浏览器的事件循环虽然都是基于事件驱动的架构,但它们在实现和一些细节上有所不同。主要区别如下:1.I/O处理:浏览器:浏览器中的I/O操作主要依赖于WebAPIs(例如:fetch,XMLHttpRequest,setTimeout等)。浏览器负责管理这些API,并在操作完成后将相应的事件添加到事......
  • 【ubuntu】使用二进制安装包安装node和npm并配置
    一、官网https://nodejs.org/zh-cn 二、安装方法1、下载安装包 2、解压安装包到指定目录tarxfnode-v14.21.0-linux-x64.tar.xz-C~/tools/&&cd~/tools 3、配置环境变量#nodeexportNODE_HOME=$HOME/tools/node-v14.21.0-linux-x64exportPATH=$NODE_HO......
  • node.js毕设基于微信小程序的同城快运系统小程序端程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于同城快运系统的研究,现有研究主要以传统的物流管理系统为主,专门针对基于微信小程序的同城快运系统的研究较少。在国内外,物流行业发展迅速,同城快递的......
  • node.js毕设勤工助学管理系统 程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于勤工助学管理系统的研究,现有研究主要集中在高校管理系统的一般性研究上,专门针对勤工助学管理系统的研究较少。在国内外,高校管理系统的发展已经较为......
  • 项目里使用Prometheus,Grafana等监控工具
    普罗米修斯(Prometheus)是一款开源系统监控和报警工具,广泛用于收集和查询时间序列数据,如应用程序和服务器的性能指标。其核心功能包括:多维数据模型:基于时间序列数据,由指标名称和一组键值对标识维度。灵活的查询语言:PromQL可以实时分析这些时间序列数据。高效的数据存储:存储时序......
  • docker 安装部署 Prometheus 与grafana
    1.准备环境确保你已经安装了Docker和DockerCompose。如果没有安装,可以参考以下命令:#安装Dockersudoyuminstall-ydockersudosystemctlstartdockersudosystemctlenabledocker#安装DockerComposesudocurl-L"https://github.com/docker/compose/releas......
  • Inode创建虚拟通道失败
    问题场景在使用Inode连接VPN时出现创建虚拟通道失败的问题。解决方法打开控制面板,点击网络和Internet。然后点击网络和共享中心。点击更改适配器设置。找到Inode的虚拟网卡。(我这里是连接成功了,有问题的话这里是一个×)右键,属性。然后将下面的取消勾选就能创建成功了......
  • node.js毕设流浪猫狗救助系统 程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于流浪猫狗救助系统的研究,现有研究主要以动物保护的宏观理念及个别救助站的救助行为为主,专门针对流浪猫狗救助系统的研究较少。在国内外,动物保护意识......