在统信UOS上成功部署Prometheus监控服务:下载适配AMD64的二进制包,解压至/opt/prometheus,创建prometheus受限用户并授权,配置systemd服务启用热加载,放行本地9090端口,实现安全合规的主机指标采集与Web访问。

您需要在统信UOS系统上部署一套可用的Prometheus监控服务,能采集主机指标、提供Web界面访问、支持配置热加载,并满足UOS安全基线要求——不能直接用root运行,不能暴露默认端口到公网,也不能跳过用户隔离步骤。
下载并解压Prometheus二进制包
前往Prometheus官方发布页(https://github.com/prometheus/prometheus/releases),下载适配统信UOS架构的Linux AMD64版本,例如v2.50.0。注意不要选arm64或darwin版本,否则执行会报“cannot execute binary file”错误。
将压缩包上传至/opt/src目录,执行解压命令:sudo tar -zxvf prometheus-*.linux-amd64.tar.gz -C /opt。
重命名解压目录为统一路径:sudo mv /opt/prometheus-*.linux-amd64 /opt/prometheus。
创建数据存储目录:sudo mkdir -p /opt/prometheus/data。这一步必须做,否则启动时会因无法写入TSDB而立即退出,日志只显示“permission denied on data directory”。
创建受限运行用户并授权
执行命令创建专用用户:sudo useradd -r -s /sbin/nologin prometheus。该用户无登录权限、无shell交互能力,符合UOS等保三级对服务账户的强制要求。
修改整个Prometheus目录属主:sudo chown -R prometheus:prometheus /opt/prometheus。
切换用户验证二进制可用性:sudo -u prometheus /opt/prometheus/prometheus --version。若返回版本号说明权限和路径均正确;若提示“command not found”,说明路径拼写错误或未赋予x权限——但二进制默认有执行位,通常只是路径输错。
配置systemd服务实现开机自启
第一步:创建服务单元文件:sudo vim /etc/systemd/system/prometheus.service。
第二步:写入以下内容(请严格按格式复制,缩进与换行不可省略):
[Unit]
Description=Prometheus Monitoring
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/opt/prometheus/prometheus \
--config.file=/opt/prometheus/prometheus.yml \
--storage.tsdb.path=/opt/prometheus/data \
--web.enable-lifecycle \
--web.listen-address=:9090
Restart=on-failure
RestartSec=5
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target
【注意:--web.enable-lifecycle必须启用】,否则后续无法通过HTTP POST /-/reload触发配置热加载,每次改完yml都得重启服务,监控会中断。
第三步:重载配置并启用服务:sudo systemctl daemon-reload && sudo systemctl enable prometheus && sudo systemctl start prometheus。
第四步:检查状态:sudo systemctl status prometheus,确认输出中包含active (running)且进程UID为prometheus。
开放本地端口并验证连通性
UOS默认启用firewalld,需手动放行9090端口:sudo firewall-cmd --permanent --add-port=9090/tcp && sudo firewall-cmd --reload。
在本机浏览器访问http://127.0.0.1:9090,能看到Prometheus图形界面即表示服务已就绪。
若页面打不开,先执行curl -I http://127.0.0.1:9090,返回HTTP 200说明服务正常,问题出在浏览器代理或网络设置;返回Connection refused则说明服务未运行或监听地址被绑定到127.0.0.1以外的IP。

















