サービス監視をお手軽に!さくらのクラウド + Mackerel = 「Sackerel(サカレル)」
さくらのクラウドと監視ツール「Mackerel」のインテグレーションを行うツール「Sackerel(サカレル)」をご紹介いたします。
「Sackerel(サカレル)」とは
「Sackerel(サカレル)」はさくらのクラウド上にリソースを作成すると、Mackerelへ監視対象ホストとして自動登録を行ってくれる、さくらのクラウド & Mackerelのインテグレーションツールです。
通常Mackerelでホストの監視を行う場合、「エージェント」と呼ばれるホスト情報収集用のアプリを監視対象マシンにインストールする必要がありますが、SackerelではさくらのクラウドAPIを通じてホスト情報/メトリック収集を行うことで、「エージェントレス」監視を実現しています。
何が嬉しいの?
Sackerelを用いることで、各マシンへのエージェントのインストールが不要となります。
また、エージェントのインストールが不可能な、VPCルーターやロードバランサー、データベースなどのさくらのクラウド上で提供されているアプライアンスについても監視が行えます。
別途エージェントをインストールすることで、詳細な監視を行うことも可能です。
なお、Mackerelの機能の一つとして「AWSインテグレーション」という類似機能があります。AWSインテグレーションもSackerelと同じくエージェントレス型となっています。
使い方
動作方法
Sackerelは常駐アプリ(デーモン)として動かす必要があります。以下のような方法があります。
- バイナリをダウンロードし、systemdなどでデーモン起動する
- Dockerを利用してデーモンモードで起動する
- ArukasなどのDockerホスティングサービス上で起動する
今回は手軽に試せるようにArukasを用いる方法をご紹介いたします。
Arukasについては以下の記事にて紹介されています。
さくらの新サービス??Dockerコンテナホスティングサービス Arukas(アルカス)をご紹介!
事前準備
以下の準備が必要です。
- 1) さくらのクラウド アカウント登録 & APIキーの取得
- 2) Mackrelアカウント登録 & APIキー取得
- 3) Arukasへアカウント登録
さくらのクラウド/Mackerelのアカウントをお持ちでない場合は以下から登録を行っておいてください。
1) さくらのクラウドAPIキーの取得
まずはコントロールパネルにログインし、「さくらのクラウド(IaaS)」を選択します。
APIキーを追加します。「アクセスレベル」は「設定編集」または「作成・削除」を選択してください。
追加したら、トークンとシークレットを控えておきます。
2) MackerelのAPIキー取得
Mackerelのコントロールパネルにログインします。
オーガニゼーションのページから「新しいAPIキーを追加」をクリックします。
APIキーを作成します。権限欄の「Read」「Write」両方にチェックを入れて作成してください。
作成したら、表示されるAPIキーを控えておきます。後ほどSackerelの設定にて利用します。
3) Arukasへのアカウント登録
以下の記事などを参考にArukasのアカウント登録を行ってください
Sackerel設定/起動
Arukas上でSackerelを起動するための設定を行います。
まず、Arukasのコントロールパネルにログインします。
ログインしたら「アプリケーションを作成」ボタンから新規アプリケーションの登録を行います。
登録画面には以下のように入力してください。
- App name : アプリケーションの名称、お好きな名前を入力
- Image : 「sacloud/sackerel:latest」と入力
- Instances: 1
- Memory : 256MB
- Endpoint : 空のまま
- Port : 39700/TCP
- Env:
- SAKURACLOUD_ACCESS_TOKEN = [さくらのクラウド アクセストークン]
- SAKURACLOUD_ACCESS_TOKEN_SECRET = [さくらのクラウド アクセスシークレット]
- MACKEREL_APIKEY = [Mackerel APIキー]
- CMD: 空のまま
入力したら保存〜起動をしてみましょう。「アプリは起動状態です」と表示されると正常に起動できています。
これでSackerelの起動完了です。
さくらのクラウド上でサーバー作成
新たにサーバーを作成し、Mackerelへ連携させてみましょう。
Sackerelで連携したリソースは「SakuraCloud」というサービス名でMackerelへ登録されています。
ロールについては以下のものが設定されます。
- ゾーン名(Zone-xxxx)
- リソース種別(Server / Router / VPCRouter / LoadBalancer / Database)
- タグ(特殊タグ以外)
リソースにタグをつけていた場合、@で始まる特殊タグ以外はMackerel上にロールが登録されます。
作成してしばらく待つとMackerel側へホストが登録されるはずです。
Mackerelアラート設定
Mackerelにホストが登録されたら、監視/通知の設定を行ってみましょう。
今回はサンプルとして、CPU負荷が閾値を超えたらアラート通知(メール)を行うように設定してみます。
まずは左のメニューから「Monitors」を選択し、「監視ルールを追加」をクリックします。
続いて監視ルールの作成を行います。
今回は例としてサーバーのCPU負荷を対象とするため、「監視対象のメトリック」に「custom.sacloud.cpu.0.cpu-time」を選択してください。
この値は、さくらのクラウドAPIから取得した、サーバーのアクティビティグラフの値となります。
アクティビティグラフについては以下を参照ください。
続いて閾値を設定します。今回は70%でWarning、90%でCriticalとしています。
入力したら「作成」ボタンをクリックすると設定完了です。
なお、「条件の持続時間」の項目ですが、1分に設定しないとアラートが発生しないようでした。さくらのクラウドのアクティビティグラフは5分ごとにデータ更新されるため、1分に設定していても、実際には直近5分間の平均値となります。
あとはサーバーに負荷をかけてみると以下のようなメール通知が行われるはずです。
今回の例はサーバーでしたが、ルーターやロードバランサー、VPCルーターやデーターベースについても、さくらのクラウド上で作成するだけでMackerel上にホスト登録されます。
また、Mackerel側で通知の設定を行えば、SlackやLINEヘ通知を行うことも可能です。
まとめ
Sackerelを利用すれば、さくらのクラウド上のリソースを自動的に監視できるようになります。
通常のエージェント型監視では対応できない、VPCルーターやロードバランサーなどのアプライアンスについても監視可能です。
一度Mackerelへ登録してしまえば、あとはMackerelの持つ強力な監視/通知機能や、グラフ表示、ダッシュボードなどが利用できるようになります。
Sackerelで全体を俯瞰し、細かい監視はMackerelエージェントをインストールして行うという方法がオススメです。
最後に、SackerelはGitHubにてオープンソースとして公開しています。
今回紹介しなかった細かな動作方法やオプションなどのドキュメントも公開しています。
Github : sacloud/sackerel
https://github.com/sacloud/sackerel
操作の不明点や機能追加のご要望、不具合報告などございましたら、GitHubのIssueからお気軽に登録ください。
Sackerelでハッピー監視ライフを!