第 17 章 · ClickHouse 运维与可观测

四个交互演示: ① 配置加载优先级 · ② SYSTEM 命令速查 · ③ 备份策略决策树 · ④ Prometheus 指标看板

config.xml + config.d/*.xml + 环境变量 → 合成配置

点下面的「源」开关,看「合成结果」如何被一层层覆盖。规则:先读 main,再按字母序合并 config.d 下的文件,最后应用环境变量。同名节点默认覆盖。

① /etc/clickhouse-server/config.xml
基础配置,包级别管理,不要直接改它
<clickhouse>
  <listen_host>127.0.0.1</listen_host>
  <tcp_port>9000</tcp_port>
  <http_port>8123</http_port>
  <max_server_memory_usage>10737418240</max_server_memory_usage>
  <merge_tree>
    <parts_to_throw_insert>300</parts_to_throw_insert>
  </merge_tree>
</clickhouse>
② config.d/01_listen.xml
运维改成对外监听
<clickhouse>
  <listen_host>0.0.0.0</listen_host>
</clickhouse>
③ config.d/02_prometheus.xml
追加监控端点(main 中没有,纯新增)
<clickhouse>
  <prometheus>
    <endpoint>/metrics</endpoint>
    <port>9363</port>
    <metrics>true</metrics>
    <asynchronous_metrics>true</asynchronous_metrics>
  </prometheus>
</clickhouse>
④ config.d/03_merge.xml
扩大单分区 part 上限,配合大批写入
<clickhouse>
  <merge_tree>
    <parts_to_throw_insert>3000</parts_to_throw_insert>
    <parts_to_delay_insert>1000</parts_to_delay_insert>
  </merge_tree>
</clickhouse>
⑤ 环境变量
CLICKHOUSE_MAX_SERVER_MEMORY_USAGE=21474836480 (20 GB)
export CLICKHOUSE_MAX_SERVER_MEMORY_USAGE=21474836480
→ 合成后的实际配置 (内存里这才是真的)

    
实操建议: 永远只改 config.d/ 与 users.d/ 下的文件; 升级 deb/rpm 包不会覆盖, 也方便用 ConfigMap / Ansible 管理.

SYSTEM 命令五家族速查

点左侧分类,看右侧每条命令的解释 + 典型使用场景。

备份方案选择决策树

根据 4 个维度选出最适合你的备份策略, 并给出可直接复制的命令.

① 你的数据量级是?
② 备份目标存储?
③ 多久跑一次, 保留多久?
④ 是否需要选择性恢复 (按表/分区)?
⏳ 选完 4 个问题就推荐方案

Prometheus 关键指标卡片化展示

点击下面的 「模拟事件」 按钮观察相应指标颜色 / 数值变化, 体验生产环境告警长什么样.

QPS (近 1 分钟, 5s 一格)
单查询平均耗时 ms (近 1 分钟)
真实搭法: 1) config.d/prometheus.xml 启用 9363 端口; 2) Prometheus scrape; 3) Grafana ID 14192 一键 import.