Node Exporter 自动化部署项目深度分析报告
源码链接
https://github.com/XYS9767/add-node-exporter
项目概述
本项目是一个基于Ansible的自动化部署工具,专门用于在远程Linux主机上部署和管理Prometheus Node Exporter监控服务。Node Exporter是Prometheus生态系统中的重要组件,负责收集系统级别的监控指标。
项目架构分析
1. 项目结构
add-node-exporter/
├── add-nodeservice.sh # 主执行脚本
├── add-nodeservice.yaml # 主要部署playbook(本地分发模式)
├── prometheus-node-exporter.yml # 备用部署playbook(网络下载模式)
├── ansible.cfg # Ansible配置文件
├── inventory.ini # 主机清单配置
├── node_exporter.service # systemd服务配置文件
└── node_exporter-1.9.1.linux-amd64.tar.gz # Node Exporter二进制包
2. 部署策略对比
项目提供了两种不同的部署策略:
策略A:本地分发模式(add-nodeservice.yaml)
- 优势: 不依赖外网,适合离线环境
- 机制: 从本地分发预下载的二进制文件
- 适用场景: 生产环境、网络受限环境
策略B:在线下载模式(prometheus-node-exporter.yml)
- 优势: 自动获取最新版本,配置灵活
- 机制: 直接从GitHub下载最新二进制文件
- 适用场景: 开发环境、网络畅通环境
技术架构深度分析
1. Ansible配置分析
ansible.cfg配置
[defaults]
host_key_checking = False
- 作用: 禁用SSH主机密钥检查
- 影响: 简化自动化部署,但降低安全性
- 建议: 生产环境应考虑启用密钥检查
inventory.ini主机清单
[tikv]
new-正式tidb-tikv4 ansible_host=172.31.2.21 ansible_user=grata ansible_password='G*.x.H44EunlsdfNC@10*DD' ansible_connection=ssh
[all:children]
tikv
- 目标主机: TiKV数据库节点(TiDB集群组件)
- 认证方式: 密码认证(存在安全风险)
- 网络: 内网IP地址172.31.2.21
2. 服务配置深度解析
systemd服务配置(node_exporter.service)
[Unit]
Description=node_exporter
Wants=network-online.target
After=network-online.target
[Service]
Restart=on-failure
ExecStart=/data/node_exporter/node_exporter-1.9.1.linux-amd64/node_exporter --web.listen-address=:53875
[Install]
WantedBy=multi-user.target
关键配置分析:
- 端口配置: 使用非标准端口53875(而非默认9100)
- 可能原因:避免端口冲突或安全考虑
- 重启策略:
Restart=on-failure确保服务稳定性 - 依赖关系: 等待网络服务就绪后启动

最低0.47元/天 解锁文章
1309

被折叠的 条评论
为什么被折叠?



