我的应用程序正在使用Couchbase社区版,由于存储桶数量的限制,多个应用程序共享同一个存储桶。这些应用都使用自己的应用专用密钥前缀。
看起来其中一个应用程序行为不端并删除了与其密钥前缀无关的文档。有没有办法查询日志以获得文档删除审核日志我可以用来注意删除?
为了排除故障,我需要删除密钥,也许还需要ip。获取已删除的密钥足以证明我的应用程序可以获得自己的存储桶。
答案 0 :(得分:0)
您可以使用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