您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

使用Prometheus监控Linux系统的运行状态

时间:2022-08-23 14:20:15  来源:  作者:1024范式

Prometheus主要是通过exporter进行监控信息的采集,在linux系统上主要是node_exporter采集主机信息,如CPU, 内存,磁盘等信息。

安装配置

Node Exporter采用Golang编写,不存在任何的第三方依赖,下载地址为 prometheus.io/download,下载解压即可运行。

# 下载node_exporter
cd /usr/local/src/
wget https://Github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar -xzf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64 node_exporter 
## 用专用用户运行
useradd prometheus
chown -R prometheus:prometheus ./node_exporter
su prometheus
./node_exporter/node_exporter

设置为系统服务,自动启动。

cat > /usr/lib/systemd/system/node_exporter.service <<EOF
#node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After.NETwork.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/src/node_exporter/node_exporter
Restart=on-fAIlure

[Install]
WantedBy=multi-user.target
EOF
## 启动
systemctl enable node_exporter.service
systemctl start node_exporter.service

默认配置是开启9100端口,如需更改则启动时加参数--web.listen-address=0.0.0.0:9100。它还提供了一系列指标开头,--no-collector.<name>参数来指定不想收集的指标,也可以通过--collector.<name>参数来指定想要打开的额外指标。

启动后,即可使用ip:9100/metrics访问,看到系统的即时指标。

Prometheus Server收集

Prometheus Server收集当前node exporter的监控数据,配置prometheus.yml,并在scrape_configs节点下添加此节点,有多种方式,直接配置在prometheus.yml:

scrape_configs:
  # 采集node exporter监控数据
  - job_name: 'linux_node'
    static_configs:
      - targets: ['192.168.16.230:9100']

或者基于文件的服务发现:

# prometheus.yml中配置
scrape_configs:
 - job_name: "linux_node"
    file_sd_configs:
      - files:
        - static_config_linux.yml
# static_config_linux.yml中配置
- targets:
  # node_exporter配置
  - '192.168.16.230:9100'

如果获取主机监控信息时想指定获取的内容,需要配合使用Job的params参数。

配置完之后,需要重启,如果基于文件发现的,加入节点会被定时自动扫描。prometheus提供的web页面的status-->targets中查看到监控的节点信息。

数据可视化

数据采集后,一般都使用grafana来展现各种视图。点击加号菜单中的“import”,输入Dashboard ID后点确定,即可从官网导入指定的仪表盘模板。

其中对linux监控数据呈现得比较好的图表是,ID为1860的“Node Exporter Full”仪表盘,能看到单节点的详情。

 

另外一个是以列表的方式查看总体指标,ID为16098的“1 Node Exporter Dashboard 通用Job分组版”仪表盘。

预警配置

Prometheus预警由Server触发,再通过独立的Alertmanager服务发送到指定目的地,如钉钉群,邮件,企业微信。配置prometheus.yml指定预警规则文件路径:

rule_files:
 - ./rules/*yml

预警规则文件(例rules/linux.yml)如下:

groups:
- name: NodeStatsAlert
  rules:
  - alert: mem使用率
    expr: 100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 95
    for: 5m
    labels:
      severity: 严重
    annotations:
      description: "{{ $labels.instance }} 内存利用率,5分钟持续>95%"
      summary: "内存利用率超标"
      value: '{{ $value }}%'

配置如果没问题,则会在展示到alerts菜单下。

 

几个常用的预警项的表达式是:

  • 节点不可用:up == 0
  • 内存,可用内存的比例:(node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)
  • CPU,5分钟平均的CPU空闲:(avg by (instance)(irate(node_cpu_seconds_total{mode="idle"}[5m]) ))
  • 硬盘,挂载的硬盘的可用比例:(node_filesystem_size_bytes - node_filesystem_avail_bytes) / node_filesystem_size_bytes

表达式可以先在Server端的graph菜单中验证,或者在Grafana的图表中找参数。



Tags:Linux系统   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  Search: Linux系统  点击:(10)  评论:(0)  加入收藏
嵌入式Linux系统开发——系统移植概述
一、什么是嵌入式系统 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 嵌入...【详细内容】
2024-01-11  Search: Linux系统  点击:(82)  评论:(0)  加入收藏
Linux系统开机启动过程详解
摘要:操作系统的启动过程差别不大,Window和Linux的启动都需要【通电】-【自检】-【登录】几个步骤。对Linux系统而言,更详细的启动流程为:通电-->BIOS-->主引导记录(MBR)-->grub引...【详细内容】
2023-12-28  Search: Linux系统  点击:(68)  评论:(0)  加入收藏
如何检查Linux系统的开放端口,保障网络安全
概述开放的网络端口是网络最简单的入口点。有时,可能会在从 Internet 外部可见的端口上运行不需要的服务。如果这些服务容易受到攻击,您的网络将持续受到攻击的威胁,因为每天都...【详细内容】
2023-12-18  Search: Linux系统  点击:(76)  评论:(0)  加入收藏
在Linux系统中实现容器化的大规模数据分析平台:Hadoop和Spark
在Linux系统中实现容器化的大规模数据分析平台,我们可以利用Hadoop和Spark这两个强大的开源工具。Hadoop是一个分布式计算框架,适用于处理大规模数据集。它提供了分布式文件系...【详细内容】
2023-12-15  Search: Linux系统  点击:(155)  评论:(0)  加入收藏
Linux系统设置每隔1小时运行指定命令
在Linux系统中,通常情况下使用crontab命令来设置定时任务,本文以每隔1个小时运行一条指令为例子,和大家一起讨论crontab的用法。具体的操作步骤: 打开终端。 输入命令 crontab -...【详细内容】
2023-12-14  Search: Linux系统  点击:(161)  评论:(0)  加入收藏
Linux系统下CPU性能问题分析案例
关于CPU使用率相关重要指标,我们经常在使用top、dstat、vmstat等工具看到,这里解读一下: user(通常缩写为us),代表用户态CPU时间。 nice(通常缩写为ni),代表低优先级用户态CPU时间,nic...【详细内容】
2023-12-06  Search: Linux系统  点击:(173)  评论:(0)  加入收藏
Linux系统中软链接和硬链接
硬链接是指在文件系统中创建一个新的文件名,该文件名指向同一个inode(即文件的实际数据块)。硬链接与原始文件具有相同的inode号,它们共享相同的数据块。当删除原始文件时,硬链接...【详细内容】
2023-11-15  Search: Linux系统  点击:(224)  评论:(0)  加入收藏
使用SELinux进行Linux系统安全加固
SELinux(Security-Enhanced Linux)是一种在Linux系统中实现强制访问控制(MAC)的安全机制,它能够对系统资源进行细粒度的访问控制,提高系统的安全性和防范能力。在进行Linux系统安...【详细内容】
2023-10-31  Search: Linux系统  点击:(339)  评论:(0)  加入收藏
在Linux系统中实现容器化运维监控平台:Prometheus和Grafana
Prometheus和Grafana是在Linux系统中广泛使用的容器化自动化运维监控平台。Prometheus是一款开源的监控和警报工具,而Grafana则是一个数据可视化工具。它们结合起来可以提供...【详细内容】
2023-10-11  Search: Linux系统  点击:(324)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(6)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(16)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(10)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(11)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(54)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(50)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(53)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(77)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(69)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(85)  评论:(0)  加入收藏
站内最新
站内热门
站内头条