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

我们在进行测试时,不可能一直手动看着服务器的性能消耗,这时候就需要有个工具替我们监控服务器的性能消耗。这里记录下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: 10sscrape_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配置文件后需重启下服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/485478.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【密码学】分组密码的工作模式

1.电码本模式&#xff08;ECB&#xff09; 优点: 每个数据块独立加密&#xff0c;可并行加密&#xff0c;实现简单。 缺点: 相同明文会产生相同密文&#xff0c;不具备数据完整保护性。 适用于短消息的加密传输 (如一个加密密钥)。 工作流程&#xff1a;用相同的密钥分别对…

PR时间轴

简介 时间轴记录整个项目所发生的一切&#xff0c;它包括视频轨道、音频轨道、字幕轨道&#xff0c;可以队单独的任意轨道进行编辑。 时间轴上还可以使用编辑点对素材进行简单编辑&#xff0c;也可以锁定轨道保证素材不会被其他操作改变。 播放指示器&#xff08;指针&#x…

【RBF SBN READ】hadoop社区基于RBF的SBN READ请求流转

读写分离功能的背景及架构 当前联邦生产集群的各个子集群只有Active NameNode在工作,当读写任务变得繁忙的时候,只有一个Active负责处理的话,此时集群的响应和处理能力业务侧感知会明显下降,为此,我们将引入Observer架构,实现读写功能的分离,使得Active只负责写请求,而…

记事本建java及java命名规范

1.桌面开发&#xff1a;c# 2. 记事本建java&#xff1a; 以class的名称(类名)为名&#xff0c;名称.java 编译jdk&#xff1a;javac 名称.java 调动运行jre : java 名称 查看名称.java里面的内容&#xff1a;cat 名称.java java 的命名规范 大驼峰&#xff08;每个单词首…

YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标

本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用&#xff0c;如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而&#xff0c;这些方法存在一些局限性&#xff0c;例如需…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型AI工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在AI的另一个分支——绘图领域&#xff0c;一款名为Midjourney&#xff08;MJ&#xff…

如何修复和防止 500 内部服务器错误的发生

当遭遇 500 内部错误时&#xff0c;意味着服务器出现了意外状况&#xff0c;以至于无法对请求予以回应。这种错误往往源于服务器端的各类问题&#xff0c;像是服务器配置出现偏差、脚本存在漏洞或者服务器瞬间负荷过重等。在不少情形下&#xff0c;服务器管理员能够化解此难题&…

算法刷题Day11: BM33 二叉树的镜像

点击题目链接 思路 转换为子问题&#xff1a;左右子树相反转。遍历手法&#xff1a;后序遍历 代码 class Solution:def Transverse(self,root: TreeNode):if root None:return rootnewleft self.Transverse(root.left)newright self.Transverse(root.right)# 对root节点…

【项目】基于YOLOv10的目标检测项目

【项目】基于YOLOv10的目标检测项目 &#xff08;一&#xff09;模型性能&#xff08;二&#xff09;安装与使用&#xff08;1&#xff09;环境安装&#xff08;2&#xff09;快速使用&#xff08;3&#xff09;模型评估Validation&#xff08;4&#xff09;模型训练Training&a…

与火山引擎合作深化,观测云携一站式监控解决方案登陆万有商城

近日&#xff0c;观测云正式宣布入驻火山引擎的万有商城。作为一款全栈式数据观测与分析平台&#xff0c;观测云的加入不仅丰富了火山引擎生态&#xff0c;也为广大企业用户带来了更便捷的数字化工具&#xff0c;助力企业快速实现业务监控与优化。 从全球覆盖到本地深耕&#x…

计算机网络原理之HTTP与HTTPS

一、前言 为了理解HTTP&#xff0c;我们有必要事先了解一下TCP/IP协议簇。 通常我们使用的网络&#xff08;包括互联网&#xff09;是在TCP/IP协议簇的基础上运作的。而HTTP属于它内部的一个子集。 计算机与网络设备要相互通信&#xff0c;双方必须基于相同的方法。比如&#…

java注解(二):注解的解析以及应用场景、用注解和反射模拟junit框架代码演示

目录 1、什么是注解的解析&#xff1f; 2、解析注解的案例 1、自定义一个注解 2、在类和方法上使用自己定义的注解 3、解析注解 3、模拟Junit框架案例 1、自定义一个MyTest注解 2、定义一个测试类&#xff0c;使用自定义的注解 3、写一个启动类 本文章主要讲解什么是注…

15.三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例 1&am…

03_Webpack模块打包工具

03_Webpack模块打包工具 目录 知识点自测 以下哪个选项是 ECMAScript 默认导出和导入的语法&#xff1f; A&#xff1a;export 和 require B&#xff1a;module.exports {} 和 import 变量名 C&#xff1a;export default 和 import 变量名 D&#xff1a;export 和 import {…

实验七 用 MATLAB 设计 FIR 数字滤波器

实验目的 加深对窗函数法设计 FIR 数字滤波器的基本原理的理解。 学习用 Matlab 语言的窗函数法编写设计 FIR 数字滤波器的程序。 了解 Matlab 语言有关窗函数法设计 FIR 数字滤波器的常用函数用法。 掌握 FIR 滤波器的快速卷积实现原理。 不同滤波器的设计方法具有不同的优…

day07 接口测试(2)

目录 1、接口用例设计 1.1 接口测试的测试点 1.1.1 功能测试 &#xff01;&#xff01; &#xff08;1&#xff09;单接口功能&#xff1a; &#xff08;见1.3&#xff09; &#xff08;2&#xff09;业务场景功能:&#xff08;见1.4&#xff09; 1.1.2 性能测试&#xf…

CentOS 二进制安装部署MongoDB 4.0

一、安装MongoDB 1. 下载 MongoDB 二进制文件 前往 MongoDB 官方下载页面(https://www.mongodb.com/try/download/community) 选择对应版本的 tar 包。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz 2. 解压并移动至目标目录 解压文件&#xff…

《Scientific Reports》2024最新投稿经验

"Scientific Reports" 是Nature Portfolio旗下一本备受推崇的开放获取多学科期刊&#xff0c;自2011年起被JCR收录。这本月刊致力于发表自然科学、心理学、医学和工程学领域的突破性原创研究。它的收稿范围广泛&#xff0c;覆盖物理学、化学、生物学、地球科学、环境…

C++内存布局以及常用关键字

C内存布局以及常用关键字 C的内存空间 代码存储区域&#xff1a;常量区、代码区、静态区&#xff08;全局区&#xff09;、堆区、栈区 栈区向下增长&#xff0c;堆区向上增长。栈由系统管理&#xff0c;没有内存碎片&#xff0c;每个元素之间都是连续的&#xff0c;大小比较…

设计模式:19、桥接模式

目录 0、定义 1、桥接模式的四种角色 2、桥接模式的UML类图 3、示例代码 0、定义 将抽象部门与实现部分分离&#xff0c;使它们都可以独立地变化。 1、桥接模式的四种角色 抽象&#xff08;Abstraction&#xff09;&#xff1a;一个抽象类&#xff0c;包含实现者&#xf…