当前位置: 首页 > news >正文

云原生系列之使用 prometheus监控远程主机实战

文章目录

  • 前言
  • 一. 实验环境
  • 二. 安装node_exporter
    • 2.1 node_exporter的介绍
    • 2.2 node_exporter的安装
  • 三. 在prometheus服务端配置监控远程主机
    • 3.1 在server端配置拉取node的信息
    • 3.2 重启prometheus
    • 3.3 通过浏览器查看prometheus
  • 总结

前言

大家好,又见面了,我是沐风晓月,本文是专栏【云原生实战】专栏的第2篇文章,主要讲解prometheus监控远程主机实战。

专栏地址:【云原生实战】 , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。

如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

一. 实验环境

本次的实验环境见下表:

操作系统服务器IPhostname
centos7.6192.168.1.41mufengrow41
centos7.6192.168.1.42mufenggrow42

如何查看相应的参数:

  • 查看操作系统:
[root@mufenggrow ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
  • 查看hostname
## 修改hostname
[root@mufenggrow ~]# hostnamectl set-hostname mufenggrow41
[root@mufenggrow ~]# bash
# 查看hostname
[root@mufenggrow41 ~]# hostname
mufenggrow41
  • 查看ip
[root@mufenggrow41 ~]# ifconfig |grep inet |awk 'NR==1{print $2}'
192.168.1.41

本文中的master服务器,也就是prometheus已经安装好,如果你还未安装,可以参考上一篇文章:prometheus安装及使用入门

二. 安装node_exporter

2.1 node_exporter的介绍

官网给提供了数据采集的组件: node_exporter, prometheus只能拉取数据,而Exporter是Prometheus的指标数据收集组件。

它负责从目标Jobs收集数据,并把收集到的数据转换为Prometheus支持的时序数据格式。

和传统的指标数据收集组件不同的是,它只负责收集数据,并不向Server端发送数据,而是等待Prometheus Server 主动抓取。

node-exporter 默认的抓取url地址:http://ip:9100/metrics

如果想要让node_exporter推送数据,可以借助于工具 pushgetway组件,这个组件可以推送node_exporter的指标数据到你安装好的prometheus服务器上。

node-exporter用于采集node的运行指标,包括node的cpu、load、filesystem、meminfo、network等基础监控指标,类似于zabbix监控系统的的zabbix-agent

2.2 node_exporter的安装

1. 上传node_exporter

在这里插入图片描述

2. 解压并启动

  • 解压node_exporter
[root@mufenggrow42 ~]# tar xf node_exporter-1.5.0.linux-amd64.tar.gz 
#包的名字太长,这里改的短一点
[root@mufenggrow42 ~]# mv node_exporter-1.5.0.linux-amd64 node_exporter
[root@mufenggrow42 ~]# cd node_exporter
[root@mufenggrow42 node_exporter]# 
  • 关于启动exporter的参数

上面我们已经解压了,如果要安装,我们需要使用node_exporter --help来查看完成的参数:

[root@mufenggrow42 node_exporter]# ./node_exporter --help
usage: node_exporter [<flags>]Flags:-h, --help                     Show context-sensitive help (also try --help-long and --help-man).--collector.arp.device-include=COLLECTOR.ARP.DEVICE-INCLUDE  Regexp of arp devices to include (mutually exclusive to device-exclude).--collector.arp.device-exclude=COLLECTOR.ARP.DEVICE-EXCLUDE  Regexp of arp devices to exclude (mutually exclusive to device-include).--collector.bcache.priorityStats  Expose expensive priority stats....(省略)

默认情况下, node_exporter 在端口 9100 上运行,并在路径 /metrics 上暴 露指标,此处也可以修改,比如:

可以通过–web.listen-address 和 --web.telemetry-path 参数来设置端口和路径:

[root@mufenggrow42 node_exporter]# ./node_exporter  --web.listen-address=":9800"

修改端口为9800.

(关于启动时候的一些参数,我们在后面的文章中详细介绍,本文只启动node_exporter,实现监控远程主机即可)

  • 开始启动node_exporter
[root@mufenggrow42 node_exporter]# nohup ./node_exporter &
[1] 19459

启动并设置在后台运行,这里nohup命令,主要用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

  • 查看启动情况
    我们可以查看端口是否启动:
[root@mufenggrow42 ~]# lsof -i:9100
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node_expo 19459 root    3u  IPv6  59483      0t0  TCP *:jetdirect (LISTEN)
  • 查看监控信息:
    我们从网页端查看监控信息:

在这里插入图片描述

三. 在prometheus服务端配置监控远程主机

3.1 在server端配置拉取node的信息

找到我们的配置文件:
在这里插入图片描述
打开配置文件进行设置:

在最后面添加node的信息:

scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: "node42"static_configs:- targets: ["192.168.1.42:9100"]

如图所示:

在这里插入图片描述

3.2 重启prometheus

两种方法重启:

  • 方法一: 直接使用pkill杀死进程,然后重启
#杀死promethues
[root@mufenggrow41 prometheus]# pkill prometheus
# 再次启动
[root@mufenggrow41 prometheus]# ./prometheus &
  • 方法二: 后台运行prometheus的方式重启

1)配置prometheus server的systemd文件

# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Monitoring system and time series database
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target[Service]
Restart=on-failure #表示当进程以非零退出代码退出,由信号终止;
#当操作(如服务重新加载)超时;以及何时触发配置的监视程序超时时,服务会自动重启。
WorkingDirectory=/apps/prometheus/ #工作目录,路径根据需求修改
ExecStart=/apps/prometheus/prometheus  --config.file=/apps/prometheus/prometheus.yml
#/apps/prometheus/prometheus:二进制启动文件
#--config.file #配置文件的路径,启动prometheus指定要读取那个配置文件。(配置文件路径根据需求修改)
User=prometheus #启动用户[Install]
WantedBy=multi-user.target
  1. 添加prometheus用户
useradd -M -r -s /usr/sbin/nologin prometheus

此命令的解释:
-M:创建用户时不创建该用户的家目录,也就是在/home目录中没有该用户的目录。(该选项可选择性添加)
-r:创建的用户为系统用户。(该选项可选择性添加)
-s:指定用户的shell。

3)给prometheus二进制文件修改所属主和所属组

# chown -R prometheus.prometheus /apps/prometheus-2.37.5.linux-amd64

4) 启动prometheus

#重新读取所有的service文件
# systemctl daemon-reload 
#该命令有启动prometheus和设置prometheus开机的作用
# systemctl enable --now prometheus # ps -ef | grep prometheus

3.3 通过浏览器查看prometheus

打开prometheus的地址:
输入访问地址: 192.168.1.41:9090

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,已经监控到了远程主机的信息

从下图可以看到监控的详细参数:
比如我们查看cpu的使用时间:

在这里插入图片描述

注:
process_cpu_seconds_total 用户和系统的总cpu使用时间

总结

以上就是使用prometheus监控远程linux服务器实战,欢迎点赞收藏哦。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

相关文章:

云原生系列之使用 prometheus监控远程主机实战

文章目录前言一. 实验环境二. 安装node_exporter2.1 node_exporter的介绍2.2 node_exporter的安装三. 在prometheus服务端配置监控远程主机3.1 在server端配置拉取node的信息3.2 重启prometheus3.3 通过浏览器查看prometheus总结前言 大家好&#xff0c;又见面了&#xff0c;我…...

2023年地方两会政府工作报告汇总(各省市23年重点工作)

新年伊始&#xff0c;全国各地两会密集召开&#xff0c;各省、市、自治区2023年政府工作报告相继出炉&#xff0c;各地经济增长预期目标均已明确。相较于2022年&#xff0c;多地经济增长目标放缓&#xff0c;经济不断向“高质量”发展优化转型。今年是二十大后的开局之年&#…...

第一章 企业管理概论

目录 一、企业及其形式 二、企业管理概述 三、企业管理理论与实践的产生与发展 四、网络时代的企业环境 五、网络时代企业管理的变革 一、企业及其形式 1、企业的概念 企业以市场为导向&#xff0c;以价值增值作为经济活动的目的&#xff1b; 企业是从事商品生产和流通的…...

独立图片服务器有什么突出之处

服务器是网络中非常重要的设施&#xff0c;承载着不同流量的访问&#xff0c;这就要求服务器具有快速的吞吐量、高稳定性和高可靠性。独立图片服务器作为独立服务器的衍生品&#xff0c;在数据利用方面的应用可以为企业在数据处理和分析方面带来一场革命。本文就将介绍独立图片…...

Linux驱动开发基础__mmap

目录 1 引入 2 内存映射现象与数据结构 3 ARM 架构内存映射简介 3.1 一级页表映射过程 3.2 二级页表映射过程 4 怎么给 APP 新建一块内存映射 4.1 mmap 调用过程 ​编辑4.2 cache 和 buffer 4.3 驱动程序要做的事 5 编程 5.1 app编程 5.2 hello_drv_test…...

若依框架---为什么把添加和更新分成两个接口

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

图论算法:Floyd算法

文章目录Floyd算法例题&#xff1a;灾后重建Floyd算法 Floyd算法用于求图中任意两点之间的最短路径&#xff0c;该算法主要运用了动态规划的思想。 思考&#xff1a; 给你几个点与边&#xff0c;可以组成一张图&#xff0c;那么如何求得任意两点之间的最短路径呢&#xff1f;…...

回顾 | .NET MAUI 跨平台应用开发 - 用 .NET MAUI 开发一个无人机应用(下)

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…...

