使用Prometheus组件node_exporter采集linux系统的指标数据(包括cpu/内存/磁盘/网络)

一、背景

Linux系统的基本指标包括cpu、内存、磁盘、网络等,其中网络可以细分为带宽进出口流量、连接数和tcp监控等。

本文使用Prometheus组件node_exporter采集,存储在promethues,展示在grafana面板。

二、安装node_exporter

1、下载至本地

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

在这里插入图片描述

2、运行node-exporter

默认运行的端口号是9100

tar xvfz node_exporter-1.3.1.linux-amd64.tar.gzmv node_exporter-1.3.1.linux-amd64 node-exportercd node-exporternohup ./node_exporter >/dev/null 2>&1 &

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,node_exporter进程启动完成,其进程号是15479。见上图。

  • 指定端口号为9102

如果端口9100已被占用,可以另外指定运行端口。

nohup ./node_exporter --web.listen-address=":9102" >/dev/null 2>&1 &
  • 查看进程

进程号是15479,与启动进程时输出的一致。

在这里插入图片描述

  • 查看端口号

我们没有在运行的时候指定端口号,所以它默认运行的端口号是9100。从下图也可以看到,它的进程号是154709

在这里插入图片描述

三、prometheus配置

prometheus采集指标,是采用pull拉取的方式,必须知晓被抓取指标的地址。

对于node_exporter,它的指标地址是http://{ip}:9100/metrics (如果你是默认端口启动)
在这里插入图片描述

在prometheus.yml配置

scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'file_sd'metrics_path: '/metrics'file_sd_configs:- files:- linux-targets.json

修改配置文件linux-targets.json

在这里插入图片描述

在这里插入图片描述

实时生效,无需重启

配置实时生效,因为我们在启动prometheus进程的时候,是采用热加载的方式。

# 保存10天的数据
./prometheus --web.enable-lifecycle --web.enable-admin-api --storage.tsdb.retention=10d

四、grafana展示

使用grafana官方面板,https://grafana.com/dashboards/8919

Node Exporter Dashboard
在这里插入图片描述
在这里插入图片描述

可以看到,这台机器的磁盘空间已使用86.9%了,标红提醒我们注意磁盘清理或扩容。

在这里插入图片描述

最后,我们看一看这台机器的网络情况。

在这里插入图片描述
TCP_tw, 是指TCP连接处于TIME_WAIT状态的数量,说明了有多少是主动关闭的连接。

附: 网络socket连接指标之TIME_WAIT

TIME_WAIT 是「主动关闭方」断开连接时的最后一个状态,该状态会持续 2MSL(Maximum Segment Lifetime) 时长,之后进入CLOSED 状态。

1、TCP_TW状态的设计初衷

TCP_TW状态的主要原因是防止由于网络原因,FIN包或者ACK包没有到达对方。如果没有进入TCP_TW状态,那么就会立即回收socket和相关资源,这个时候FIN包到了接收方,接收方返回一个ACK包,但是由于sender已经释放了相关资源,这个时候ACK就无处可去,接收方无法获取到这个ACK,这就不只是一个连接的问题了,可能会导致链接资源耗尽等问题。

2、TCP_TW是如何回收的

TCP_TW状态的回收是通过定时器来完成的。每当一个socket进入TCP_TW状态时,系统就会开启一个定时器,并等待固定时间,比如2分钟。在这个时间内,如果接收到对方的ACK包,那么这个定时器就会被立即销毁,并进入CLOSE状态。

然而,在TCP_TW状态下,如果由于ACK漏接或者其他原因,这个时间到了之后还没有收到对方的ACK包,那么这个socket就需要被回收。如果这个socket处于端口共享状态,那么socket实际上不会被立即回收,而是进入假CLOSE状态。这个时候,TCP协议会重新分配一个随机数seq,同时重置计时器,如果在一段时间之内,没有收到对方发来的重复的ACK包,那么socket就会被彻底关闭。

