国产化部署不等于换个安装包。本文讲在 ARM 国产服务器和国产操作系统上部署可观测平台的架构选择、依赖适配、性能验证,以及排查顺序和常见坑。
国产 CPU 主要分飞腾、鲲鹏(ARMv8),加上龙芯(LoongArch)和海光/兆芯(x86 兼容)。同一套代码要在多种架构上跑,最省事的方式是容器化:为不同架构分别构建镜像,用多架构 manifest 分发。
docker buildx build --platform linux/amd64,linux/arm64 \
-t registry.local/observe:2.5 --push
应用侧保持无状态,数据层(存储、索引)建议用国产数据库或兼容 MySQL 协议的数据库,跑在裸金属或独立实例上,别和查询层抢资源。
麒麟(Kylin)和统信(UOS)都是基于 Linux 的国产发行版,适配重点在依赖库和运行时:
| 项目 | 说明 |
| --- | --- |
| glibc 版本 | 老版本麒麟的 glibc 可能偏低,二进制需用旧版本构建或静态链接 |
| Java/Go 运行时 | 用官方 ARM64 构建,避免 x86 转译的性能损耗 |
| 时间同步 | chrony 统一对时,链路追踪对时钟很敏感 |
| 系统库 | 部分系统库(如 libssl)版本差异,打包时一并带入 |
一个常被忽略的点:麒麟和统信默认启用了 SELinux/AppArmor 类安全模块,采集 Agent 读日志、写 socket 可能被拦。排查「数据收不到」时,先确认安全策略放行,再看文件权限和路径。
国产平台和 x86 的差异不是功能,是性能曲线。上线前做一组固定基准:
把基准结果和原 x86 环境对比,差距超出预期先定位是 I/O、CPU 还是存储,再决定加节点还是调参数。
exec format error,多半是镜像架构和节点不一致。国产化部署的验收标准不变:写入不积压、查询不超时、链路能还原。平台在国产环境上跑稳,信创改造才算真正落地。