1. 为什么选择node_exporterPrometheus监控Linux系统在运维领域系统监控就像给服务器装上健康监测仪。传统的监控方案如Zabbix虽然功能全面但配置复杂、资源消耗大。而Prometheusnode_exporter的组合则像一把精准的手术刀——轻量、专注、响应迅速。node_exporter是Prometheus生态中专用于*nix系统监控的采集器它能暴露800系统指标包括CPU使用率user/system/iowait等状态占比内存消耗已用/缓存/交换分区情况磁盘I/O吞吐量和延迟网络带宽和错误包统计系统负载和进程状态这些指标通过/metrics接口以文本形式暴露Prometheus定时抓取后存入时间序列数据库。相比传统方案这套组合有三大优势多维数据模型每个指标可带多标签如node_cpu_seconds_total{cpu0,modeuser}便于细粒度分析强大的PromQL支持瞬时向量、区间向量查询能直接计算CPU使用率等衍生指标低侵入性node_exporter仅需5MB内存对生产环境影响极小提示虽然Windows系统可使用windows_exporter但node_exporter在Linux下的指标覆盖更全面特别是对/proc和/sys文件系统的深度采集。2. 从零部署node_exporter实战指南2.1 二进制包安装推荐生产环境最新版node_exporter可从 GitHub Releases 获取。以1.6.1版本为例# 下载适用于Linux AMD64架构的版本 wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz # 解压并进入目录 tar xvfz node_exporter-*.tar.gz cd node_exporter-*/ # 直接运行默认监听9100端口 ./node_exporter此时访问http://服务器IP:9100/metrics将看到如下指标片段# HELP node_cpu_seconds_total Seconds the CPUs spent in each mode. # TYPE node_cpu_seconds_total counter node_cpu_seconds_total{cpu0,modeidle} 38245.67 node_cpu_seconds_total{cpu0,modesystem} 1045.322.2 配置系统服务实现开机自启生产环境建议通过systemd管理服务sudo cat EOF /etc/systemd/system/node_exporter.service [Unit] DescriptionNode Exporter Afternetwork.target [Service] Usernode_exporter Groupnode_exporter ExecStart/usr/local/bin/node_exporter \ --collector.systemd \ --collector.tcpstat [Install] WantedBymulti-user.target EOF # 创建专用用户 sudo useradd -rs /bin/false node_exporter # 复制二进制文件 sudo cp node_exporter /usr/local/bin/ # 启动服务 sudo systemctl daemon-reload sudo systemctl enable --now node_exporter常用启动参数说明--web.listen-address:19100修改监听端口--collector.disable-defaults禁用默认采集器--collector.filesystem.ignored-mount-points忽略特定挂载点2.3 安全加固措施暴露9100端口存在风险建议使用Nginx反向代理添加Basic Authlocation /metrics { auth_basic Node Exporter; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://localhost:9100; }或通过iptules限制访问IPiptables -A INPUT -p tcp --dport 9100 -s 监控服务器IP -j ACCEPT iptables -A INPUT -p tcp --dport 9100 -j DROP3. Prometheus服务端配置详解3.1 基础抓取配置在prometheus.yml中添加job配置scrape_configs: - job_name: node scrape_interval: 15s static_configs: - targets: [192.168.1.10:9100, 192.168.1.11:9100] relabel_configs: - source_labels: [__address__] target_label: instance regex: (.*):.* replacement: $1关键配置解析scrape_interval抓取频率生产环境建议15-30smetrics_path默认为/metrics如需修改需与node_exporter启动参数一致relabel_configs重写标签规则示例中将IP:PORT格式转为纯IP3.2 使用服务发现动态管理目标对于大规模集群建议使用文件服务发现创建目标列表文件nodes.json[ { targets: [10.0.1.2:9100], labels: { env: prod, role: db } } ]修改prometheus.ymlscrape_configs: - job_name: node file_sd_configs: - files: [/etc/prometheus/nodes.json] refresh_interval: 5m3.3 关键指标告警规则示例在rules/node.yml中定义告警规则groups: - name: node_alerts rules: - alert: HighCPUUsage expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{modeidle}[5m])) * 100) 80 for: 10m labels: severity: warning annotations: summary: High CPU usage on {{ $labels.instance }} description: CPU usage is {{ $value }}% - alert: MemoryPressure expr: (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 20 for: 5m labels: severity: critical4. 高级监控场景实战4.1 监控Docker容器node_exporter默认只能监控主机需配合cAdvisordocker run -d \ --namecadvisor \ -v /:/rootfs:ro \ -v /var/run:/var/run:ro \ -v /sys:/sys:ro \ -v /var/lib/docker/:/var/lib/docker:ro \ -p 8080:8080 \ gcr.io/cadvisor/cadvisor:v0.47.0Prometheus配置示例- job_name: cadvisor static_configs: - targets: [docker-host:8080]4.2 自定义文本文件收集器通过textfile收集器采集脚本输出创建采集目录mkdir -p /var/lib/node_exporter/textfile_collector添加启动参数--collector.textfile.directory/var/lib/node_exporter/textfile_collector示例脚本/home/scripts/check_ssl.sh#!/bin/bash echo # HELP ssl_expire_days SSL certificate expire days /var/lib/node_exporter/textfile_collector/ssl.prom echo # TYPE ssl_expire_days gauge /var/lib/node_exporter/textfile_collector/ssl.prom openssl x509 -enddate -noout -in /etc/nginx/ssl/cert.pem | awk -F /notAfter/{print ssl_expire_days{domain\example.com\} (systime()-mktime(gensub(/ /, ,g,$2)))/86400} /var/lib/node_exporter/textfile_collector/ssl.prom4.3 使用Grafana可视化监控数据推荐仪表盘模板Node Exporter FullID 1860Linux Hosts MetricsID 11074配置步骤添加Prometheus数据源导入仪表盘JSON调整变量如$interval和$datasource关键面板建议CPU使用率100 - (avg by(instance)(rate(node_cpu_seconds_total{modeidle}[$__rate_interval])) * 100)内存使用(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100磁盘空间node_filesystem_avail_bytes{mountpoint/} / node_filesystem_size_bytes{mountpoint/} * 1005. 性能调优与故障排查5.1 资源占用优化当监控数百节点时需注意禁用不必要采集器如wifi、nfs--no-collector.wifi --no-collector.nfs调整Prometheus存储参数storage: tsdb: retention: 15d wal_compression: true使用Recording Rules预计算常用指标groups: - name: node_rules rules: - record: instance:node_cpu:avg_rate5m expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{modeidle}[5m])) * 100)5.2 常见问题处理指标缺失排查流程检查node_exporter日志journalctl -u node_exporter -f手动访问metrics接口curl -s http://localhost:9100/metrics | grep node_memory验证Prometheus抓取状态访问/targets查看job状态检查up{jobnode}指标是否为1典型错误处理出现context deadline exceeded增加scrape_timeout指标值异常检查是否启用对应采集器如网络指标需netdev采集器时间戳不匹配确保所有节点时间同步chrony或ntpd我在实际运维中发现当node_exporter版本低于1.3时在多核CPU服务器上可能出现node_cpu指标不全的问题。解决方法很简单——升级到最新稳定版即可。另一个容易忽略的点是如果使用非root用户运行部分指标如node_sockstat_*会因权限不足无法采集这时需要给该用户增加/proc和/sys的读取权限。
企业数字化 ERP 产品动态
相关推荐
分布式系统幂等性设计原理与实践 1. 幂等性设计基础概念解析幂等性(Idempotence)是分布式系统设计中一个至关重要的概念,它指的是对同一个操作执行一次或多次所产生的影响与执行一次相同。简单来说,就是无论你调用多少次,结果都像只调用了一次那样。在… · 2026/11/6 6:58:29
Fiddler在软件测试中的核心价值与实战技巧 1. Fiddler在软件测试中的核心价值解析作为HTTP调试代理工具的标杆产品,Fiddler在软件测试领域已经建立了不可替代的地位。根据我多年测试团队的技术面试经验,约87%的Web/App测试岗位都会涉及Fiddler相关问题的考察。这主要源于其在测试流程中的三大核心… · 2026/11/5 18:28:10
产教融合实践:外语院校与大数据企业的跨界合作 1. 项目背景与意义四川外国语大学与芝诺数据的这次产教融合实践交流活动,是当前高等教育与产业界深度互动的一个典型案例。作为外语类高校与大数据企业的跨界合作,这种模式打破了传统校企合作的局限,为学生提供了更贴近实际产业需求的学习机会… · 2026/11/6 9:05:00
特种工需要备案,全国通用的证怎么选 特种工需要备案,全国通用的证怎么选 之前考的证在外省能不能转过来?这是很多特种作业人员在换工作、跨区域就业时最关心的问题。实际上,国家早已明确, 特种作业操作证是全国通用… · 2026/11/10 15:53:15
杭州高配电工证过期别慌!良心建议教你如何处理 杭州高配电工证过期别慌!良心建议教你如何处理 之前考的证在外省能不能转过来?这是很多持证人员在杭州高配电工证过期后最关心的问题。如果你的证已经过期,别急,先听我说完,给你几个 良心建议 ,让你少走弯路、少花冤枉钱。… · 2026/11/10 15:53:15
越秀考电工证多少钱保姆级教程:证书过期了不知道怎么复审延期 越秀考电工证多少钱保姆级教程:证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?别慌,这篇保姆级教程帮你从头理清思路,让你轻松应对电工证复审、考试报名、查询下载全流程。尤其是越秀考电工证多少钱、怎么选机构,这篇文章给你讲明白。… · 2026/11/10 15:53:15
特种工需要备案值不值得考?实操考试心里没底怕挂科?全攻略来了 特种工需要备案值不值得考?实操考试心里没底怕挂科?全攻略来了 你是不是也在犹豫:特种工需要备案,值不值得考?尤其是那些准备转岗的河南人,担心实操考试过不了,白费时间和精力。其实,很多人都有这种焦虑,但只要你掌握了正确的方法,备考就不会那么难… · 2026/11/10 15:53:15
特种高压电工证刷题上岗必备怎么走?外省证能不能转过来 特种高压电工证刷题上岗必备怎么走?外省证能不能转过来 之前考的证在外省能不能转过来?这是很多河南兄弟问得最多的问题。特别是像信阳这样的地级市,很多工地和施工企业都是外地来的,证书在手才能干活,这事儿真不能马虎。 特种高压电工证刷题上岗必备… · 2026/11/10 15:52:11
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/9 3:11:26
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/9 5:24:17
丹寨电工证怎么考?内部消息透露报考条件和流程 丹寨电工证怎么考?内部消息透露报考条件和流程 急需特种作业证才能上岗找工作,这是很多电工朋友最真实的焦虑。尤其是像丹寨电工证这样的证书,直接影响你的职业发展和薪资待遇。但你知道吗?很多人都在报考过程中踩坑,有的甚至花了几千块最后白忙一场。今… · 2026/11/10 0:00:13
成都建筑电工证办理郑州报考避坑指南 成都建筑电工证办理郑州报考避坑指南 证书过期了不知道怎么复审延期?别慌!这篇文章手把手带你解决成都建筑电工证办理的难题,顺便避掉郑州报考的那些坑。不管你是刚拿到证的新手,还是准备复审的老电工,这波干货都别错过。… · 2026/11/10 0:00:13
梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 你是不是正为梅州低压电工证发愁?不知道去哪报名,怕被中介骗钱,又担心证书是不是全国通用?其实,这些顾虑都是正常人会有的。今天我就从一个在开封房建工程一线干了几年的电工角度,手把手教你… · 2026/11/10 0:00:13
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:35
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:58
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:25:08