node_exporter 监控部署
nerdctl compose -f docker-compose.yaml up -d
nerdctl compose -f docker-compose.yaml down
version: '3.8'services: node_exporter: container_name: node_exporter # hostname: "{{.Node.Hostname}}" image: quay.io/prometheus/node-exporter:v1.5.0 command: - '--path.rootfs=/host' # ports: # - 9100:9100 volumes: - '/:/host:ro,rslave' network_mode: host pid: host #restart: unless-stopped restart: always#告警规则 参考:https://awesome-prometheus-alerts.grep.to/rules#host-and-hardware
service/kube-prometheus-stack-prometheus-node-exporter 已经有采集
采集主机层数据
1.导入镜像
docker load < node-exporter.v1.5.0.tgz
2.docker-compose.yaml文件
cd /data/docker-swarm
node-exporter-docker-compose.yaml
version: '3.8'services: node_exporter: container_name: node_exporter hostname: "{{.Node.Hostname}}" image: quay.io/prometheus/node-exporter:v1.5.0 command: - '--path.rootfs=/host' ports: - 9200:9100 volumes: - '/:/host:ro,rslave' networks: - monitor deploy: mode: global# resources:# limits:# cpus: '0.50'# memory: 300Mnetworks: monitor: external: true#如果是docker-compose方式,需要直接写好hostname
hostname: "{{.Node.Hostname}}"
3.启停服务
docker stack rm node-exporter
docker stack deploy -c node-exporter-docker-compose.yaml node-exporter
4.prometheus配置
# 进入prometheus配置目录cd /data/prometheus/conf# 配置需要监控的node-exporter实例连接地址(此处以staging环境为例)cat > targets/node-exporter/staging.yaml <<\EOF- labels: env: sz-prom-staging targets: - '192.168.102.213:9100' - '192.168.102.214:9100' - '192.168.102.235:9100' - '192.168.102.219:9100' - '192.168.102.236:9100' - '192.168.102.215:9100' - '192.168.102.220:9100' - '192.168.102.221:9100'EOF# 添加prometheus job配置cat >> prometheus.yml <<\EOF - job_name: node-exporter file_sd_configs: - files: - /etc/prometheus/targets/node-exporter/*.yamlEOF# 重载prometheus配置curl -vv --basic -u 'admin:meng@2022' -X POST http://192.168.10.19:9090/-/reload参考:
/data/prometheus/conf/targets/node-exporter/
dev.yaml
- labels: cluster: sz-system-dev targets: - '192.168.10.19:9200' #9200 端口区别于k8s已经部署Node-exporter,占用了9100#案例1
---version: '3.8'services: node_exporter: image: quay.io/prometheus/node-exporter:latest container_name: node_exporter command: - '--path.rootfs=/host' network_mode: host pid: host restart: unless-stopped volumes: - '/:/host:ro,rslave'#案例2
version: '3.8'services: node_exporter: container_name: node_exporter # hostname: "{{.Node.Hostname}}" image: quay.io/prometheus/node-exporter:v1.5.0 command: - '--path.rootfs=/host'# ports:# - 9100:9100 volumes: - '/:/host:ro,rslave' network_mode: host pid: host restart: unless-stopped