sackerel

command module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2016 License: GPL-3.0 Imports: 8 Imported by: 0

README

Sackerel

sackerel is integration tool of SakuraCloud and Mackerel.

logo.png

GoDoc

概要

sackerelさくらのクラウドMackerelのインテグレーションツールです。

さくらのクラウド上のサーバーやデータベース、ルーターなどのリソースをMackerelへ連携する事ができます。 sackerelを起動しておけば、さくらのクラウド上にリソースを作成/更新するだけで自動でMackerelへ連携されます。

連携のためにMackerelエージェントを各リソースにインストールする必要はありません。

Mackerel上でのホスト/サービス/ロールは自動作成されるため、すぐにMackerelでグラフを見たりアラートの設定を行ったりできます。

動作について

sackerelはGo言語で書かれた単一バイナリのスタンドアロンアプリです。

起動すると常駐プログラムとして動作し、定期的に以下のジョブを実行します。

From さくらのクラウド
  • さくらのクラウドAPIによるリソース情報収集
    • サーバー/ルーター/ロードバランサー/データベース/VPCルーターなどのリソース定義
    • リソースごとの稼働ステータス
    • リソースごとのメトリクス(CPU/Disk/Interfaceなど)
To Mackerel
  • ホスト/サービス/ロールの登録/更新
  • カスタムグラフ定義
  • メトリクス情報投入
  • エージェントがインストールされたサーバーとの統合処理

さくらのクラウド上のリソースの種類によって自動でMackerel上にロールが作成されます。

また、あらかじめタグを付けておくことでロールに自動変換することも可能です。 詳細は便利な機能を参照してください。

連携可能なリソース

現在、以下のさくらのクラウド上のリソースに対応しています。

収集するメトリクスについてはさくらのクラウド:アクティビティグラフを参照してください。

インストール

リリースページから各プラットフォーム用のバイナリをダウンロード&展開し、実行権を付与してください。

使い方

以下のような実行方法があります。お好きな方法でご利用ください。

  • [実行ファイルをダウンロードして実行]
  • [Dockerで実行]
  • [Dockerホスティング環境で実行]

使い方(バイナリをダウンロードする場合)

以下の3つの必須パラメータを指定して起動します。

  • --token : さくらのクラウドAPIトークン
  • --secret : さくらのクラウドAPIシークレット
  • --apikey : MackerelのAPIキー
$ sackerel --token "Your Token" --secret "Your Secret" --apikey "Your APIKey"

各値は環境変数で指定する事も可能です。direnvなどをあわせてご利用いただくと便利です。

$ export SAKURACLOUD_ACCESS_TOKEN="Your Token"         # さくらのクラウド APIトークン
$ export SAKURACLOUD_ACCESS_TOKEN_SECRET="Your Secret" # さくらのクラウド APIシークレット
$ export MACKEREL_APIKEY="Your APIKey"                 # Mackerel APIキー

# 実行
$ sackerel 

終了する場合はキーボードでCtrl+cを押してください。

なお、継続して起動させておきたい場合は後述するDockerを利用する方法やDockerホスティングを利用する方法を検討ください。

使い方(Dockerを利用する場合)

実行用にDockerイメージを用意しています。 以下のように実行します。

# オプションをコマンドラインで渡す場合
$ docker run -d sacloud/sackerel --token "Your Token" --secret "Your Secret" --apikey "Your APIKey"

使い方(Dockerホスティング環境で実行)

ArukasなどのDockerホスティング環境でも動作します。 例としてArukasで動かす場合、以下のようにパラメータ指定します。

run-on-arukas.png

ヘルスチェックについて

sackerelを起動すると、ヘルスチェック用にWebサーバーが起動し、デフォルトでは39700ポートでリッスンします。

ヘルスチェック用Webサーバーはsackerelが起動中は常に起動しており、アクセスするとステータス200、レスポンスとしてOKという文字列を返します。

sackerel自身が起動しているかのチェックにご利用ください。

なお、ポート番号は--portオプションにて変更可能です。

また、--disable-healthcheckオプションを指定することで、ヘルスチェック用Webサーバーを起動しないようにすることができます。

便利な機能

さくらのクラウド上のタグからMackerelのロールへ自動変換

さくらのクラウド上でリソースにタグをつけておくと、Mackerel上でロールとして登録されます。

サービスやアプリ、役割ごとなどでタグを付けておくと、Mackerel側でロールとしてまとめて管理できるので便利です。

注: 先頭の文字が@で始まるタグ(特殊タグ)は連携されません。

Mackerelエージェントを併用する

sackerelからMackerelへ登録されたサーバーに対し、Mackerelエージェントをインストールすると、 Mackerelに対し新しいホストとして登録されます。

