Prometheus04-node_exporter

禁用收集器
许多收集器默认都是启用的。使用no-前缀来修改状态。
例如, 暴露/proc/net/arp统计信息的arp收集器默认是启用的,由参数--collector.arp控制。
因此, 要禁用此收集器, 需要运行如下命令 node_exporter --no-collector.arp

配置textfile收集器
mkdir -p /var/lib/node_exporter/textfile_collector
echo 'metadata{role="docker_server",datacenter="NJ"} 1' | tee /var/lib/node_exporter/textfile_collector/metadata.prom
在真实环境中, 建议使用配置管理工具来编辑该文件
自定义的指标被放置在.prom结尾的文件中。
testfile收集器默认为启用状态,无需开启。但是需要在node_exporter启动时指定testfile_exporter目录, --collector.textfile.directory

启用systemd收集器
这里我们再启用另一个systemd收集器, 它记录systemd[1]中的服务和系统状态。 这个收集器收集了很多指标, 但我们并不想收集systemd管理的所有内容, 而只想收集某些关键服务。 为了保持简洁,我们可以将特定服务列入白名单, 只收集以下服务的指标:
·docker.service
·ssh.service
·rsyslog.service
它们是Docker守护进程、 SSH守护进程和RSyslog守护进程。 使用--collector.systemd.unit-whitelist参数进行配置, 它会匹配systemd的正则表达式。

启动node_exporter

node_exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector \
--collector.systemd  --collector.systemd.unit-whitelist="(docker|ssh|rsyslog).service"

可以通过--web.listen-address和--web.telemetry-path参数来设置端口和路径。
例如:node_exporter --web.listen-address=":9600" --web.telemetry-path="/node_metrics"

prometheus中添加作业
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets; ['192.168.1.2','192.168.1.3']

过滤收集器
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets; ['192.168.1.2','192.168.1.3']
    params:
      collect[]:
        - cpu
        - meminfo
        - diskstats
        - netdev
        - netstat
        - filefd
        - filesystem
        - xfs
        - systemd

标签

更改或添加标签会创建新的时间序列

重新标记的用途

·删除不必要的指标
·从指标中删除敏感或不需要的标签
·添加、 编辑或修改指标的标签值或标签格式

重新标记的两个阶段

在抓取之前使用relabel_configs
在抓取之后使用metric_relabel_configs

删除指标

metric_relable_configs:
  - source_labels: [__name__]
    separator: ','   # __name__标签值将使用","进行分隔。默认分隔符为";"
    regex: '(container_task_state|container_memory_failures_total)'  
    # 如果指定了多个source_labels,使用";"隔开每个正则表达式, 例如:regex1;regex2
    action: drop

替换标签值
metric_relable_configs:
  - source_labels: [id]
    regex: '/docker/([a-z0-9]+);'
    replacement: '$1'
    target_label: container_id

删除标签
这通常用于隐藏敏感信息或简化时间序列
metric_relable_configs:
  - regex: '/docker/([a-z0-9]+);'
    action: labeldrop

内存使用率指标名称
·node_memory_MemTotal_bytes: 主机上的总内存。
·node_memory_MemFree_bytes: 主机上的可用内存。
·node_memory_Buffers_bytes: 缓冲缓存中的内存。
·node_memory_Cached_bytes: 页面缓存中的内存。

查询持久化
可以通过以下三种方式使查询持久化:
·记录规则: 根据查询创建新指标。
·警报规则: 从查询生成警报。
·可视化: 使用Grafana等仪表板可视化查询

配置记录规则

创建存储规则的目录,在该目录中记录规则。将该目录指定在prometheus的配置文件中
mkdir /usr/local/prometheus/rule
cd /usr/local/prometheus/rule
vim node_rule.yml
groups:
- name: node_rule
  rules:
...
vim prometheus.yml
rule_files:
  - "/usr/local/prometheus/rule/*.yml"
posted @   立勋  阅读(117)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示