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

news2025/6/7 21:02:29

文章目录

  • 前言
  • 一. 实验环境
  • 二. 安装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服务器实战,欢迎点赞收藏哦。

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

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

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

相关文章

Pyqt5小案例,界面与逻辑分离的小计算器程序

直接看下最终效果&#xff1a; 使用技术总结 使用Designer设计界面 使用pyuic5命令导出到python文件 新建逻辑处理文件&#xff0c;继承pyuic5导出的文件的类&#xff0c;在里面编写信号与槽的处理逻辑 使用Designer设计界面 要使用Designer&#xff0c;安装一个Python库即…

Qml学习——鼠标事件处理MouseArea

最近在学习Qml&#xff0c;但对Qml的各种用法都不太熟悉&#xff0c;总是会搞忘&#xff0c;所以写几篇文章对学习过程中的遇到的东西做一个记录。 学习参考视频&#xff1a;https://www.bilibili.com/video/BV1Ay4y1W7xd?p1&vd_source0b527ff208c63f0b1150450fd7023fd8 其…

解决:FTP协议路径在资源管理器打开,总是默认跳转到某个浏览器打开

解决&#xff1a;FTP协议路径在资源管理器打开&#xff0c;总是默认跳转到某个浏览器打开一问题描述&#xff1a;&#xff08;1&#xff09;电脑原本能够在资源管理器里面&#xff0c;正确打开ftp协议路径地址&#xff0c;不会自动跳转到其他浏览器里面。&#xff08;2&#xf…

【自学Docker 】Docker search命令

大纲 Docker search命令 docker search命令教程 docker search 命令用于从 Docker Hub 查找镜像。 docker search命令语法 haicoder(www.haicoder.net)# docker search [OPTIONS] TERMdocker search命令参数 参数描述docker search --filter设置过滤条件。docker search -…

Set集合的特点,HashSet去重的几个重要问题

Set集合的特点&#xff1a;无下标&#xff0c;无序(新增顺序和遍历顺序不一致&#xff0c;新增顺序不影响遍历顺序&#xff0c;而且有一个固定顺序)&#xff0c;去重(不允许重复记录)public class TestOne {public static void main(String[] args) {// Set集合的特点&#xff…

Python 3 中文编码 ,首先要会

Python 中文编码 前面章节中我们已经学会了如何用 Python 输出 “Hello, World!”&#xff0c; 英文没有问题&#xff0c; 但是如果你输出中文字符 “你好&#xff0c;世界” 就有可能会碰到中文编码问题。 Python 文件中如果未指定编码&#xff0c;在执行过程会出现报错&…

Android Camera(三)Camera Service的初始化代码分析(AndroidR)

highlight: a11y-dark 1.APP CameraManager初始化 CameraManager初始化代码较少&#xff0c;放在这里进行讲解&#xff0c;CameraManager是一个用来管理相机的系统服务&#xff0c;可以通过此服务获取到相机设备和相机信息&#xff0c;在frameworks/base/core/java/android/a…

下载好python后,怎么打开,python怎么进入编程界面

大家好&#xff0c;给大家分享一下python下载安装好后怎么打开&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 1、python第一次怎么打开 python第一次打开方法如下&#xff1a; winr快捷键打开运行窗口&#xff0c;在运行窗口输入栏中输入…

基于C#制作一个飞机大战小游戏

此文主要基于C#制作一个飞机大战游戏&#xff0c;重温经典的同时亦可学习。 实现流程1、创建项目2、界面绘制3、我方飞机4、敌方飞机5、子弹及碰撞检测实现流程 1、创建项目 打开Visual Studio&#xff0c;右侧选择创建新项目。 搜索框输入winform&#xff0c;选择windows窗体…

线程的生命周期和状态中方法的详解

点个关注&#xff0c;必回关 一、线程的生命周期和状态图&#xff1a; 图一&#xff1a; 图二 二、线程状态 1&#xff1a;新建 2&#xff1a;就绪&#xff08;拿到执行权开始运行&#xff09; 3&#xff1a;运行 4&#xff1a;阻塞 5&#xff1a;死亡 三、线程生命周期…

