1、二進制部署
1.1 安裝腳本
腳本 install-node_exporter.sh
#!/bin/bash
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xvf node_exporter-1.8.2.linux-amd64.tar.gz
mkdir /opt/soft -p
mv node_exporter-1.8.2.linux-amd64 /opt/soft/node_exporter
cd /opt/soft/node_exporter/
chown llsuser.llsuser /opt/soft/node_exporter/ -R
cat > /etc/systemd/system/node_exporter.service << 'EOL'
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=llsuser
Group=llsuser
Type=simple
ExecStart=/opt/soft/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
EOL
systemctl daemon-reload
systemctl enable --now node_exporter
netstat -ntlp |grep 9100
1.2、接入k8s ServiceMonitor
創(chuàng)建node_exporter k8s 資源Endpoints、Service、ServiceMonitor
node_exporter.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: node-exporter
namespace: monitoring
labels:
k8s-app: node-exporter
subsets:
- addresses:
- ip: 10.25.3.98
- ip: 10.25.3.99
- ip: 10.25.3.100
- ip: 10.25.3.101
- ip: 10.25.3.102
- ip: 10.25.3.103
ports:
- port: 9100
name: metrics
---
apiVersion: v1
kind: Service
metadata:
name: node-exporter
namespace: monitoring
labels:
k8s-app: node-exporter
spec:
ports:
- port: 9100
targetPort: 9100
name: metrics
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
k8s-app: node-exporter
name: node-exporter
namespace: monitoring
spec:
jobLabel: node-exporter
endpoints:
- port: metrics
interval: 15s
scheme: http
namespaceSelector:
matchNames:
- monitoring
selector:
matchLabels:
k8s-app: node-exporter