Blog#mackerelio2015-09-03読み取り専用APIキーと新しいAPIを使った安心で便利なサーバ管理MackerelではAPIを使っていろいろな機能を実現することができます。本記事ではより便利になったMackerelのAPIの活用事例を紹介します。MackerelのAPIについてMackerelではAPIを使用して、各種の情報の取得や更新が出来ます。管理しているホストの一覧はcurlを使って以下のように取得できます。https://mackerel.io/api/v0/hosts.jsonレスポンスはJSONで返ってくるため、各言語のJSONライブラリを使ってパースしたり、jqなどのツールで必要な情報を取り出すことが出来ます。詳しくはAPI仕様をご覧ください。ヘルプhelp-ja.mackerel.io安全に使用できる読み取り専用APIキーの登場MackerelのAPIはオーガニゼーション毎に作成したAPIキーを使って認証を行います。これまではすべてのAPIキーに書き込み権限があり、気軽に利用するにはいくつかの不安点がありました。誤って更新操作をしてしまう心配があった漏洩したときに不正な操作をされてしまう心配があったもちろん漏洩した場合はAPIキーを削除して無効化することが出来ましたが、無効化するまでの間に、悪意のある第三者によって不正に操作されてしまう危険性がありました。mackerel.ioこれらの問題を解決し、気軽にAPIを利用出来るように、読み取りのみの権限が設定出来るようになりました。今後は安心してAPIを利用することが出来ます。本記事では、最近新たに追加されたAPIの紹介も兼ねて、特に読み取り専用のAPIキーを使った活用事例を紹介します。利用事例を3つご紹介APIを利用したサーバオペレーションMackerelのAPIからホスト情報を取得することで、例えばあるサービスの特定のロールの属するホストに同時にSSHでログインするといった、よく行うがちょっとめんどうな作業を効率化することが出来ます。ここでは、簡単なシェルスクリプトを書くことで、より便利にAPIを使用することが出来ることを示します。これから紹介するスクリプトは環境変数にMACKEREL_APIKEYを設定することによって使用できます。'.services[].name'上記のスクリプトを利用してサービス一覧を取得することができます。'.roles[].name'引数にサービス名渡すと、サービスに紐付いたロールの一覧を取得することができます。組み合わせてもっと便利にこのような小さなスクリプトではあまり便利には感じないのですが、これらを組み合わせることで毎日のオペレーションが少し便利になります。最初にご紹介した、あるサービスのロールに属するホスト一覧に同時にSSHするためにMackerelからホストの一覧を取得してみます。".hosts[].name"ここではpecoというフィルタリングツールを利用して、APIから取得したサービス一覧や、ロール一覧を絞りこみながら選択して、最後にホストの一覧をAPIで取得しています。この例では複数のロールを選択するなどの柔軟なことは出来ませんが、毎回ホスト名を入力していたことを考えると便利になったのではないでしょうか。このようにシンプルなAPIでも、組み合わせ次第でとても便利に使うこと出来ます。Generatorカスタムダッシュボードを使うと好きなグラフを並べて表示することができます。help-ja.mackerel.ioこの機能を使って、あるサービスのロールに属するホストの各メトリクスのグラフを表示したいケースがあります。カスタムダッシュボードでそれらすべてのグラフを手作業で貼り付けていくのはとても時間がかかってしまいます。そこで、mackerelio/mdgというツールを使用すると、カスタムダッシュボード用のMarkdownを生成することができます。対象となるサービスとロール、そして表示するグラフの期間を指定すれば、標準メトリクスの埋め込みグラフを表示するMarkdownを自動的に表示することが出来ます。db上記のようにオプションにサービスなどの情報を指定して実行すると以下のようなMarkdownが生成されます。frameborder='0'></iframe>|...このMakrdownをカスタムダッシュボードに貼り付けると以下のようなダッシュボードが作成できます。このツール、よく見るとAPIを使っていませんね。サービス名とロール名を入力するのがとても大変です。そこで前回作ったシェルスクリプトを使ってみてください。サービス名とロール名を取得することが出来ます。mdgのREDAMEにはAPIとpecoを組み合わせて便利に利用する例を記載しています。使用したAPIホストの一覧サービスの一覧ロールの一覧サーバー管理台帳を自動生成APIを使うと、サービス・ロールごとに管理しているホストの情報一覧の表を作成することができます。Spreadsheetsで作成した例です。Scriptを使用して管理しているホストの情報を取得し、一覧を作成しています。Googleスプレッドシートを活用することで、自動的に統計情報を表示したりすることも可能です。報告書の作成や、Mackerel本体だけでは表示出来無い自由な組み合わせで事業の成長とともに増え続けるホストを俯瞰することが出来ます。使用したAPIホストの一覧まとめ新しく追加された、読み取り専用APIキーや、サービス・ロールAPIによって、MackerelのAPIを安心かつより便利に使えるようになりました。今回ご紹介したAPIの他にもメトリックや監視設定を扱うAPIも提供しております。書き込み権限のあるAPIキーを使って更新操作を行うAPIも提供しております。詳しくはAPI仕様(v0)をご覧ください。ヘルプhelp-ja.mackerel.io開発チームでは今後さらに便利に利用いただけるように開発を続けております。APIに関する要望、ご意見などのフィードバックもお待ちしております。使いやすくなったMackerelのAPIを、是非お試しください。読者になるバナーとお問い合わせセールスに関するお問い合わせ料金や支払い方法など気なることがあれば、ぜひお気軽にお問い合わせ下さい!お問い合わせ無料トライアルMackerelに興味をもっていただけましたか?まずは無料トライアルで実際にMackerelを使ってみてください。Ltd.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。