DatadogでCouchbaseの死活監視を構築する
超ピンポイントなネタだけどわたしには難易度が高かった..
概要
DatadogでのService CheckにAlertを設定するまでがなかなか独特で
今後も使うのに忘れちゃいそうと思ったのでメモします
詳細
Couchbaseとは
- ドキュメント型NoSQL
- JSONが扱える
- Enterprise版はAMIが提供されている
わたしのところではPackerでコミュニティ版をインストールしたAMIを作成して運用しています
やりたかったこと
- CouchbaseをインストールしたEC2ホストの監視
- Target GroupのHealthyHostの数ではなく、ホストでCouchbaseが元気にしているかを見たい
AWSでは不定期にEC2インスタンスがメンテナンスされます
それによってインスタンス入れ替えが発生し、
Couchbaseクラスタからノードが切り離されたままになる事態が発生しました
(本番環境での事件でなくてとてもよかった!!!)
この時、Couchbaseインストール済みのAMIだったので
再起動後にもHealthHostにはカウントされていたのですが、
構築済みだったクラスタからは外れてしまい
クラスタとしてはノードがダウンした状態になっていました
これがHealth HostではなくCouchbase Hostとしての監視をしていれば検知できたのでは?と考えました
Datadogでどのように監視できるのか?
そのホストのCouchbase ServerにDatadog Agentが接続できるかで判定します
該当するメトリクスは couchbase.can_connect です
couchbase.by_node.health_status でもノードがダウンしたときに取れそうなのですが、
すべてのノードでエージェントが可動していると
自分以外のノードも監視対象になっていてノード数 * ノード数の監視になりそうだったので
今回は couchbase.can_connect で監視することにしました
他のメトリクスに比べてService Checkは設定が難しかった..
1つ目のハマりポイント: couchbase.can_connect をコンソール上で見つけられない
Metrics Explorerで見れるだろうと思ったら見つけられず...
メトリクスとしては検索できず、Monitors -> Check summary内にある
Service Checkなので見方としてもメトリクスではなく監視扱いなのかな?
2つ目のハマりポイント: couchbase.can_connect のアラートが設定できない
Datadog AgentでCouchbaseの監視設定をすると、
自動的にCouchbase Integrationがオンになります
なので New Monitor -> Integration で
couchbase.can_connect に対して監視を設定しようと思ったのですが、
対象の値を見つけられませんでした
Service Checkに対して監視設定を入れるには
実はIntegration Statusタブに切り替える必要がありました
たしかにドキュメントを見るとReturn Criticalになっていて、
他と設定が違いそうな雰囲気にも見える
- couchbase.can_connect: Returns Critical if the Agent cannot connect to Couchbase to collect metrics.
なかなか道のりは長かったけど、Supportの方にとても親切に対応してもらえてとても助かった
これでService Checkはマスターしたぞ!たぶん!