Trying out mkr

mkrとは

  • mackerelのcli
  • ホストの情報を表示したり、ステータス(workingとかmaintenanceとか)を操作できる
  • ホストの追加やメトリックの投稿が出来る

使いどころ

他のツールと組み合わせて色々できそう

  • aws-sdkと組み合わせてTerminateされたホストを自動で退役
  • chefと組み合わせてmackerel-agentインストール時にサービス、ロールの割り当てを自動でやる

mkrコマンド例

jqコマンドと組み合わせて特定の条件のホストを一括操作できる

空のホスト作成

  • mkr create --status 初期ステータス -R サービス名:ロール名 ホスト名
  • 2t6iqB5b7e7はID
  • このIDをchef等で/var/lib/mackerel-agent/idに書き込めばそのサーバーの監視が始まる
$ mkr create --status maintenance -R ponpokopon:mkrtest mkrtest
   created 2t6iqB5b7e7
   updated 2t6iqB5b7e7 maintenance

ホストの情報更新

  • 全てのmaintenanceステータスのホストをpoweroffステータスにアップデート
$ mkr update --st poweroff $(mkr hosts -st maintenance | jq -r '.[].id')
   updated 2t6iqB5b7e7

ホストの退役

  • 全てのpoweroffステータスのホストを退役
  • --forceオプションつければ承認飛ばして退役できう
$ mkr retire $(mkr hosts -st poweroff | jq -r '.[].id')
Retire following hosts.  
  2t6iqB5b7e7
Are you sure? (y/n) [y]: y  
   retired 2t6iqB5b7e7

jqにパイプして加工してニヨニヨ

素の状態

$ mkr hosts

hosts名だけ出す

$ mkr hosts | jq -r '.[].name'

名前、id、ステータスを表示するように加工

$ mkr hosts | jq -r '.[] | { name: .name, id: .id, status: .status}'

参考