路径地图 — 什么在哪里
数据湖的文件分散在主机和容器内两个世界。混淆所在的位置是大多数问题的根源。本页是一张单页地图,回答"那个文件在哪里"。
需要牢记的三条
- 要编辑的文件在主机的
/etc/kopens/下。 - 容器内的
/opt/kopens/plantpulse-platform/…/conf/是生成物。即使编辑后,下次启动也会消失。 - 数据·备份·临时文件在 Docker 卷中,即使重建容器也会保留。
主机
操作者编辑的文件 — /etc/kopens/
| 路径 | 内容 | 编辑方式 | 跨节点复制 |
|---|---|---|---|
/etc/kopens/plantpulse-platform.env | 密钥边车 — 服务密码·API 密钥·TLS 证书。权限 0600 | 密码用 passwd.sh。非密钥值直接编辑 VAR=값 行 | 按原样复制 |
/etc/kopens/platform.node.env | 节点文件 — 仅对本节点为真的值(PP_MASTER_IP·PP_KAFKA_ADVERTISED_HOST·DOCKER_PP_EXTERNAL_IP·PP_NODE_ID) | 直接编辑 | 绝不复制 |
/etc/kopens/conf/ | 配置模板 33 个(*.template)。绑定挂载到容器的 plantpulse-datalake-cli/config/templates | 直接编辑 → 修改模板 | 根据需要 |
/etc/kopens/conf.dist/ | 上次部署的镜像实际上是模板默认值(三路比较的基线)。以只读方式挂载到容器 | 不要修改 — 每次部署工具自动更新 | — |
/etc/kopens/conf.backup/<시각>/ | 模板重新播种时工具保留的备份 | 仅供参考 | — |
/etc/kopens/ca/ | 跨节点共享 CA(CA.crt·CA.key) | 仅在移动到第二个节点时 | 首个节点 → 后续节点 |
/etc/kopens/workers.roster | 集群工作节点名单 <id> <ip> | 仅 worker-add.sh 系列工具 | — |
/etc/kopens/rotation.journal | 密码轮换进度记录(0600)。失败轮换的续接依据 | 不要修改 | — |
运维脚本 — /opt/kopens/plantpulse-platform-docker/
| 路径 | 内容 |
|---|---|
bin/ | 所有运维动词 — up.sh down.sh restart.sh restart-datalake.sh status.sh logs.sh shell.sh passwd.sh rotate-secret.sh update.sh backup.sh doctor.sh ops-check.sh … |
bin/env.sh | 主机端默认值和在主机上计算的值(核心·内存·磁盘)。bin/env.sh --print 打印"此节点当前有效值及其来源" |
compose/docker-compose.yml | 容器定义。数据湖收到的环境变量·公开端口·卷·内存限制 |
compose/platform.env.example | 操作者打开的那个文件 — 所有可用变量及其注释。从此处选择行,转抄到边车或节点文件中(生成物故不直接编辑) |
compose/platform.node.env.example | 节点文件的模板 |
不要直接编辑
bin/env.sh某些旧文档说"在 env.sh 添加 export"。虽然可用但在安装树内,容易被更新·重装破坏。改为在边车或节点文件中以 VAR=값 形式写入相同值,则不在安装树内,得以保留,且优先级更高 → 值的决定顺序
Docker 卷
主机的命名卷。即使用 remove.sh 删除容器,卷仍保留。
| 卷 | 容器内路径 | 内容 |
|---|---|---|
pp-data | /data1/pp-data (PP_DATA_DIR) | 所有数据 — Cassandra·PostgreSQL·Valkey·MinIO·Kafka·Spark 事件日志·逻辑转储·意外停止记录 |
pp-temp | /data1/pp-temp (PP_TEMP_DIR) | 临时文件。pd clean 会清空。不要在此存放长期文件 |
pp-backup | /data1/pp-backup (PP_BACKUP_DIR) | 物理备份存储(pgbackrest/·medusa/)·备份历史·控制台配置版本 |
pp-security | /var/security | TLS 材料。plantpulse-certs 容器生成,数据湖和应用读取 |
容器内
进入容器的方式有两种。运行单个命令用 docker exec,运行多个命令则打开 shell。
docker exec plantpulse-datalake pd status # 하나만
/opt/kopens/plantpulse-platform-docker/bin/shell.sh # 셸 열기 (= docker exec -it … bash)
运行时树 — PP_HOME=/opt/kopens/plantpulse-platform
| 路径 | 内容 |
|---|---|
plantpulse-datalake-cli/ | pd 本身。bin/pd·cmd/·lib/·services/order.txt·config/defaults.env·config/render.map |
plantpulse-datalake-cli/config/templates/ | 主机 /etc/kopens/conf 挂载的位置。容器内看到的是主机副本 |
plantpulse-datalake-cli/config/templates.dist/ | 主机 /etc/kopens/conf.dist 以只读方式挂载的位置 |
plantpulse-storage/cache/valkey·db/postgres·db/cassandra·object/minio | 存储网四个。各自 bin/ conf/ logs/ |
plantpulse-analytics/spark·hive·gravitino·kyuubi | 分析网四个 |
plantpulse-messaging/kafka·mqtt | 代理两个 |
plantpulse-timeseries/engine·dashboard | 时序引擎和 Grafana |
plantpulse-cep/·plantpulse-data-gateway/ | Tomcat 上的 Web 模块。配置位于 config/,日志位于 server/logs/ |
plantpulse-workflow/temporal·kestra | 工作流引擎两个 |
plantpulse-datalake-admin-api/ | 管理控制台后端。webapp/ 显示屏幕,logs/pd-events.jsonl 事件日志 |
plantpulse-backup/ | 物理备份工具包(bin/backup.sh)和 systemd 定时器 |
pd env 以本节点的实际值打印此列表。不要死记路径,就用这个命令。
docker exec plantpulse-datalake pd env
生成物 — 编辑后会消失的东西
pd start 每次渲染模板并写到下列位置。第一行是 # GENERATED by pd from <템플릿> - edit /etc/kopens/plantpulse-platform.env instead。
| 生成物 | 源模板(主机 /etc/kopens/conf/) |
|---|---|
plantpulse-storage/db/postgres/conf/postgresql.conf·pg_hba.conf | postgresql.conf.template·pg_hba.conf.template |
plantpulse-storage/db/cassandra/conf/cassandra.yaml·jvm-server.options | cassandra.yaml.template·jvm-server.options.template |
plantpulse-storage/cache/valkey/conf/valkey.conf | valkey.conf.template |
plantpulse-messaging/kafka/config/kafka.properties·jaas.conf | kafka.properties.template·kafka-jaas.conf.template |
plantpulse-messaging/mqtt/conf/config.xml·auth.properties | hivemq.xml.template·plantpulse-mq-auth.properties.template |
plantpulse-cep/config/plantpulse-cep.properties | plantpulse-cep.properties.template |
plantpulse-data-gateway/config/plantpulse-jdbc.properties·plantpulse-data-gateway.properties | plantpulse-jdbc.properties.template·plantpulse-data-gateway.properties.template |
完整对照表见 配置文件在哪里 — 模板列表。
日志
| 内容 | 位置 | 查看方式 |
|---|---|---|
启动日志 — pd start 连接服务启动器输出 | /var/log/plantpulse-datalake.log | pd logs (BOOT 标签) |
| 容器视角的启动副本 | /var/log/plantpulse-boot.log | tail |
| 服务日志 40 余个 | 各模块的 logs/ — 列表见 pd logs --list | pd logs [서비스] |
| 上述全部合并的容器日志 | Docker | 从主机执行 bin/logs.sh plantpulse-datalake |
| 事件日志 — 谁在何时启动/停止/备份 | plantpulse-datalake-admin-api/logs/pd-events.jsonl | 控制台事件屏幕,tail |
| 意外停止记录 | /data1/pp-data/pd/downtime/ | pd downtime |
其他位置
| 内容 | 位置 |
|---|---|
| TLS 材料 | /var/security/plantpulse/ (.certs_generated 有生成记录) |
| PostgreSQL 逻辑转储 | /data1/pp-data/postgres/dump/ |
| 物理备份存储·历史·锁 | /data1/pp-backup/ (pgbackrest/·medusa/·history.jsonl·pd-backup.lock) |
| 备份工具配置 — 含密码,不要粘贴 | /etc/pgbackrest/pgbackrest.conf·/etc/medusa/medusa.ini (启动时 pd 写入) |
| 备份计划覆盖 | /data1/pp-data/backup/schedule.json |
| 镜像身份 | /etc/plantpulse-image.env·/etc/plantpulse-modules.json |