ore-mkrというMackerelのCLIツールを作った
Mackerelの運用を少し楽にするためにGoで自作運用ツールを作ってみた。ホストのステータスを変更したり、監視設定がどうなっているかの確認など、ちょっとした日々の運用作業をCLIでかつコマンドツールのPecoを組み合わせるとターミナルで楽に行えるのではと思ったのが作成したきっかけです。
運用ツールを作るにあたって利用したのは mackerel-client-go
を活用しています。
■ 現時点で作成した機能
- 登録ホストの一覧を表示する
- hostを指定してステータスを変更する
- 監視設定の一覧を表示する
- 発生中のアラート一覧を表示する
- ( 登録ユーザの一覧
mackerelio/mackerel-client-go
にPRを出してみた )
※) コマンド実行結果はjsonでなく、テーブル表示するようにしています。
自作したore-mkr
ツールのソースコードはこちらです。
コンパイル済みのコードは 上記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をorgA
と orgB
としているので、以下のコードを実際のORG名に適宜変更しても使える
OrgA = "orgA" OrgB = "orgB"
使い方(コマンドオプション)
ホスト系
- Mackerel API ドキュメント
■ 一覧 > $ ore-mkr -org=<ORG> -type=host ■ statusを変更する > $ ore-mkr -org=<ORG> -type=host -<STATUS> target=<HOSTID> ※) STATUS: working standby maintenance poweroff retire
[実行結果]
監視設定系
- Mackerel API ドキュメント
■ 一覧 > $ ore-mkr -org=<ORG> -type=monitor
[実行結果]
アラート系
- Mackerel API ドキュメント
■ 一覧 > $ ore-mkr -org=<ORG> -type=alert
ユーザ系 (NEW)
- Mackerel API ドキュメント
- https://mackerel.io/ja/api-docs/entry/users
- mackerel-client-goにAPI実装がなかったのでPR作成してMergeしてもらった
■ 一覧 > $ ore-mkr -org=<ORG> -type=user
[実行結果]
まとめ
今回、Goのflagとmackerel-client-goを利用してore-mkr
というCLIを作成してみました。 mackerelをテーブルレスポンスのCLI+Pecoで運用を少し楽にする目的とGoを使って何かつくりたいというのが目的でした。その中でuserに関するAPIがまだ実装されていなかったので、PRを作るところまで実施しました。
PRが取り込まれたらuserの機能も実装してみたいと思います。
→ 無事にPRがマージさされました! ↓↓↓