部署有多个仓库的svn服务

centos7自带svn服务&#xff0c;现需要创建多个仓库&#xff0c;并实现用户读写功能 创建svn版本库 mkdir /home/svn mkdir /home/svn/confmkdir /home/svn/yk1 mkdir /home/svn/yk2 svnadmin create /home/svn/yk1 svnadmin create /home/svn/yk2 进入版本库yk1的配置文件路…...

Mapper文件注入问题

Mapper文件注入问题UserMapper that could not be found.原因分析解决方案程序正常运行&#xff0c;但是注入类爆红问题原因分析解决方法UserMapper’ that could not be found. 原因分析 撰写了mapper文件&#xff0c;但是没有注入spring容器 解决方案 添加mybatis.mapper-…...

基于微信小程序的国产动漫论坛小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…...

常用限流算法

简单时间窗口 算法逻辑&#xff1a;设置周期时间内的最大并发量问题&#xff1a;在周期尾端进去阈值并发后&#xff0c;进入下一周期时&#xff0c;又进入阈值并发量&#xff0c;则会出现瞬时并发量是阈值的2倍。 滑动时间窗口&#xff08;优化&#xff09; 算法逻辑&#xf…...

前端面经详解

目录 css 盒子充满屏幕 A.给div设置定位 B.设置html,body的宽高 C.相对当前屏幕高度&#xff08;强烈推荐&#xff09; 三列布局&#xff1a;左右固定&#xff0c;中间自适应 flex布局&#xff08;强烈推荐&#xff09; grid布局 magin负值法 自身浮动 绝对定位 圣…...

网页CAD开发快速入门

演示说明 提示:目前提供两种在网页中浏览编辑CAD图纸方案&#xff0c;详细说明见&#xff1a;MxDraw帮助 网页中打开CAD最简步骤&#xff1a; 第一步: 安装插件运行环境&#xff0c;下载安装(可能需要退杀毒软件)&#xff1a;https://demo.mxdraw3d.com:3562/MxDrawx86Setup…...

C#开发的OpenRA的mod.yaml文件

C#开发的OpenRA的mod.yaml文件 在OpenRA游戏里,会看到这样一段代码: Manifest LoadMod(string id, string path){IReadOnlyPackage package = null;try{if (!Directory.Exists(path)){Log.Write("debug", path + " is not a valid mod package");return …...

【ESP32+freeRTOS学习笔记-(七)中断管理】

目录1、概述2、在ISR中使用FreeRTOS中专用的API2.1 独立的用于ISR中的API2.2 关于xHigherPriorityTaskWoken 参数的初步理解3、延迟中断处理的方法-将中断中的处理推迟到任务中去4 方法一&#xff1a;用二进制信号量来同步ISR与”延时处理的任务“4.1 二进制信号量4.2 函数用法…...

【总结】1591- 从入门到精通:使用 TypeScript 开发超强的 CLI 工具

作为一名开发者&#xff0c;掌握 CLI 工具的开发能力是非常重要的。本文将指导你如何使用 TypeScript 和 CAC 库开发出功能强大的 CLI 工具。快速入门首先&#xff0c;需要先安装 Node.js 和 npm&#xff08;Node Package Manager&#xff09;&#xff0c;然后在项目目录中创建…...

【Java】int和Integer的区别?为什么有包装类?

int和Integer的区别&#xff1f;为什么有包装类&#xff1f; java是一种强类型的语言&#xff0c;所以所有的属性都必须要有一个数据类型。 PS&#xff1a;java10有了局部变量类型推导&#xff0c;可以使用var来代替某个具体的数据类型&#xff0c;但是在字节码阶段&#xff0…...

【LeetCode】石子游戏 IV [H](动态规划)

1510. 石子游戏 IV - 力扣&#xff08;LeetCode&#xff09; 一、题目 Alice 和 Bob 两个人轮流玩一个游戏&#xff0c;Alice 先手。 一开始&#xff0c;有 n 个石子堆在一起。每个人轮流操作&#xff0c;正在操作的玩家可以从石子堆里拿走 任意 非零 平方数 个石子。 如果石…...

修改Vue项目运行的IP和端口

前言 我们在使用VsCode启动Vue项目的时候&#xff0c;我发现&#xff1a;默认的端口号好像和tomcat一样&#xff0c;默认都是8080&#xff0c;如果8080被占用了&#xff0c;就会使用8081,8082这样的方式以此类推。 那么&#xff0c;我们是否可以像后端一样&#xff0c;通过修改…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...

更新 Docker 容器中的某一个文件

&#x1f504; 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法&#xff0c;适用于不同场景。 ✅ 方法一&#xff1a;使用 docker cp 拷贝文件到容器中&#xff08;最简单&#xff09; &#x1f9f0; 命令格式&#xff1a; docker cp <…...