3、关注TCP_tw指标

  • 系统中同时存在大量TCP_TW状态的socket就会导致系统资源的压力,可能会引导奔溃。为了避免这种情况,可以通过修改内核参数来限制TCP_TW状态的数量。一般来说,建议将内核参数设置为6000左右。

  • 防止SYN等IP攻击。攻击者可以通过大量的SYN包来伪造TCP协议中的一个socket,从而放置于TCP_TW状态。如果这种攻击成功,系统的队列资源将被占满,无法被其他请求使用,系统就会崩溃。为了防止这个问题,可以在系统中添加过滤规则,阻止来自可疑IP地址的请求。

  • 在协议栈中,应用程序和内核之间的性能问题。每进入一个TCP_TW状态,都意味着会在内核中创建一个资源对象,这个资源对象的使用可能会带来一些性能问题。如果TCP_TW状态对象过多,就有可能导致内存使用过高,而且更加影响网络系统的性能。

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

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

相关文章

【数学建模】碎纸片的拼接复原

2013高教社杯全国大学生数学建模竞赛B题 问题一模型一模型二条件设立思路 问题求解 问题一 已知 d i d_i di​为第 i i i张图片图片的像素矩阵 已知 d i d_i di​都是 n ∗ m n*m n∗m二维矩阵 假设有 N N N张图片 模型一 我们认为对应位置像素匹配为 d i [ j ] [ 1 ] d k…

C++:单例模型、强制类型转换

目录 特殊类的设计不能被拷贝的类实现一个类&#xff0c;只能在堆上实例化的对象实现一个类&#xff0c;只能在栈上实例化的对象不能被继承的类 单例模式饿汉模式懒汉模式饿汉模式与懒汉模式的对比饿汉优缺点懒汉优缺点懒汉模式简化版本&#xff08;C11&#xff09; 单例释放问…

索引失效的场景有哪些?

一.概念 索引失效是指在查询时&#xff0c;数据库引擎无法使用索引来加速查询&#xff0c;从而导致查询性能下降。常见的索引失效原因有以下几种&#xff1a; 索引列没有被包含在查询条件中。如果查询条件中没有包含索引列&#xff0c;那么数据库引擎无法使用索引来加速查询。…

机器人--路径--bezier

教学文章 链接1 链接2--逼近拟合 路径 路径由控制点定义&#xff0c;这些控制点将路径描述为一系列链接的线段。 路径控制点 将路径控制点连接起来&#xff0c;就是路径。 Bezier 曲线的初衷就是用尽可能少的数据表示出复杂的图形。 皮埃尔贝塞尔的想法是&#xff0c;在设…

域提权漏洞系列分析-Zerologon漏洞分析

2020年08⽉11⽇&#xff0c;Windows官⽅发布了 NetLogon 特权提升漏洞的⻛险通告&#xff0c;该漏洞编号为CVE-2020-1472&#xff0c;漏 洞等级&#xff1a;严重&#xff0c;漏洞评分&#xff1a;10分&#xff0c;该漏洞也称为“Zerologon”&#xff0c;2020年9⽉11⽇&#xff…

WinRAR技巧:如何让多个文件压缩到更小!?

但我们要压缩多个文件的时候&#xff0c;可能会出现压缩后的体积仍然过大&#xff0c;或者需要将文件再压缩到更小&#xff0c;这种情况下&#xff0c;小编之前建议过大家将文件压缩成7z格式就会更加压缩体积。今天分享另一个技巧&#xff0c;帮助我们将多个文件压缩到更小。 …

Istio ICA考试之路---4-3

Istio ICA考试之路---4-3 1. 题目2. 解题2.1 获取模板2.2 修改yaml 1. 题目 Using Kubernetes context cluster-2 Create an authorization policy named "allow-get" in the namespace policy-3, allowing all GET requests from workloads in the default names…

【网络安全】勒索软件ShrinkLocker使用 windows系统安全工具BitLocker实施攻击

文章目录 威胁无不不在BitLocker 概述如何利用BitLocker进行攻击如何降低影响Win11 24H2 装机默认开启 BitLocker推荐阅读 威胁无不不在 网络攻击的形式不断发展&#xff0c;即便是合法的 Windows 安全功能也会成为黑客的攻击工具。 卡巴斯基实验室专家 发现 使用BitLocker的…

以不变应万变:在复杂世界中保持初心,坚持原则