このままだと、同じサーバーがMackerel上に重複登録されていることになります。 sackerelはこの問題に対し、エージェントとの統合処理を行うことで対応しています。

統合処理は定期的に起動(デフォルトは3分に1回)起動するようになっています。

統合処理が行われると、さくらのクラウド上の該当リソースに対し@mackerel-agentタグが付与されます。 このタグが付与されているサーバーは、Mackerelエージェントの設定を優先するようになります。 (例:ホストの管理名(DisplayName)など)

個別のリソースをMackerelへ連携させたくない場合

さくらのクラウド上で、連携させたくないリソースに対し@mackerel-ignoreタグを付けておくと連携対象外となります。

その他オプションなど

指定できるオプションについてはsackerel --helpで表示されるヘルプを参照してください。

各オプション項目の詳細はOptions:オプションについてを参照してください。

$ sackerel --help
  NAME:
     sackerel - A integration tool of Mackerel and SakuraCloud
  
  USAGE:
     sackerel [options]
  
  REQUIRED PARAMETERS:
     --token value, --sakuracloud-access-token value          API Token of SakuraCloud (default: none) [$SAKURACLOUD_ACCESS_TOKEN]
     --secret value, --sakuracloud-access-token-secret value  API Secret of SakuraCloud (default: none) [$SAKURACLOUD_ACCESS_TOKEN_SECRET]
     --apikey value, --mackerel-apikey value                  API Key of Mackerel (default: none) [$MACKEREL_APIKEY]
     
  OPTIONS:
     --zones value, --sakuracloud-zones value        Target zone list of SakuraCloud (default: "is1b", "tk1a") [$SAKURACLOUD_ZONES]
     --interval value, --timer-job-interval value    Interval of each timer jobs (default: 2m0s) [$SACKEREL_TIMER_JOB_INTERVAL]
     --period value, --metrics-history-period value  Period of collecting metrics history (default: 15m0s) [$SACKEREL_METRICS_HISTORY_PERIOD]
     --port value, --healthcheck-port value          Number of web server port for healthcheck (default: 39700) [$SACKEREL_HEALTHCHECK_PORT]
     --disable-healthcheck                           Flag of disable health check web server (default: false) [$SACKEREL_DISABLE_HEALTHCHECK]
     --skip-init                                     Flag of skip init job (default: false) [$SACKEREL_SKIP_INIT]
     --help, -h                                      show help
     --version, -v                                   print the version
     
  ************* ADVANCED OPTIONS **************
  
     FOR PERFORMANCE TUNING:
        --reconcile-job-interval value      Interval of each reconcile jobs (default: 3m0s) [$SACKEREL_RECONCILE_JOB_INTERVAL]
        --api-call-interval value           Time duration of API call interval (default: 500ms) [$SACKEREL_API_CALL_INTERVAL]
        --job-queue-size value              Size of internal job queue (default: 50) [$SACKEREL_JOB_QUEUE_SIZE]
        --throttled-api-request-size value  Size of throttledAPI requst queue (default: 0) [$SACKEREL_THROTTLED_API_REQUST_QUEUE_SIZE]
        --sakura-api-queue-size value       Size of SauraAPI request queue (default: 10) [$SACKEREL_SAKURA_API_REQEST_QUEUE_SIZE]
        --mackerel-api-queue-size value     Size of MackerelAPI request queue (default: 10) [$SACKEREL_MACKEREL_API_REQEST_QUEUE_SIZE]
        
     FOR DEBUG:
        --sakuracloud-trace-mode  Flag of SakuraCloud debug-mode (default: false) [$SAKURACLOUD_TRACE_MODE]
        --mackerel-trace-mode     Flag of Mackerel debug-mode (default: false) [$MACKEREL_TRACE_MODE]
        --trace-log               Flag of enable TRACE log (default: false) [$SACKEREL_TRACE_LOG]
        --info-log                Flag of enable INFO log (default: true) [$SACKEREL_INFO_LOG]
        --warn-log                Flag of enable WARN log (default: true) [$SACKEREL_WARN_LOG]
        --error-log               Flag of enable ERROR log (default: true) [$SACKEREL_ERROR_LOG]
        
  *************************************************
  VERSION:
     0.0.1, build xxxxxxxx
  
  Copyright (C) 2016 Kazumichi Yamamoto.

License

logo-mini.png
sackerel Copyright (C) 2016 Kazumichi Yamamoto.

This project is published under GPLv3.

Author

Documentation

Overview

sackerel - A integration tool of SakuraCloud and Mackerel.

Directories

Path Synopsis
job

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL