0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Couchbase Server 管理者として知っておきたいこと〜ログ管理

Last updated at Posted at 2021-05-27

はじめに

データプラットフォーム管理者として押さえておくべきことの一つとして、障害や性能問題が発生した時の原因究明のために、システムからログを収集し、それを製品のサポート窓口や、社外の識者へ提供する際に何を行わなければならないかを把握しておくことがあります。

また、システム監査の観点から、そのような活動において、どのような情報が社外へ流出されるのか(されないのか)、を説明できるようになっておくことも重要です。

本稿では、このような観点から、Couchbase Serverにおけるログの扱いについて解説します。

ログの外部提供

ログ・リダクション

Couchbase Serverには、ログ収集時に、機密情報または個人識別情報を削除することのできるオプションがあります。

削除される情報

  • JSON ドキュメント内の キーとバリュー
  • ユーザー名
  • クエリ文に含まれるドキュメントのフィールド名
  • 製品導入の際に尋ねられた名前とメールアドレス
  • ドキュメントの拡張属性 (xattrs: extended attributes ) 

ログ収集方法

以下の複数の方法で、サポートへの提供用にログを収集することができます。

WEB管理コンソールからの実行

WEB管理コンソールから、直感的な操作でログを収集することができます。ネットワーク的に許される場合、直接サポートへログを送付することも可能になっています。

コマンドによる実行

/opt/couchbase/cbcollect_info <options> <output_file>

以下が、指定可能なオプションです。

  • --tmp-dir
  • --log-reduction-level
  • --upload-host
  • --customer
  • --upload-proxy
  • --ticket

コマンドによる実行(バックグラウンド実行)

$ couchbase-cli collect-logs-start -c <ip> -u Admin -p password \
--all-nodes --redaction-level partial
$ couchbase-cli collect-log-status -c <ip> -u Admin -p password
$ couchbase-cli collect-log-stop -c <ip> -u Admin -p password

REST APIによる実行例

curl -X POST http://localhost:8091/startLogsCollection \
-u Administrator:password \
-d logRedactionLevel =partial \
-d logRedactionSalt =Wl1XrXNuHWzr+ke7gnuUaKAtML6TFIynjhImeMYHEgI= \
-d nodes=*

ログファイル

ファイル名 ログ内容
cbcollect_info.log cbcollect_infoのパフォーマンスに関する情報を含む
couchbase.log システムレベルの情報を格納。cbcollect_infoコマンド実行によるログ収集時に生成される
ddocs.log JSON 形式の各バケットの設計ドキュメントを含む
diag.log ノードの実行中のサービスから出力されたクラスター・マネージャーの診断情報の要約
kv_trace.json Phosphor(Couchbase Serverで使用するために設計された C++11 アプリケーション用の高性能イベント トレーシングフレームワーク)がキーバリュー操作トレースに使用するメタデータ
ini.log すべての初期構成(ini configuration)ファイルのダンプ
master_events.log バケットの作成やvBucket移動などのリバランス情報など、クラスターに関連する主要なイベントを含む
memcached.log vBucket、レプリカ、データストリーム要求のリバランスなど、コアmemcached コンポーネントに関する情報を含む
projector_pprof.log プロジェクター・プロセス用にキャプチャされた Goルーチンダンプ。Goルーチンダンプは、他の言語でのフルスレッド ダンプと同等であり、その時点でのプロセスの実行に関する貴重な洞察を得ることができる
stats.log cbstatsコマンドからの出力情報を含む。cbcollect_infoコマンド実行によるログ収集時に生成される
syslog.tar.gz 各種システムレベルのログのアーカイブ
systemd_journal.gz systemdログ(Linux のみ)

cblogredactionコマンド

これは、SDKやcbbackupmgrログファイルなど、上記の方法での収集対象ではない、CouchbaseServerのログファイルを編集するためのツールです。編集されたファイルはredacted-[filename]という名前で、現在の作業ディレクトリに作成されます。

実行例

cblogredaction [-h] (-s <string> | -g) [-t <num>] [-o <path>] [-v]
                 File [File …​]

オプション解説

-s <文字列>、-salt <文字列>

データのハッシュに使用するソルトを指定します。ルトをCouchbase Serverで使用されているものと同じにすることでログを簡単に相互参照できるようになります。Couchbase Serverソルトは、cbcollect_infoによって生成されたzipファイルのcouchbase.logの先頭にあります。

-g -generate-salt

データのハッシュに使用されるソルトを自動的に生成します。

-t -threads

ファイルを編集するために使用するスレッドの数。このオプションは、スレッド一つ一つが、一度に一つファイルに対してのみ作業するため、複数のファイルが指定されている場合にのみ使用します。

-o <パス> -output-dir <パス>

編集済みログを配置するディレクトリを指定します。このオプションを使用しない場合、編集済みログは現在の作業ディレクトリに配置されます。

-v -verbose

出力の詳細度を上げると、指定される回数が増えるほど、ログがより詳細になります。

ログファイルロケーション設定

デフォルトロケーション: /opt/couchbase/var/couchbase/logs

設定ファイル: static_config

設定項目: {error_logger_mf_dir, "/cb/couchbase/var/couchbase/"}

デフォルトのロケーションのみ、Couchbase社によって、サポートされる。

参考情報

cbcollect_info
cblogredaction

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?