给出炬鲸 OBSERVE 在麒麟 V10 + 鲲鹏 920 + 达梦 DM8 信创环境下的完整部署实例:组件选型、达梦初始化与方言配置、系统调优、性能压测数据与验收建议。
信创环境不是"能不能跑"的问题,而是"跑得稳不稳、性能掉不掉、生态全不全"。炬鲸 OBSERVE 完整适配了国产 CPU、操作系统和数据库,下面给出一套在麒麟 V10 + 鲲鹏 920 + 达梦 DM8 上的部署实例和几个关键坑。
我们实测的这套组合:
| 组件 | 选型 |
|------|------|
| CPU | 鲲鹏 920(ARM64) |
| 操作系统 | 麒麟 V10 SP3(aarch64) |
| 数据库 | 达梦 DM8(存储配置/告警/用户) |
| 对象存储 | 兼容 S3 的 MinIO(存日志冷数据) |
炬鲸 OBSERVE 本身是纯 Go 编写,编译时指定 GOOS=linux GOARCH=arm64 即可产出 ARM64 二进制,不存在指令集兼容问题。官方镜像同时提供 amd64 和 arm64 两个 tag,直接 docker pull 对应架构即可。对象存储建议单独规划:日志冷数据体积增长很快,MinIO 支持横向加节点,别和检索集群抢磁盘。采集 agent 建议以 DaemonSet 方式部署在每台业务节点上,采集本机日志走本地回环,不占跨节点带宽。
达梦和 MySQL/PostgreSQL 在 JDBC 连接串、方言上有差异,初始化时注意三点。
先创建库和用户(DM 默认库名 DAMENG):
CREATE USER jjhub IDENTIFIED BY "JjHub@2026";
GRANT DBA TO jjhub;
炬鲸的配置文件中,把数据源指向达梦,并显式声明方言:
datasource:
driver: dm.jdbc.driver.DmDriver
url: jdbc:dm://10.0.2.11:5236?schema=JJHUB
username: jjhub
password: "JjHub@2026"
dialect: dm
启动后建议跑一遍自带的 migrate 命令让系统自动建表,别手动导 SQL——达梦对部分 MySQL 语法(如 ON DUPLICATE KEY、反引号)不支持,手动导入容易报错。另外达梦的字段长度语义和 MySQL 有差别,建表时若提示长度超限,优先检查是否把字符数当成了字节数。达梦建库时建议使用 UTF-8 字符集,否则中文告警规则和注释可能出现乱码。
ulimit -n 默认 1024 根本不够,加到 65535:echo "root soft nofile 65535" >> /etc/security/limits.conf。setenforce 0 临时放开或为 agent 端口加 semanage 放行规则。noatime,日志写入是典型的小块随机写,noatime 能省掉每次读写的元数据更新开销。echo never > /sys/kernel/mm/transparent_hugepage/enabled,否则可能出现偶发的内存回收抖动。在鲲鹏 920 双路 128 核、512G 内存的单机上,我们压测了写入与检索:
压测同时监控了 GC 停顿:Go 进程在 8 万条/秒写入下 P99 GC 停顿约 3ms,对检索延迟影响可忽略。达梦开启归档模式后写入 QPS 会下降约 15%,若配置和告警写入量不大,可考虑关闭归档改用手工备份。
结论:这套信创组合可以承载中型规模的生产负载,不必担心"国产化 = 性能打折"。唯一需要提前规划的是达梦的 license 和存储扩展,冷数据建议尽早分层到对象存储。