千家信息网

node_exporter的使用方法

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章给大家分享的是有关node_exporter的使用方法的内容。小编觉得挺实用的,因此分享给大家学习。如下资料是关于node_exporter的内容。运行 node exporter下载软件包:
千家信息网最后更新 2025年02月07日node_exporter的使用方法

这篇文章给大家分享的是有关node_exporter的使用方法的内容。小编觉得挺实用的,因此分享给大家学习。如下资料是关于node_exporter的内容。

运行 node exporter

下载软件包:

1.下载安装node_export

mkdir -p /usr/local/prometheus/exporter/node cd /usr/local/prometheus/exporter/nodecurl -s -OL https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-$Version.linux-amd64.tar.gztar xf node_exporter-0.18.0.linux-amd64.tar.gzcp -a node_exporter-0.18.0.linux-amd64/node_exporter /usr/local/bin/

2.注册系统服务

cat > /usr/lib/systemd/system/node-exporter.service <<-'EOF'[Unit]Description=This is prometheus node exporterAfter=docker.service[Service]Type=simpleExecStart=/usr/local/bin/node_exporterExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failure[Install]WantedBy=multi-user.targetEOF

3.设置开机自启,启动服务

systemctl daemon-reload && systemctl enable node-exporter.service && systemctl start node-exporter.service

node_exporter 他的本质就是监控主机系统,所以我们不建议将其部署为 docker 容器,因为他需要访问主机系统.

与 prometheus 集成

  - job_name: node    metrics_path: /metrics    static_configs:    - targets: ['192.168.111.65:9100']

重启 prometheus,查看状态

基于发现配置prometheus

在prometheus 主配置文件配置定义子配置文件路径

  - job_name: 'node'    static_configs:    file_sd_configs:    - files:      - metrics/node_exporter*.yaml      refresh_interval: 2m

在prometheus安装目录下的targets目录下(在主配置文件定义metrics目录不存在则手动创建)创建文件 node_exporter65.yaml

- targets: ['192.168.111.65:9100']    # 如果有多个node_exporter,配置到[]中,隔开添加不需要重启服务,服务自动发现node_exporter客户端  labels:   app: node-exporter   job: node

在 grafana 中添加图表

图表编号为8919
https://grafana.com/grafana/dashboards/8919
然后可以看到如下图表

开启alertmanager配置告警规则

prometheus 主配置文件配置定义子配置文件路径

rule_files:    - "rules/*.yml"

prometheus 告警规则

在prometheus安装目录下的定义的rules目录下(如果rules目录不存在)创建文件 alarm_rule.yml

groups:- name: hostStatsAlert  rules:  - alert: hostCpuUsageAlert    expr: (1- avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[30m])))*100>85    for: 1m    labels:      level: disaster #定义一个等级标签,用于altermanager 发送消息    annotations:      summary: "实例 {{ $labels.instance }} CPU使用率过高"      description: "{{ $labels.instance }} CPU 使用率大于 85% (当前值为: {{ $value }})"  - alert: hostMemUsageAlert    expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100>85    for: 1m    labels:      level: disaster    annotations:      summary: "实例 {{ $labels.instance }} 内存使用率过高"      description: "{{ $labels.instance }} 内存使用率大于 85% (当前的值: {{ $value }})"  - alert: hostLoad    expr: sum(node_load15) >= sum(count(node_cpu_seconds_total{mode='system'}) by (cpu)) and node_load1 > node_load5 and node_load5 > node_load15     for: 1m    labels:      level: disaster    annotations:      summary: "实例 {{ $labels.instance }} 15 分钟负载过高"      description: "{{ $labels.instance }} 15 分钟负载大于其 cpu 核心数 (当前的值: {{ $value }})"  - alert: hostUp    expr: up{job="node"} == 0    for: 1m    labels:      level: disaster    annotations:      summary: "实例 {{ $labels.instance }} 不可达"      description: "{{ $labels.instance }} 实例不可达,请尽快解决"

安装配置alermanager

1.下载安装alertmanager

wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gztar -xf alertmanager-0.21.0.linux-amd64.tar.gz mv alertmanager-0.21.0.linux-amd64 /usr/local/alertmanager

2.注册系统服务

cat > /usr/lib/systemd/system/alertmanager.service <<-'EOF'[Unit]Description=This is alertmanagerAfter=network.target[Service]Type=simpleExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml --cluster.advertise-address=0.0.0.0:9093Restart=on-failure[Install]WantedBy=multi-user.targetEOF

3.设置开机自启,启动服务

systemctl daemon-reload && systemctl enable alertmanager.service && systemctl start alertmanager.service

alertmanager 基于邮件报警配置

alertmanager 主配置文件配置

global:  smtp_smarthost: 'smtp.qq.com:465'   smtp_from: '88888888@qq.com'                # 告警发送到的邮箱    smtp_auth_username: '88888888@qq.com'  smtp_auth_password: 'pqrbkxvnpogxbobw'           # 邮箱开启SMTP/pop3后的密码    smtp_require_tls: falseroute:  group_by: ["instance"]             group_wait: 30s                   group_interval: 5m               repeat_interval: 2h  receiver: mail               receivers:- name: 'mail'                  email_configs:  - to: '88888888@qq.com'        send_resolved: False

看完这篇文章,你们学会node_exporter的使用方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0