溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

node_exporter的使用方法

發(fā)布時間:2020-06-02 09:26:46 來源:億速云 閱讀:11295 作者:Leah 欄目:系統(tǒng)運(yùn)維

這篇文章給大家分享的是有關(guān)node_exporter的使用方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于node_exporter的內(nèi)容。

運(yùn)行 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.注冊系統(tǒng)服務(wù)

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.設(shè)置開機(jī)自啟,啟動服務(wù)

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

node_exporter 他的本質(zhì)就是監(jiān)控主機(jī)系統(tǒng),所以我們不建議將其部署為 docker 容器,因?yàn)樗枰L問主機(jī)系統(tǒng).

與 prometheus 集成

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

重啟 prometheus,查看狀態(tài)

node_exporter的使用方法

基于發(fā)現(xiàn)配置prometheus

在prometheus 主配置文件配置定義子配置文件路徑

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

在prometheus安裝目錄下的targets目錄下(在主配置文件定義metrics目錄不存在則手動創(chuàng)建)創(chuàng)建文件 node_exporter65.yaml

- targets: ['192.168.111.65:9100']    # 如果有多個node_exporter,配置到[]中,隔開添加不需要重啟服務(wù),服務(wù)自動發(fā)現(xiàn)node_exporter客戶端
  labels:
   app: node-exporter
   job: node

在 grafana 中添加圖表

圖表編號為8919
https://grafana.com/grafana/dashboards/8919
然后可以看到如下圖表
node_exporter的使用方法

開啟alertmanager配置告警規(guī)則

prometheus 主配置文件配置定義子配置文件路徑

rule_files:
    - "rules/*.yml"

prometheus 告警規(guī)則

在prometheus安裝目錄下的定義的rules目錄下(如果rules目錄不存在)創(chuàng)建文件 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 #定義一個等級標(biāo)簽,用于altermanager 發(fā)送消息
    annotations:
      summary: "實(shí)例 {{ $labels.instance }} CPU使用率過高"
      description: "{{ $labels.instance }} CPU 使用率大于 85% (當(dāng)前值為: {{ $value }})"

  - alert: hostMemUsageAlert
    expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100>85
    for: 1m
    labels:
      level: disaster
    annotations:
      summary: "實(shí)例 {{ $labels.instance }} 內(nèi)存使用率過高"
      description: "{{ $labels.instance }} 內(nèi)存使用率大于 85% (當(dāng)前的值: {{ $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: "實(shí)例 {{ $labels.instance }} 15 分鐘負(fù)載過高"
      description: "{{ $labels.instance }} 15 分鐘負(fù)載大于其 cpu 核心數(shù) (當(dāng)前的值: {{ $value }})"

  - alert: hostUp
    expr: up{job="node"} == 0
    for: 1m
    labels:
      level: disaster
    annotations:
      summary: "實(shí)例 {{ $labels.instance }} 不可達(dá)"
      description: "{{ $labels.instance }} 實(shí)例不可達(dá),請盡快解決"

安裝配置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.注冊系統(tǒng)服務(wù)

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.設(shè)置開機(jī)自啟,啟動服務(wù)

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'                # 告警發(fā)送到的郵箱  
  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

看完這篇文章,你們學(xué)會node_exporter的使用方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI