【问题标题】:Is there a way to get Document deletion logs in Couchbase?有没有办法在 Couchbase 中获取文档删除日志?
【发布时间】:2018-01-11 20:47:06
【问题描述】:

我的应用正在使用 Couchbase 社区版,由于存储桶数量的限制,多个应用共享同一个存储桶。这些应用程序都使用自己的应用程序特定键前缀。

看起来其中一个应用程序行为不端并删除了与其键前缀无关的文档。有没有办法查询日志以获得可用于通知删除的文档删除审核日志?

为了进行故障排除,我需要删除的密钥,也许还需要 ip。获取已删除的密钥足以证明我的应用程序拥有自己的存储桶。

【问题讨论】:

    标签: couchbase audit audit-logging nosql


    【解决方案1】:

    您可以使用 Couchbase 数据库更改协议 (DCP) 客户端来监控删除。请参阅 java-dcp-client 以获取将记录删除和突变消息的示例客户端。

    Mutation: MutationMessage [key: "test123", vbid: 20, cas: 1502245791579701248, 
        bySeqno: 1, revSeqno: 1, flags: 0, expiry: 0, lockTime: 0, 
        clength: 67]
    Deletion: DeletionMessage [key: "test123", vbid: 20, cas: 1502245805446594560, 
        bySeqno: 2, revSeqno: 2]
    

    检查新创建的文档的到期时间,看看您是否无意中设置了文档的生存时间。

    如果使用端口 8091 上的 REST 端点执行删除,它们将在 http_access.log 文件中报告。请参阅Using Logs (4.5),了解有关在您的环境中何处查找日志文件的信息。这也会为您提供发出请求的机器的 IP 地址。

    http_access.log:127.0.0.1 - ui-token [08/Aug/2017:22:30:05 -0400] 
        "DELETE /pools/default/buckets/default/docs/test123 HTTP/1.1" 200 2 
        http://localhost:8091/ui/index.html Mozilla/5.0 (Macintosh; Intel Mac
        OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) 
        Chrome/59.0.3071.115 Safari/537.36
    

    【讨论】:

    • 嗨,杰夫。感谢您的回复。我们进行客户端日志记录,但并非所有客户端都使用相同的库,其中一些没有此功能。 http 日志将包含有关 API 调用的信息,例如集群、节点、存储桶、视图、cdcr、压缩和用户 api。我认为 CB 没有用于文档的 api(有一段时间它是一个单独的项目,我认为它已经停产了)。在任何情况下,它都没有在我的情况下使用。
    • 嗨@JenoLaszlo。我提到的 DCP 客户端将直接与集群通信,因此您至少会知道文档何时被删除。但我想您必须能够单独运行应用程序,否则您无法确定哪个客户端应用程序负责删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2020-06-19
    • 2023-03-07
    相关资源
    最近更新 更多