CUDA中的动态并行

CUDA的动态并行 文章目录CUDA的动态并行1. 介绍1.1. 简述警告&#xff1a;与父块的子内核显式同步&#xff08;即在设备代码中使用 cudaDeviceSynchronize()&#xff09;在 CUDA 11.6 中已弃用&#xff0c;并计划在未来的 CUDA 版本中删除。1.2. 术语2. 执行环境和内存模型2.1.…

ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程

ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程 我家里的MAC没这个问题。这个是在windows上发生的。 起因很简单我用ASP.NET CORE 3.1 MVC做个项目做登录将数据从VIEW post到Controller上结果意外的报了错误。 各种百度都说…

不要再问Spring是如何解决循环依赖了

1、什么是循环依赖&#xff1f; 循环依赖主要来次三个方面&#xff0c;第一种A相互依赖&#xff0c;第二种是 A依赖B&#xff0c;B依赖A&#xff0c;第三种是A依赖B&#xff0c;B依赖C&#xff0c;C依赖A。 总结一句话就是对象之间形成环形依赖。 代码如下&#xff1a; 第一…

FPGA时序约束与分析 (1)--- 约束工具及相关命令的使用

注意&#xff1a; 时序约束辅助工具或者相关的TCL命令&#xff0c;都必须在 open synthesis design / open implemention design 后才能有效运行。 1、时序约束辅助工具 2、查看相关时序信息 3、一般的时序约束顺序 1、 时序约束辅助工具&#xff08;1&#xff09;时序约束编辑…

蓝桥杯刷题练习Python(笔记)

# a1 A # a2 A B A # a3 ABA C ABA # a4 ABACABADABACABAnum int(input(N < 26:)) # 26 个字母 str "ABCDEFGHIJKLMNOPQRSTUVWXYZ"if num 1:a A # str[0] else:a Afor i in range(1, num, 1): # b str[i]c a b aa c# print(str[i])# print(a) …

【React】从 0 开始学 React —— 实现井字棋小游戏

目录1 React 简介2 实现井字棋小游戏2.1 初始化2.2 props2.3 setState2.4 状态提升2.5 副本2.6 简化组件2.7 key2.8 小结3 核心概念1 React 简介 React 是一个声明式&#xff0c;高效且灵活的用于构建用户界面的 JavaScript 库 官网提供了两种学习思路 如果你喜欢边做边学&am…

Vue3 组件之间的通信

组件之间的通信 经过前面几章的阅读&#xff0c;相信开发者已经可以搭建一个基础的 Vue 3 项目了&#xff01; 但实际业务开发过程中&#xff0c;还会遇到一些组件之间的通信问题&#xff0c;父子组件通信、兄弟组件通信、爷孙组件通信&#xff0c;还有一些全局通信的场景。 …

【GPLT 二阶题目集】L2-043 龙龙送外卖

参考地址&#xff1a;AcWing 4474. 龙龙送外卖&#xff08;杂题选讲&#xff09; 作者&#xff1a;yxc 感谢y总&#xff01; 龙龙是“饱了呀”外卖软件的注册骑手&#xff0c;负责送帕特小区的外卖。帕特小区的构造非常特别&#xff0c;都是双向道路且没有构成环 —— 你可以…

Spring Cloud Alibaba Sentinel 控制台

简介 Sentinel 控制台是流量控制、熔断降级规则统一配置和管理的入口&#xff0c;它为用户提供了机器自发现、簇点链路自发现、监控、规则配置等功能。在 Sentinel 控制台上&#xff0c;我们可以配置规则并实时查看流量控制效果。 下载 有以下两种方式获取Sentinel控制台 下…

进阶技术:Linux Arm32是如何调用C Main的

前言&#xff1a; Linux x64通过qemu的rdinit方式调用的C Main&#xff0c;实际上是通过load_elf_binary(加载和解析elf)和start_thread(设置Ip和sp)&#xff0c;用缺页异常来调用。关于这点可以看这篇文章&#xff1a;点击查看。那么Arm32里面是如何调用C Main的呢&#xff1f…