在这个日新月异、瞬息万变的世界里&#xff0c;人情世故也显得尤为复杂。我们常常会因为忙碌的生活、工作压力以及人际关系的纠葛而感到迷茫和疲惫。在面对这些复杂局面的同时&#xff0c;如何保持内心的平静&#xff0c;坚持自己的原则&#xff0c;并在变幻莫测的环境中持续成…

ClickHouse架构概览 —— Clickhouse 架构篇(一)

文章目录 前言Clickhouse 架构简介Clickhouse 的核心抽象列和字段数据类型块表 Clickhouse 的运作过程数据插入过程数据查询过程数据更新和删除过程 前言 本文介绍了ClickHouse的整体架构&#xff0c;并对ClickHouse中的一些重要的抽象对象进行了分析。然后此基础上&#xff0…

乘风破浪,创维汽车旗舰店落户安徽

2024年5月19日&#xff0c;创维汽车宣城家奇体验中心盛大开业。宣城市委办公室副主任师典雅、市投资促进局副局长金崇学、经开区管委会副主任汤晓峰、宣城市通信局局长梁登峰、创维汽车战区总经理刘俊、创维汽车大区总监王大明等人出席此次开业盛典&#xff0c;共同见证了创维汽…

内网穿透实现公网访问自己搭建的Ollma架构的AI服务器

内网穿透实现公网访问自己搭建的Ollma架构的AI服务器 [2024年5月9号我发布一个博文关于搭建本地AI服务器的博文][https://blog.csdn.net/weixin_41905135/article/details/138588043?spm1001.2014.3001.5501]&#xff0c;今天我们内网穿透实现从公网访问我的本地AI服务器&…

Julia Ide Neptune

一 pkg> add Neptune julia> using Neptune julia> Neptune.run() 二 pkg> add Pluto julia> import Pluto julia> Pluto.run() 主要是装IJulia总报错&#xff0c;索性找了如上替代品。

全国多地入夏!对抗“高温高湿”约克VRF中央空调有妙招

随着气温飙升,北京、上海、广州、南京、天津、江苏、新疆、内蒙古部分地区等多地进入夏季状态,华北、黄淮等不少地方最高气温都超过了30℃,大街上人们短袖、短裤纷纷上阵,一派夏日炎炎的景象。 炎热夏季不仅高温频频来袭,往往还伴随着降雨带来的潮湿,天气湿热交织容易让人们身…

C++第二十弹---深入理解STL中vector的使用

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、vector的介绍 2、vector的使用 2.1、构造函数和赋值重载 2.1.1、构造函数的介绍 2.1.2、代码演示 2.2、容量操作 2.3、遍历 2.4、增删…

TO G产品经理常用工具

全国公共资源交易平台 剑鱼标讯官网-招标信息查询_全国招标采购信息订阅推送_专业招标大数据服务平台

【STM32】 独立看门狗配置方法

什么是看门狗 看门狗&#xff08;watchdog&#xff09;指的是一种监控系统或程序&#xff0c;用于定期检测和监控其他系统或程序的运行状态&#xff0c;并在出现问题或故障时采取相应的措施。它可以是硬件设备&#xff0c;也可以是软件程序。 在计算机领域中&#xff0c;看门狗…

docker-compose 自动管理 数据库

前言 在现代应用开发中&#xff0c;数据库是核心组件之一。容器化技术可以帮助我们简化部署流程&#xff0c;确保环境一致性&#xff0c;并提高开发和生产的效率。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Docker Compose&#xff0c;我们可以…

【OceanBase诊断调优】—— 排查 IO 问题的方法

本文主要介绍 OceanBase 数据库 V4.x 版本中排查 IO 问题的方法以及 IO 相关的日志和视图。 IO 相关问题 -4013 内存爆、IoControl 模块内存泄漏 目前 IO 内存爆可能的原因如下&#xff0c;及相应的排查方法。 其他模块使用 IO 内存后未释放导致泄漏。 日志分析。 通过关键词…

【wordpress】网站提示Error establishing a database connection错误代码

Error establishing a database connection错误代码处理方法&#xff1a; 检查数据库连接情况检查数据库账号密码是否正确检查数据库是否开启 总之较大可能是数据库出现了问题