银河麒麟ARM64系统部署Prometheus需匹配架构、规范路径、配置自监控、非root启动并注册systemd服务:一查uname -m确认aarch64;二下linux-arm64包、解压至/opt/prometheus/bin;三配prometheus.yml添加localhost:9090目标;四建prometheus用户并sudo启动验证9090端口;五写systemd服务文件启用持久化。

如果您在银河麒麟操作系统上部署Prometheus监控服务时遇到启动失败、端口无法访问或配置不生效等问题,则可能是由于架构不匹配、依赖缺失或服务未正确注册所致。以下是解决此问题的步骤:
一、验证系统架构与下载对应ARM64二进制包
银河麒麟V10在ARM64(aarch64)和AMD64平台存在显著差异,错误下载x86_64包将导致执行失败或GLIBC版本报错。必须确认当前系统架构并获取完全匹配的Prometheus二进制文件。
1、执行命令检查系统架构:uname -m
2、若输出为aarch64,则需下载后缀为linux-arm64.tar.gz的安装包
3、从官方Release页面获取兼容版本,例如:https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-arm64.tar.gz
4、使用wget下载并校验文件完整性:wget https://.../prometheus-2.48.0.linux-arm64.tar.gz && sha256sum prometheus-2.48.0.linux-arm64.tar.gz
二、解压并配置独立运行环境
直接在/root或临时目录运行可能导致权限冲突或路径不可靠。应创建标准化部署路径,并确保可执行权限与数据目录分离,避免systemd托管前出现权限拒绝。
1、创建专用目录:mkdir -p /opt/prometheus/{bin,conf,data}
2、解压包至bin目录:tar -zxvf prometheus-2.48.0.linux-arm64.tar.gz -C /opt/prometheus/bin --strip-components=1
3、复制默认配置模板:cp /opt/prometheus/bin/prometheus.yml /opt/prometheus/conf/
4、赋予二进制文件执行权限:chmod +x /opt/prometheus/bin/prometheus
三、修改prometheus.yml启用本地自监控
Prometheus默认配置不包含任何抓取目标,若未显式配置,则Web界面将无指标数据且状态页显示“No targets”。必须至少添加本机Node Exporter或自身健康端点作为基础目标。
1、编辑配置文件:vim /opt/prometheus/conf/prometheus.yml
2、在scrape_configs下添加静态目标:- job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
3、确保global块中scrape_interval不超过30s,适配ARM平台资源限制:scrape_interval: 30s
4、保存后执行语法校验:/opt/prometheus/bin/promtool check config /opt/prometheus/conf/prometheus.yml
四、以非root用户方式启动并验证监听
长期以root身份运行监控服务存在安全风险,且麒麟系统SELinux策略可能拦截非标准路径的网络绑定。应创建专用用户并授予必要目录权限,再测试端口监听状态。
1、创建prometheus用户:useradd --no-create-home --shell /bin/false prometheus
2、变更目录所有权:chown -R prometheus:prometheus /opt/prometheus
3、切换用户并前台启动验证:sudo -u prometheus /opt/prometheus/bin/prometheus --config.file=/opt/prometheus/conf/prometheus.yml --storage.tsdb.path=/opt/prometheus/data
4、另开终端检查端口占用:ss -tuln | grep :9090,确认输出含LISTEN状态及prometheus进程名
五、配置systemd服务实现持久化运行
手动启动仅适用于调试,生产环境必须通过systemd托管,否则系统重启后服务中断。需编写符合麒麟OS systemd规范的服务单元文件,并启用自动启动。
1、创建服务文件:vim /etc/systemd/system/prometheus.service
2、写入以下内容(注意路径与用户严格匹配):[Unit] Description=Prometheus Server After=network.target [Service] Type=simple User=prometheus Group=prometheus ExecStart=/opt/prometheus/bin/prometheus --config.file=/opt/prometheus/conf/prometheus.yml --storage.tsdb.path=/opt/prometheus/data --web.listen-address=:9090 Restart=always [Install] WantedBy=multi-user.target
3、重载配置并启用服务:systemctl daemon-reload && systemctl enable --now prometheus.service
4、检查服务状态:systemctl status prometheus.service,确认Active状态为running且无failed提示

















