MackerelのCLIツール「mkr」を見ていく

12月です、アドベントカレンダーの季節ですね!本記事は、>Mackerel Advent Calendar 2023とクラスメソッド DevOps・セキュリティ Advent Calendar 2023の12/16記事です。今回は、MackerelのCLIツール「mkr」の導入方法と基本的な情報取得フローについて書いていきたいと思います。
2023.12.18

こんにちは、こんばんは、アライアンス事業部のきだぱんです。

今年も残りわずか… 12月に入りました。アドベントカレンダーの季節です!
本記事はMackerel Advent Calendar 2023クラスメソッド DevOps・セキュリティ Advent Calendar 2023の12/16記事になります!

  • Mackerel Advent Calendar 2023

  • クラスメソッド DevOps・セキュリティ Advent Calendar 2023

今回は、MackerelのCLIツール「mkr」にフォーカスを当て、ブログを書いていきたいと思います。

そもそもMackerelとは

皆さん、Mackerelはご存知でしょうか。
残念ながら、美味しい美味しい(mackerel)のことではありません。
Mackerel(マカレル)とは、クラウド時代に最適な監視モデルと誰でも簡単に使えるUIによって、システムの運用・監視にチームで取り組み文化を育むSaaS型サーバー監視サービスです。
運用中のクラウドもしくはオンプレミスのサーバにエージェントを1つ入れるだけで、簡単にサーバ管理を始められます。監視サーバ自身の構築・運用は不要です。さらに負荷のリソース状況などの数値をグラフに可視化します。障害発生時にはアラートが記録され、様々なツールに通知でき、システム運用保守に最適な監視サービスです。
詳しくはMackerel公式サイトをご覧ください。↓

「mkr」とは

Mcketrelでは、サーバ運用をサポートするCLIツール「mkr」を提供しています。
mkrはMackerelの各種設定を取得、更新する為のCLIツールです。
mkrを使って、ホストのステータスをまとめて変更したり、手順をスクリプトに組み込んで自動化したりもできます。
今回は初手となる導入方法と基本的な情報取得フローについて書いていきたいと思います。

※Mackerelで新規ホスト登録後からの説明になります。
詳しくは下記をご覧いただければと思います。

mkrの導入

インストール

yumコマンドですぐにインストール可能です。

# yum install mkr

インストール内容を確認し、下記のようになればインストール完了です。

・・・・・・
Installed:
  mkr.x86_64 0:0.46.5-1.amzn2

Complete!

バージョン確認

インストール完了後、念のためバージョンを確認しておきましょう。

# mkr --version
mkr version 0.46.5

# mkrでも詳細を見ることが出来ます。

# mkr
NAME:mkr - A CLI tool for mackerel.io
USAGE:mkr [global options] command [command options] [arguments...]
VERSION:0.46.5 (rev:e24d9fc)
AUTHOR:Hatena Co., Ltd.
COMMANDS:
   status            Show the host
   hosts             List hosts
・・・(略)・・・・・
GLOBAL OPTIONS:
   --conf value     Config file path (default: "/**********************")
   --apibase value  API Base (default: "https://*****************")
   --help, -h       show help
   --version, -v    print the version

APIキーの指定

また、mkrは自動的にAPIキーを読み出ししますが、mackerel-agentがない場合や、個別に指定したい場合は下記コマンドで、APIキーを環境変数で指定できます。
# export Mackerel_APIKEY= 指定したいAPI_KEY

mkrで情報取得

mkrのインストールが完了したところで、基本的な情報取得を行っていきたいと思います。

ホスト情報の取得

# mkr status <hostId>

ロール内のホスト情報取得

# mkr hosts --service サービス名 --role ロール名

特定ロールのホスト一覧情報を取得することも出来ます。
コマンドを叩くと、ID,name,status情報を見ることが出来ます。

監視設定の取得

現在の監視設定を確認します。
コマンドを実行すると monitors.json がコマンド実行のディレクトリに作成されます.

# mkr monitors pull
      info Monitor rules are saved to 'monitors.json' (** rules).

メトリック取得

メトリックサブコマンドでメトリックも取得できます。

# mkr metrics --host <hostId> --name <name> --from <epoch seconds> --to <epoch seconds>

特定のホストのメトリックや、特定のサービスのメトリックを取得することも可能です!!

まとめ

これにて、mkrの最初の一歩となる導入は完了となります。 最初に試すべき内容として、mkrにフォーカスを当て、導入方法と基本的な情報取得フローについてブログにしました。
今回は、情報取得の部分までですが、取得した内容を確認して、追加で監視設定を変更追加してみたり使い方は無限大にありそうです。
mkrはGitHubにて、公開されております。今後「mkr」を、どんどん活用していきたいです。

DevelopersIOでは、Mackerelに関するブログも沢山展開されていますので、是非こちらもご覧ください。

この記事がどなたかのお役に立てば幸いです。以上、きだぱんでした!