给出经金融客户验证的炬鲸 OBSERVE 信创部署方案,覆盖麒麟 V10 + 鲲鹏 920 + 达梦 DM8 + 东方通 TongWeb,含安装步骤、适配注意点与迁移建议。
信创项目的难点往往不在业务系统,而在周边的支撑系统。日志、监控、链路追踪这类可观测平台,过去大多只支持 x86 + CentOS + MySQL 的组合,一遇到国产 CPU 和国产操作系统就装不上、跑不起来。炬鲸 OBSERVE 从架构上做了国产化适配,本文给出一套经过验证的部署方案。
适配不是"重新编译一遍"那么简单,而是每一层都要单独处理:ARM64 下的二进制依赖、达梦数据库的 SQL 方言差异、东方通中间件的类加载机制,任何一环没验证过,上生产都会出问题。
这套环境在某金融客户的测试集群上跑过,配置如下:
| 组件 | 型号 / 版本 |
| --- | --- |
| CPU | 鲲鹏 920(ARM64) |
| 操作系统 | 麒麟 V10 SP2 |
| 数据库 | 达梦 DM8 |
| 中间件 | 东方通 TongWeb |
炬鲸 OBSERVE 提供 ARM64 的安装包,无需交叉编译;数据库层通过 JDBC 适配达梦,中间件层支持部署到 TongWeb。
第一步,解压安装包并初始化:
tar -xzf jjhub-observe-arm64.tar.gz
cd jjhub-observe
./setup.sh --db-type dm8 --db-host 10.0.0.12 --db-port 5236 --db-user observe --db-password '******'
setup 脚本会自动检测 CPU 架构和操作系统版本,按需替换 glibc 依赖,并生成达梦的建表脚本。
第二步,初始化达梦数据库。把脚本交给 DBA 执行,或者用 dm 自带的 disql 工具跑:
disql SYSDBA/******@10.0.0.12:5236 < schema_dm8.sql
第三步,启动服务并做健康检查:
./bin/observe-server start
curl -s http://127.0.0.1:8080/api/health
返回 {"status":"ok"} 即启动成功。
JDBC 驱动:达梦的 JDBC 驱动版本要和 DM8 数据库版本严格对应,混用会报 not support 错误。驱动包放在 lib/ 目录下,别用 Maven 仓库里那个老版本。另外达梦默认开启大小写敏感,建表时表和字段名要统一成大写,否则运行时 SQL 会报对象不存在。
时间字段:达梦的 TIMESTAMP 精度默认到秒,链路追踪需要毫秒级时间戳。建表时显式指定 TIMESTAMP(3),并在 JDBC URL 里加 compatibleMode=oracle 参数,避免精度丢失。这个坑很隐蔽——数据能写进去,但所有 span 的时间都四舍五入到秒,排查时对不上号。
性能基线:ARM64 环境下做一次压测校准很有必要。实测 16C 的鲲鹏 920 单节点可稳定支撑 3 万 TPS 的日志写入,CPU 占用约 60%。上生产前用 ./bin/bench --write 30000 --duration 5m 跑一遍,别拿 x86 的数字直接套。
部署过程中最容易碰到的几个报错,都留个底:
error while loading shared libraries: libc.so.6——说明二进制和系统 glibc 不匹配,确认用的是 ARM64 包而不是 x86 包,再核对麒麟版本和安装包要求的 glibc 版本。disql: command not found——达梦客户端工具没装或没加进 PATH,安装包通常在 /dm8/bin 下。Connection refused——先确认达梦监听端口 5236 已放通,再确认 dm.ini 里没有绑定到 127.0.0.1。这类问题在 x86 环境里几乎不会出现,所以信创部署一定要预留足够的联调时间,别按 x86 的经验排期。
存量数据从 x86 迁移到信创环境时,建议先迁数据、再切流量:用导出工具把历史日志和指标快照导成 Parquet,导入新集群后再把采集端的 endpoint 逐步切过去。灰度切换期间新旧集群并行运行两周,确认指标曲线和告警触发一致后再下线旧集群。
还有一个容易忽略的点:采集端 Agent 也要有 ARM64 版本。切到鲲鹏主机后,如果 Agent 还是 x86 的,靠系统兼容层跑会白白损失一部分性能,也容易在 eBPF 探针上出兼容问题。
信创不是把软件"重新编译一遍",而是数据库、中间件、操作系统每一层都要真实验证。上面的方案已经过实际客户环境检验,可以直接参考。