A hands-on record of migrating a government log platform off self-hosted ELK onto a domestic stack of Kunpeng servers, Kylin V10 and OceanBase, covering assessment, three migration paths, deployment steps and a cutover acceptance checklist.
Plenty of government units still run a self-hosted ELK stack for logs. The problem isn't the technology — it's compliance. Elasticsearch changed its license at 7.11 and the enterprise features stopped being free; a fork (OpenSearch) exists but still means owning the whole stack. Meanwhile, domestic-computing (xinchuang) acceptance requires a stack that runs on domestic hardware and software. An ELK on X86 servers simply won't pass review.
Moving to a domestic stack means three things: domestic servers, a domestic OS, and a domestic or open-source database. Below is our field record of replacing the log platform for one government agency.
Don't touch anything until you know what you have:
The assessment determines the migration path: small volume with an acceptable outage means a one-shot migration; large volume that can't stop means dual-write. We've seen teams skip this step and discover mid-migration that a critical dashboard depended on a field nobody documented — don't be that team.
We recommend dual-write. It's simple: send each log line twice — once to the old ELK, once to Observe — and compare for a week.
Target environment: Kunpeng 920 servers + Kylin V10 (ARM) + OceanBase (MySQL mode).
# 1. Download the ARM binary
wget https://ob.example.com/releases/observe-arm64.tar.gz
tar -xzf observe-arm64.tar.gz
# 2. Configure the database connection (OceanBase, MySQL protocol)
cat > env <<EOF
DB_HOST=10.0.1.10
DB_PORT=2881
DB_USER=observe
DB_PASS=********
DB_NAME=observe
JWT_SECRET=$(openssl rand -hex 32)
EOF
# 3. Start
./observe --config ./env
Because Observe speaks the MySQL protocol, pointing it at OceanBase means swapping host and port — zero code changes. The same applies to other MySQL-compatible domestic databases such as TiDB or PolarDB.
Dual-write means two copies of sensitive data are in flight, so treat the transition window as higher risk, not lower. Enable field-level scrubbing for phone numbers and ID numbers on the new platform from day one, so nothing sensitive is ever stored in the clear. Restrict access to the new platform to the migration team until cutover, then open it with the same permission model as the old one.
Also decide what happens to the old Elasticsearch cluster. Decommissioning isn't just shutting it down — the disks still hold data. Wipe or physically destroy them per your data-handling policy, and keep a signed record, because auditors will ask what happened to the old copy.