2017-08-04 11 views
1

私のアプリはCouchbase Community Editionを使用しています。バケットの数に制限があるため、複数のアプリが同じバケットを共有しています。アプリはすべて独自のアプリ固有のキープレフィックスを使用しています。Couchbaseでドキュメント削除ログを取得する方法はありますか?

アプリの1つが正しく動作していないようで、キープレフィックスに関連付けられていないドキュメントが削除されているようです。削除を通知するために使用できる文書削除監査ログを持つようにログを照会する方法はありますか?

トラブルシューティングのために、削除されたキーとおそらくipが必要です。削除されたキーを取得するだけで、自分のバケツを取得するアプリケーションを正当化するのに十分です。

答えて

0

Couchbase Database Change Protocol(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 
+0

hi Jeff。応答していただきありがとうございます。私たちはクライアントサイドロギングを行いますが、すべてのクライアントが同じlibを使用しているわけではなく、そのうちのいくつかはこの機能を持っていません。 httpログには、クラスタ、ノード、バケット、ビュー、cdcr、圧縮、ユーザーapiなどのAPI呼び出しに関する情報があります。私はCBがドキュメント用のAPIを持っているとは思わない(それはしばらくの間、別個のプロジェクトだったし、中断されたと思う)。いずれにしても私の場合は使用されていません。 –

+0

こんにちは@JenoLaszlo。私が言及したDCPクライアントは、クラスタに直接話すので、ドキュメントがいつ削除されたかを知ることができます。しかし、私はあなたがアプリケーションを単独で実行することができなければならないだろうと思っています。そうしないと、どのクライアントアプリケーションが削除を担当しているのか分からなくなります。 –

関連する問題