命令记不住

登陆

node_exporter 监控基础指标

node_exporter监控基础指标

1.下载node_exporter

选择需要的版本:https://github.com/prometheus/node_exporter/releases/tag/v1.3.1

下载最新版本:https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

安装

tar xf node_exporter-1.3.1.linux-arm64.tar.gz
mkdir /etc/prometheus
mv node_exporter-1.3.1.linux-amd64 /etc/prometheus/node_exporter
useradd prometheus -s /sbin/nologin
chown -R prometheus:prometheus /etc/prometheus/node_exporter/

.

2.服务管理

node_exporter.service

# cat /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/etc/prometheus/node_exporter/node_exporter 
Restart=on-failure
[Install]
WantedBy=multi-user.target

2.设置开机自启动

systemctl daemon-reload
systemctl status node_exporter.service
systemctl enable node_exporter.service --now
systemctl status node_exporter.service

.

3.批量部署脚本

安装node_exporter的脚本

#!/bin/bash
#Author: Wu
cat << EOF
+------------------------------------------------------------------+
| ** Welcome to install prometheus node_exporter for CentOS 7 OS|
+------------------------------------------------------------------+
EOF
function format() {
echo -e "\033[32m Success!!! \033[0m\n"
echo "#########################################################"
}
#mkdir  dir
echo "set prometheus node-exporter dir"
dir=/etc/prometheus/
if [ ! -d $dir ]; then
    mkdir -p /etc/prometheus/
fi
format
#download node_exporter-1.3.1.linux-amd64.tar.gz
echo "download and tar prometheus node_exporter-1.3.1.linux-amd64.tar.gz in root"
cd /root && wget https://wu-devops.oss-cn-huhehaote.aliyuncs.com/node_exporter-1.3.1.linux-amd64.tar.gz
node_exporter_file=/root/node_exporter-1.3.1.linux-amd64.tar.gz
if [ ! -f $node_exporter_file ]; then
    echo "no node_exporter-1.3.1.linux-amd64.tar.gz in root!" 
    exit
else
   cd /root/
   tar xzvf /root/node_exporter-1.3.1.linux-amd64.tar.gz
   mv /root/node_exporter-1.3.1.linux-amd64 /etc/prometheus/node_exporter
   format
fi
# useadd prometheus
echo "useadd prometheus user"
useradd prometheus -s /sbin/nologin
format
# chown prometheus
echo "chown prometheus /etc/prometheus/node_exporter"
cd /etc/prometheus/
chown -R prometheus.prometheus  /etc/prometheus/node_exporter
format
# config prometheus /usr/lib/systemd/system/node_exporter.service
echo "touch /usr/lib/systemd/system/node_exporter.service"
touch /usr/lib/systemd/system/node_exporter.service
cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/etc/prometheus/node_exporter/node_exporter 
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start node_exporter.service
systemctl enable node_exporter.service
format

.

4.配置node监控yml

独立维护每台物理机:

touch /etc/prometheus/node_exporter/node-physical.yml
chown -R prometheus:prometheus /etc/prometheus/node_exporter/
# cat  /etc/prometheus/node_exporter/node-physical.yml
- targets: ["192.168.5.98:9100"]
  labels:
    instance: 192.168.5.98

配置主文件/etc/prometheus/prometheus.yml

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  # 物理节点
  - job_name: 'node-physical'
    file_sd_configs:
      - files: ['/etc/prometheus/node_exporter/node-physical.yml']
        refresh_interval: 5s

修改配置后重启prometheus服务端

systemctl restart prometheus.service

.

5.查看配置结果

进入Prometheus Web首页Status => Targets

6.图形展示模版

1.https://grafana.com/grafana/dashboards/10262

2.https://grafana.com/grafana/dashboards/8919

3.https://grafana.com/grafana/dashboards/12106

推荐阅读