はじめに
この記事では、Couchbase Serverにおける監視手法について見ていきます。
はじめに、Couchbase Serverの持っている監視のための機能について説明します。
そして、外部の監視システムとの連携の例として、PrometheusおよびGrafanaとの連携について紹介します。
Couchbase Server 監視機能
監視対象概観
監視の対象は、CPU・メモリ利用量などのノード/サーバ単位の監視と、バケット/データベース単位の監視に分類することができます。
ビルトイン機能
以下のビルトイン機能は、Couchbase Serverインストールにより、利用することが可能です。
Webコンソール
Eメールアラート
Couchbase Serverは、(自動フェールオーバー等)特定の状況が発生した際に、Eメールを送付する機能を持っており、Webコンソール画面またはCLI、REST APIから設定することが可能です。
外部連携機能
Rest API
Webコンソールで公開されているメトリックスは、全てRest APIで取得することが可能です。
CLI
監視システムとの連携の手法として、(エージェント型監視ツールを典型として)CLI(コマンドラインインターフェイス) が必要とされるケースもあります。Couchbase Serverは用途に応じた各種CLIツールを備えていますが、監視情報取得の用途としてcbstatsがあります。
外部監視システム連携(Prometheus, Grafana)
Prometheus
Prometheus Serverは、監視対象にアクセスしてデータを収集するPull型アーキテクチャに基づいています。そして、監視対象サーバーは、Exporterと呼ばれるアクセスポイントを公開します。下記で、公開されているExporterのリストを見ることができます。
Prometheus 公式ドキュメント Exporters and Integrations
Couchbase Exporter
Couchbase Exporterは、監視するCouchbase Serverクラスターに対して、プロセスを実行します。
./couchbase-exporter --couchbase.username Administrator --couchbase.password password --web.listen-address=":9420" --couchbase.url="http://example.host.a:8091"
Grafana
Grafanaのダッシュボード定義のサンプルが下記で公開されています。
Couchbaselabs GrafanaDashboard.json
最後に
高信頼性(high-reliability)システムを構築・運用するためには、システム監視は必須の要件と考えられます。
ここで紹介した内容には、システム監視の定番として、特に真新しい部分はなかったかもしれません。
それでも、当たり前のことが当たり前にできることが分かった、という感想を持っていただけるようであれば、それだけでも、この記事の目的は果たされたと考えます(もちろん、PrometheusやGrafanaを使ったシステム監視を検討される切っ掛けになったのであれば尚のことですが)。
参考情報
Couchbase Monitoring
Couchbaseの監視機能に関する解説(英語)
Couchbase Monitoring Integration with Prometheus and Grafana
CouchbaseとPrometheus,Grafanaとの連携に関する詳細な手順説明(英語)
Zabbix Couchbase template
ZabbixとCouchbaseとの連携が(日本語で)紹介されています。