Skip to content

你的数据

什么会离开你的主机、如何阻止它,以及数据到达之后 Dozzle Cloud 存了些什么。

连接不会把你的 Dozzle 暴露出去

你的 Dozzle 向 Cloud 发起一条出站连接。没有开放任何入站入口,没有转发任何端口,Cloud 只能通过你的实例主动建立的那条连接访问它。一旦断开连接,这个访问立刻结束。

连接也不会给自托管的 Dozzle 加上认证。这是另一个独立而且重要的问题:Dozzle 默认没有登录。 任何能在网络上访问到它的人都能看你的日志。如果你把 Dozzle 暴露到了公网,或者和别人共用网络,请在实例本身上配置认证。无论你连不连 Cloud,这一点都成立。

容器操作 —— 启动、停止、重启 —— 会一直被你的实例拒绝,除非你用 DOZZLE_ENABLE_ACTIONS 打开。见操作

控制哪些内容会被转发

最有效的隐私手段是一开始就不发送。默认情况下,只要实例处于连接状态,每个运行中的容器都会把日志流式发送到 Cloud。如果某些容器的 info 级碎碎念没有任何诊断价值,或者它处理的内容你更希望留在主机上,可以用标签过滤或彻底关闭。

dev.dozzle.cloud.min_level

效果
(未设置)转发全部日志行。默认值。
disabled完全跳过该容器,不向 Cloud 转发任何日志。
trace等同于未设置,因为 trace 是最低级别,一切都会转发。
debug / info / warn / error / fatal只转发该级别及以上的日志行。未识别出级别的行始终会通过。

无法识别的值(比如把 warn 拼成 warningwran)会被记录为错误并忽略,容器会像没设置标签一样转发全部内容。

标签在日志读取器启动时读取。对运行中的容器修改标签,要等容器重启后才会生效。

yaml
services:
  zigbee2mqtt:
    image: koenkk/zigbee2mqtt
    labels:
      # 只把 warn/error/fatal 转发到 Dozzle Cloud
      - dev.dozzle.cloud.min_level=warn

  noisy-debug-tool:
    image: example/debug
    labels:
      # 这个容器什么都不发送
      - dev.dozzle.cloud.min_level=disabled

过滤在日志离开主机之前、在你的 Dozzle 实例上完成,所以被丢弃的行永远不会走网络,也不会计入你的套餐额度。Dozzle 里的本地日志查看不受影响。

Cloud 存了什么

  • 从你已连接实例转发过来的日志行,用于全文搜索。
  • 命中你规则的事件和告警,连同它们的调查和发现。
  • 容器与主机元数据 —— 名称、镜像、状态、资源占用。
  • 你的账号 —— 邮箱地址、套餐、通知渠道设置。
  • 与 agent 的聊天记录

所有内容都只属于你的账号,其他用户看不到你的数据。存储的数据在套餐保留期内保留,之后自动删除。见套餐与限制

API 密钥

每个已连接的实例用自己的 API 密钥认证。密钥使用 BLAKE2b 哈希存储,支持过期时间,从不明文保存。

在 Instances 页面删除一个密钥,会立即且永久地断开那个实例。密钥无法恢复也无法重新挂回去 —— 重新连接实例以获取新的。如果你认为某个密钥泄露了,删掉它然后重新连接。这就是完整的补救措施:旧密钥在被删除的那一刻就失效了。

登录

Cloud 使用 GitHub 或 Google 登录。不需要另外创建密码,Cloud 也永远看不到你的 GitHub 或 Google 密码。如果你用其中一个注册,之后用同一个邮箱通过另一个登录,进的是同一个账号。

不注销账号也能停止数据采集

  1. 在 Instances 页面删除各实例的 API 密钥,转发立即停止。
  2. 在 Channels 页面关掉所有渠道,这样什么都不会被投递。

已有的历史会在你套餐的保留期内自行过期。

注销账号

目前还没有自助删除按钮。请用账号对应的邮箱地址发信到 amir@dozzle.dev 申请删除。如果你在付费套餐上,先在设置里取消,以免再次扣费。

在此之前或者作为替代方案,上面的步骤已经能让你自己清掉几乎所有内容:删除 API 密钥会停止一切采集,存储的数据也会随保留期过期。

基于 MIT 许可证发布。开源项目,由 Docker OSS 赞助。