在linux服务器上部署prometheus node exporter需依次完成:一、下载解压二进制包并创建软链接;二、创建非特权用户并设置目录与文件权限;三、配置systemd服务单元文件并启用开机自启;四、开放9100端口并启动服务;五、通过curl和telnet验证/metrics端点可用性。

如果您希望在Linux服务器上部署Prometheus Node Exporter以采集系统级指标,则需完成二进制安装、服务配置与端口暴露等关键操作。以下是实现此目标的具体步骤:
一、下载并解压Node Exporter二进制包
Node Exporter官方提供预编译的静态二进制文件,适用于主流Linux发行版,无需编译即可运行,降低部署复杂度。
1、使用wget命令从Prometheus官方GitHub发布页下载最新稳定版Node Exporter压缩包,例如:wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
2、执行tar命令解压至/opt目录:tar -xvzf node_exporter-1.6.1.linux-amd64.tar.gz -C /opt/
3、创建软链接便于版本管理:ln -sf /opt/node_exporter-1.6.1.linux-amd64 /opt/node_exporter
二、创建专用用户并设置文件权限
为提升安全性,避免以root身份运行导出器,应创建非特权用户并限制其仅对Node Exporter目录具备最小必要访问权限。
1、添加名为node_exporter的系统用户,禁用登录shell:useradd --no-create-home --shell /bin/false node_exporter
2、将/opt/node_exporter目录所有权递归更改为该用户:chown -R node_exporter:node_exporter /opt/node_exporter
3、修改node_exporter二进制文件权限,确保仅所有者可执行:chmod 755 /opt/node_exporter/node_exporter
三、配置systemd服务单元文件
通过systemd托管Node Exporter进程,可实现自动启动、崩溃重启及日志集成,是生产环境推荐的服务管理方式。
1、创建systemd服务文件:touch /etc/systemd/system/node_exporter.service
2、向该文件写入以下内容(注意路径与用户匹配):echo '[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/opt/node_exporter/node_exporter \ --web.listen-address=":9100" \ --web.telemetry-path="/metrics" [Install] WantedBy=multi-user.target' > /etc/systemd/system/node_exporter.service
3、重载systemd配置并启用开机自启:systemctl daemon-reload && systemctl enable node_exporter
四、开放防火墙端口并启动服务
Node Exporter默认监听TCP 9100端口,需确保系统防火墙允许外部监控服务器发起HTTP请求获取/metrics数据。
1、若使用firewalld,执行命令放行端口:firewall-cmd --permanent --add-port=9100/tcp && firewall-cmd --reload
2、启动Node Exporter服务:systemctl start node_exporter
3、验证服务状态是否为active (running):systemctl status node_exporter
五、验证指标端点可用性
确认Node Exporter已正常响应HTTP请求并返回文本格式的Prometheus指标,是验证部署成功的最终依据。
1、在本机执行curl命令检查本地端点:curl -s http://localhost:9100/metrics | head -n 5
2、观察输出是否包含以# HELP开头的注释行及node_boot_time_seconds等标准指标名,非空且无"Connection refused"错误即表示成功
3、从Prometheus服务器所在节点执行telnet测试连通性:telnet your_linux_host_ip 9100










