継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Mackerel の CLI ツール『mkr』を使ってみる

タダです.

はてな社の「Mackerel」を業務利用することになりました.使い始めなこともあり画面から設定をいじっていたのですが, CLI ツールである「mkr」の存在を知ったので,導入と監視設定を取得したりしていきます.

github.com

mkr 導入

mkr」の導入を行ってきます.なお,導入環境は macOS X Catalina です.

sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.6
BuildVersion:   19G2021

mackerel.io

macOS の場合は brew で完結します.

インストールコマンド

$ brew tap mackerelio/mackerel-agent
$ brew install mkr

インストール完了後,バージョンを確認して 0.40.4 でした.

$ mkr --version
mkr version 0.40.4 (rev:ef54761)
$ mkr
NAME:
   mkr - A CLI tool for mackerel.io

USAGE:
   mkr [global options] command [command options] [arguments...]

VERSION:
   0.40.4 (rev:ef54761)

AUTHOR:
   Hatena Co., Ltd.

COMMANDS:
   status       Show the host
   hosts        List hosts
   create       Create a new host
   update       Update the host
   throw        Post metric values
   metrics      Fetch metric values
   fetch        Fetch latest metric values
   retire       Retire hosts
   services     List services
   monitors     Manipulate monitors
   channels     List notification channels
   alerts       Retrieve/Close alerts
   dashboards   Generating custom dashboards
   annotations  Manipulate graph annotations
   org          Fetch organization
   plugin       Manage mackerel plugin
   checks       Utility for check plugins
   wrap         Wrap and monitor batch jobs to run with cron etc
   help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --conf value     Config file path (default: "/Users/sadayoshitada/Library/mackerel-agent/mackerel-agent.conf")
   --apibase value  API Base (default: "https://api.mackerelio.com")
   --help, -h       show help
   --version, -v    print the version

現状の監視設定を取得する

それでは,現状の監視設定を取得してみます.「mkr」を使うためにはまず API キーを設定します.API キーは https://mackerel.io/orgs/[オーガナイゼーション名]?tab=apikeysで確認できます.

$ export MACKEREL_APIKEY=<API_KEY>

設定後,監視設定を取ってくるのは monitors pull で行います.コマンドを実行すると monitors.json がコマンド実行のディレクトリに作成されます.

$ mkr monitors pull
      info Monitor rules are saved to 'monitors.json' (1 rules).

monitors.json の中身をみると,現状のアラート設定のみが入っている状況でした.このファイルを GitHub で管理すると変更履歴も管理できて良さそうです.

[
    {
        "id": "XXXX",
        "name": "connectivity",
        "type": "connectivity"
    }
]

まとめ

mkr」の導入と画面で設定した監視設定を取得してきました.運用フローを作っていく中でこのツールを使って変更管理や追加の監視設定を入れたりを検討していきたいと考えてます.今後,Mackerel のナレッジを貯めていきます 🙌