My Note

自己理解のためのブログ

ore-mkrというMackerelのCLIツールを作った

Mackerelの運用を少し楽にするためにGoで自作運用ツールを作ってみた。ホストのステータスを変更したり、監視設定がどうなっているかの確認など、ちょっとした日々の運用作業をCLIでかつコマンドツールのPecoを組み合わせるとターミナルで楽に行えるのではと思ったのが作成したきっかけです。 運用ツールを作るにあたって利用したのは mackerel-client-goを活用しています。

github.com

■ 現時点で作成した機能

  • 登録ホストの一覧を表示する
    • hostを指定してステータスを変更する
  • 監視設定の一覧を表示する
  • 発生中のアラート一覧を表示する
  • ( 登録ユーザの一覧 mackerelio/mackerel-client-goにPRを出してみた )

※) コマンド実行結果はjsonでなく、テーブル表示するようにしています。

自作したore-mkrツールのソースコードはこちらです。

github.com

コンパイル済みのコードは 上記GitHub./bin/ 配下に配置しています

使うにあたって

環境変数にMackerelのAPI-KEYをセットする - export MKRKEY_OrgA=<MACKERL_KEY> - export MKRKEY_OrgB=<MACKERL_KEY>

mkrKeyOrgA = os.Getenv("MKRKEY_OrgA")
mkrKeyOrgB = os.Getenv("MKRKEY_OrgB")

今回は ORGをorgAorgB としているので、以下のコードを実際のORG名に適宜変更しても使える

OrgA        = "orgA"
OrgB        = "orgB"

使い方(コマンドオプション)

ホスト系

  ■ 一覧
    > $ ore-mkr -org=<ORG> -type=host

  ■ statusを変更する
    > $ ore-mkr -org=<ORG> -type=host -<STATUS> target=<HOSTID>
      ※) STATUS: working standby maintenance poweroff retire

[実行結果] f:id:yhidetoshi:20190717074634p:plain

監視設定系

  ■ 一覧 
    > $ ore-mkr -org=<ORG> -type=monitor

[実行結果] f:id:yhidetoshi:20190804080901p:plain

アラート系

  ■ 一覧
    > $ ore-mkr -org=<ORG> -type=alert

ユーザ系 (NEW)

  ■ 一覧 
    > $ ore-mkr -org=<ORG> -type=user

[実行結果] f:id:yhidetoshi:20190719083051p:plain

まとめ

今回、Goのflagとmackerel-client-goを利用してore-mkr というCLIを作成してみました。 mackerelをテーブルレスポンスのCLI+Pecoで運用を少し楽にする目的とGoを使って何かつくりたいというのが目的でした。その中でuserに関するAPIがまだ実装されていなかったので、PRを作るところまで実施しました。 PRが取り込まれたらuserの機能も実装してみたいと思います。

→ 無事にPRがマージさされました! ↓↓↓

github.com