node_exporter的使用方法

发布时间:2020-06-02 09:26:46 作者:Leah
来源:亿速云 阅读:11141

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

运行 node exporter

下载软件包:

1.下载安装node_export

mkdir -p /usr/local/prometheus/exporter/node 
cd /usr/local/prometheus/exporter/node
curl -s -OL https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-$Version.linux-amd64.tar.gz
tar xf node_exporter-0.18.0.linux-amd64.tar.gz
cp -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 exporter
After=docker.service
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

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,查看状态

node_exporter的使用方法

基于发现配置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
然后可以看到如下图表
node_exporter的使用方法

开启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.gz
tar -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 alertmanager
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml --cluster.advertise-address=0.0.0.0:9093
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

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的使用方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. (2)node_exporter部署监控容器主机
  2. Sentinel的使用方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

node_exporter prometheus

上一篇:python编写json脚本监控端口

下一篇:给定一个链表,删除链表的倒数第 n 个节点(已知该结点存在),并且返回链表的头结点。

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》