Mackerel ブログ #mackerelio

Mackerelの公式ブログです

Monitoring Seminar in mercari を開催しました

mackerelio.connpass.com

11月29日(水)、はてなとメルカリにおけるモニタリング事例をご紹介する"Monitoring Seminar in mercari"を開催しました。

今回は六本木ヒルズにあるメルカリ様のイベントスペースをお借りして、多くの方々にご来場いただきました。 会場を提供していただいたメルカリ様、ご来場いただいた皆様、本当にありがとうございました。

f:id:mackerelio:20171204193505j:plain

メルカリのシステム・サービス監視について

最初のセッションはメルカリの長野さんです。 前半ではメルカリにおけるモニタリングツールの歴史と運用について、後半ではMackerelでの監視項目をご紹介いただきました。 実際にどのような監視を行なっているのか、みなさん興味深く聴いておられました。

f:id:mackerelio:20171204103725j:plainf:id:mackerelio:20171204103729j:plainf:id:mackerelio:20171204103734j:plain
「メルカリのシステム・サービス監視について」セッションの様子

Microservices Monitoring at mercari

つづいてはメルカリの内田さんのセッションです。 "fast as possible"を実現するためのマイクロサービス。その監視を行うためのポイントをご紹介いただきました。 時間の関係で後半は省略でしたが、スライドで最後までゆっくりとご確認ください。

f:id:mackerelio:20171204103850j:plainf:id:mackerelio:20171204103902j:plainf:id:mackerelio:20171204103907j:plain
「Microservices Monitoring ad mercari」セッションの様子

Mackerel自身のモニタリング&監視について

はてなのWebオペレーションエンジニアの大野からは、Mackerel自身の監視について、その監視方法や監視項目、開発したプラグインを紹介されました。 監視ツール自身の監視、なかなか聴くことのできない興味深い内容だったのではないでしょうか。

f:id:mackerelio:20171204103959j:plainf:id:mackerelio:20171204104008j:plainf:id:mackerelio:20171204104015j:plain
「Mackerel自身のモニタリング&監視について」セッションの様子

開発者と監視

Mackerelプロダクトオーナの松木のセッション。 監視に対する考え方と実践方法、監視事例について話されました。 システムに対する高速健康診断にはぜひMackerelをご活用ください!

開発者と監視

f:id:mackerelio:20171204104134j:plainf:id:mackerelio:20171204104142j:plainf:id:mackerelio:20171204104152j:plain
「開発者と監視」セッションの様子

Mackerel Roadmap 2017.11.29

最後はMackerelプロデューサーの杉山から、モニタリングの重要性とMackerelのロードマップを紹介いたしました。 年内リリース予定のメトリックデータの保持期間拡充のほか、異常検知やサポート概念の拡充など、さまざまな機能をご提供する予定です。

f:id:mackerelio:20171204104235j:plainf:id:mackerelio:20171204104247j:plainf:id:mackerelio:20171204104256j:plain
「Mackerel Roadmap 2017.11.29」セッションの様子

懇親会

f:id:mackerelio:20171204102711j:plainf:id:mackerelio:20171204102716j:plainf:id:mackerelio:20171204102719j:plain
懇親会の様子

懇親会ではピザの到着が遅れるトラブルがありご迷惑をおかけしましたが、参加者の皆様は積極的に意見を交換されていて、とても楽しい時間となりました。

Mackerelでは今後もこのようなイベントを定期的に開催し、みなさまとモニタリングの知見を共有していきます。よろしくお願いいたします!

mkr プラグインインストーラーで対象のURLを直接指定できるようになりました ほか

こんにちは。Mackerelチーム CRE の井上(id:a-know)です。

12月ですね! 毎年この季節になると、IT/Web業界では「アドベントカレンダー」と称して、いろんなテーマを題材としたブログ記事で賑やかになるのですが、それは Mackerel でも例外ではありません。あります、Mackerelアドベントカレンダー!

qiita.com

あれっ、こんなカレンダーもありますね......!

qiita.com

同じくCREの曽根(id:Soudai)が張り切っているこちらのカレンダーも、ぜひお見逃しなく。

それでは、今週のアップデート内容です。

mkr プラグインインストーラーで対象のURLを直接指定できるようになりました

先日リリースをし、詳細な利用・活用方法についてもお知らせをした、コマンドラインツール mkr のプラグインインストーラー機能。

mackerel.io

こちらの機能アップデートをおこない、下記のようにURLを直接指定することができるようになりました。

mkr plugin install https://www.example.com/mackerel-plugin-foobar.zip

サードパーティの有用なプラグインを簡単にインストールすることのできるプラグインインストーラーの機能、ぜひご利用ください。

通知チャンネル・PagerDuty連携設定で V2 の API を選べるようになりました

f:id:mackerelio:20171201093609p:plain

Mackerelが連携可能な通知チャンネルのひとつ、PagerDuty連携の設定において、V2 API を選択できるようになりました。

現時点で機能的な差異は無いものの、今後の機能拡張において V2 を利用している場合にのみ利用可能なオプションを追加する可能性はありますので、利用されている方は移行の検討をお願いします。

Mackerel 関連 OSS をアップデートしました

以下のとおり、mackerel-agent をはじめとした各種 OSS をリリースしています。問題を報告くださった方、コントリビュートくださった皆様、ありがとうございました!

mackerel-agent v0.47.3

  • mackerel-agent.conf のプラグインコマンドの設定に不備があった際の出力メッセージを改善しました。
  • ネットワークカウンターが8桁以上のときにinterfaceの値が取れていない問題を修正しました。

mackerel-agent-plugins v0.39.0

  • [docker] Docker Blkio IOPS が per Minute の値を取得していた箇所を per Second に正規化しました
  • [jvm] リモートの jvm を監視するオプションが正しく機能していなかった問題を修正しました。
  • [kinesis-streams] レコードの数や処理バイト数のメトリックについて、「1レコードの統計」を出力していた点を、「1分間の総量」を出力するようにしました。

Mackerel × Twilio Hands-On Seminar の第2回を開催します

今年の4月に第1回を開催し、非常に好評いただいたハンズオンセミナー、Mackerel × Twilio Hands-On Seminar。その第2回が、12月13日(水)に開催されます。

mackerelio.connpass.com

Mackerel - Twilio 連携を非常に活用しておられるというレコチョク様の会場をお借りして、「なぜサーバー監視が必要か」という基礎のところから、エージェントのインストール、そして Twilio を介したアラートの架電通知までを一気通貫で学んでいただける貴重な機会となります。

現在ちょうど定員ぴったり、という申し込み状況ですが、抽選ですので、今から申し込みいただいても十分に可能性はあります。年末年始のサーバー監視・運用体制をより盤石にするための参考として、ぜひどうぞ!

Azureインテグレーションが Virtual Machines に対応しました

早いもので、来週からはもう12月に突入しますね。つい先日、ハロウィンが終わったところだと思っていたのですが......。

12月といえばアドベントカレンダーです! おかげさまで、Mackerel のアドベントカレンダーも少しずつ埋まりつつあります。

qiita.com

まだまだ空きがある状態ですので、みなさま奮ってご参加くださいね!

それでは、今週のアップデート内容をお知らせします。

Azureインテグレーションが Virtual Machines に対応しました

f:id:mackerelio:20171121132609p:plain

エージェントの導入をすることなくクラウドサービスの監視をおこなえる Mackerel のインテグレーション機能ですが、その Azure インテグレーションが Virtual Machines に対応しました!

取得可能なメトリックなどについては、以下のヘルプページも参照してください。

mackerel.io

現在 Virtual Machines にエージェントをインストールして利用されている場合でも、この機能は利用可能です。

両方を利用した場合でも、ひとつのホストとして管理することが可能です(インテグレーション機能で取得されたメトリックは、そのホストの「カスタムメトリック」として連携されます)ので、エージェント単体では取得できないメトリックについても Mackerel に集約することが可能です。もちろん1台分の利用料金ですので、ぜひお試しください!

ホストステータスの変更などのイベントを通知チャンネルに通知できるようになりました ほか

こんにちは。Mackerelチーム CRE の井上(id:a-know)です。

二十四節気でいうと、今は「立冬」にあたります。その暦にふさわしく、今日は各地で今季一番の冷え込みのようですね。今朝は、私も思わず、手袋を取り出してしまいました。 空気もとても乾燥しているようです。体調管理にはくれぐれもお気をつけくださいね。

それでは、今週のアップデート内容をお知らせします。

ホストステータスの変更などのイベントを通知チャンネルに通知できるようになりました

f:id:mackerelio:20171117110812p:plain

特定の通知チャンネルの設定項目として「通知するイベント」という欄が設けられ、今までのアラートの通知に加え、以下のようなイベントについてもそのチャンネルに対して通知をおこなうことができるようになりました。

  • ホストステータスの変更
  • ホストのオーガニゼーションへの登録
  • ホストの退役

これを活用することで、上記のようなイベントの発生の把握に役立つだけでなく、Webhook通知と Amazon API Gateway + Lambda などと組み合わせることで、これらのイベントの発生に応じて任意のアクションを実行する、といった仕組みを構築することもできるかと思います。

通知対象として選べるイベントの種類は、今後も拡張を予定しています。「このイベントも対応してほしい!」といったご意見・ご要望、お待ちしております!

OpsGenie V2 REST API に対応しました

以下のエントリーでもお知らせしておりました、OpsGenie V2 REST API 対応について、今週のリリースで対応が完了しましたのでお知らせします。

mackerel.io

ご迷惑をおかけしました。

Mackerel 公式プラグインレジストリに続々とプラグインが追加されています

先週リリースをし、昨日には解説記事も公開をした、CLIツール・mkr のサードパーティプラグインインストーラー機能。

mackerel.io

作っていただいたサードパーティプラグインは、より多くのユーザーに見つけてもらいやすくするために、公式のプラグインレジストリを用意しています。

github.com

プラグインレジストリのGithubレポジトリにPull Requestを送ることで、登録することができるのですが、さっそく続々と登録がされています。

mackerel-plugin-aws-batchなど、Mackerel として提供するものも追加されていますので、ぜひ一度確認してみてください!

【残席わずか】 "Monitoring Seminar in mercari" を開催します

Mackerel のヘビーユーザー企業でもあるメルカリ様の会場をお借りして、 "Monitoring Seminar in mercari" と題したセミナーを、11月29日(水)に開催します!

mackerelio.connpass.com

Mackerel に限らず、サーバーモニタリング全般についての知見を交換しあう場となります。「サーバー監視」をより身近に考えていただくためのひとつの機会となればと思っていますので、ぜひご参加ください(残席わずかです)!

mkrのサードパーティプラグインインストール機能について

先週のリリースで mkr コマンドへのプラグインのインストール機能が追加がアナウンスされました。これは、ユーザーが自作したサードパーティプラグインをより簡単にシステムに導入しやすくするものです。

これまで、ユーザーが自作したプラグインをシステムに導入するためには、自前でインストールの仕組みを整えるか、以下の中央リポジトリにコードを寄贈いただく必要がありました。

今回のプラグインインストール機能を利用することで、自身のGitHubリポジトリで作成したプラグインを mkr コマンドを用いてインストールすることができます。これにより、プラグインを作成者自身が継続的にメンテンナンス可能になります。

また、中央リポジトリにコードを寄贈頂く場合は、プラグインをGoで開発する必要がありましたが、この機能を利用する場合、プラグインの開発には任意の言語が利用可能です。

利用方法

mkr plugin install コマンドを用いて、指定したMackerelプラグインパッケージの中身をシステムにインストールすることができます。

% sudo mkr plugin install <owner>/<repo>[@<release_tag>]

Githubのowner名とrepository名、さらにGithub Releasesのタグ名を指定することで、GitHub ReleasesからMackerelプラグインパッケージを取得し、インストールをおこないます。

Mackerelプラグインパッケージ形式について

Mackerelプラグインパッケージは単なるzipファイルです。アーカイブの中に mackerel-plugin- もしくは check- から始まる実行可能ファイルが格納していることが期待されています。実行可能ファイルであれば、言語はなんでも構いません。

mkr plugin install コマンドは、それら実行可能ファイルをMackerelプラグインとみなし、所定の位置にプラグインを配置します。デフォルトでは /opt/mackerel-agent/plugins/bin 以下に配置されます。

MackerelプラグインパッケージをGitHub Releasesにアップロードする

% sudo mkr plugin install <owner>/<repo>[@<release_tag>]

上記コマンドを実行した場合、mkr は以下のURLのMackerelプラグインパッケージの取得を試みます。

https://github.com/<owner>/<repo>/releases/download/<release_tag>/<repo>_<GOOS>_<GOARCH>.zip

GitHub Releases の <release_tag><repo>_<GOOS>_<GOARCH>.zip という命名規則に従ってMackerelプラグインパッケージを配置すれば、上記のURLから、Mackerelプラグインパッケージをダウンロード可能になります。mackerel-plugin-sample を例に取ると以下のようになります。

https://github.com/mackerelio/mackerel-plugin-sample/releases

公式プラグインレジストリについて

https://github.com/mackerelio/plugin-registry

ユーザーが作成した有益なプラグインを、公式プラグインレジストリに登録することで、他のユーザーがプラグインを見つけやすくなります。プラグインレジストリに登録されたプラグインは mkr plugin install <plugin_name> という形式でインストールできるようになります。

登録はプラグインレジストリのGithubレポジトリにPull Requestを送ることでおこないます。Pull Requestの内容は、 <plugin_name>.json というファイルを plugins/ ディレクトリ配下に作成するだけです。JSONファイルのフォーマットは以下のとおりです。

https://github.com/mackerelio/plugin-registry/tree/master/plugins で現在登録されているプラグイン一覧を見ることができます。

公式プラグインレジストリに登録されているプラグイン自体のメンテナンス権やライセンスに関しては、参照先のリポジトリに準ずることをご了承下さい。

是非どしどしPull Requestをお寄せ下さい。

余談ですが、このようなパッケージ管理のレジストリには、 CPANRubyGemshomebrew のようなクールな名前がついていることが多いため、 公式プラグインレジストリにも命名が検討されました。はてなCTO id:motemen による tsukiji が魅力的だったのですが、様々な理由により却下となり、無難な plugin-registry という名前に落ち着きました。

既存の中央リポジトリへのPull Requestについて

これまで、新しいプラグインの登録を上記中央リポジトリで受け付けてきましたが、今後、新しいプラグインの追加は原則受け付けません。もちろん、既存のプラグインへの機能追加やバグ修正はウェルカムです。

新しいプラグインを作成した場合は、ユーザー自身でプラグインリポジトリをGitHub上に作成し、それを、公式プラグインレジストリに登録するようにして下さい。

レジストリに登録されたプラグインを、rpmやdebで配布しているMackerel公式のプラグインパッケージに取り込みたい場合には、別途issue等でご相談下さい。また逆にレジストリに登録されたパッケージを公式プラグインパッケージへ取り込むことを、Mackerel開発チームから作者の方に打診させていただくこともあるかと思いますので、その際はよろしくおねがいします。

より詳細なドキュメントについて

本エントリに記載した、サードパーティのプラグインのインストール方法や、Mackerelプラグインパッケージの作成方法についての詳細は以下のヘルプをご参照下さい。

mackerel.io mackerel.io

今後の拡張について

今後以下の様な拡張を検討しています。

  • 現状、Mackerelプラグインパッケージの命名が <repo>_<GOOS>_<GOARCH>.zip と厳密に定められているため、これを柔軟にテンプレート的に設定できるように
  • インストールしたプラグインのアップデート機能
  • メタデータプラグイン対応

もちろん、本機能に対する追加機能提案やPull Requestもお待ちしています。

まずは、プラグインを自作して、公式プラグインレジストリ へPull Requestをお送りいただけるとうれしいです。

CLIツール・mkr にプラグインインストーラー機能を追加しました ほか

昨日、会社としてのプレスリリースも出していますが、クラウド事業者様向けの新機能である「Cloud Provider(クラウド・プロバイダー)インテグレーション」の提供を開始しました。

hatenacorp.jp

その「Cloud Providerインテグレーション」機能の提供の第1弾として、ビッグローブ株式会社のパブリッククラウド「BIGLOBEクラウドホスティング」との連携も合わせて発表しています。

こうした機能の開発もしていくことで、より多くのサーバー管理者の方々のお力になりたいと考えています。

それでは、今週のアップデート内容です。

CLIツール・mkr にプラグインインストーラー機能を追加しました

Mackerel の CLIツールである mkr に、プラグインインストーラー機能を追加しました。

どのような機能かということを一言でいうと、「公式プラグインリポジトリ以外のプラグインを、より簡単にインストールするための機能」となります。 以下のように、ヘルプページもご用意しています。

mackerel.io

mkr のプラグインインストーラーに対応したプラグインの作成方法については、以下のページをご覧ください。

mackerel.io

公式プラグインはすべて Go 言語で開発をしていますが、プラグインインストーラーへの対応プラグインは開発言語を選びません。 Mackerel 公式でプラグインレジストリを用意していますので、作成していただいたプラグインはどしどしこちらに登録してください!

github.com

以上のようなプラグインインストーラーとその活用方法についての単独の解説エントリの公開を、来週中に予定しています。こちらもぜひお楽しみにお待ちください!

mackerel-agent などをリリースしました

mackerel-agent をはじめとした各種 OSS をリリースしています。詳細は以下の通りです。 コントリビュートくださった皆様、ありがとうございました!

mackerel-agent v0.47.2

  • Go 1.9.2 を用いてビルドするようにしました。
  • Heroku などの環境でERROR ( open /sys/block: no such file or directory ) と出ていたものを、DEBUGメッセージに変更しました。

mackerel.io

mackerel-agent-plugins v0.38.0

  • [postgres] 処理を改善しました
    • PostgreSQL 10 と Azure Database for PostgreSQL で利用可能になりました
  • [docker] CPU利用率を表すグラフを変更しました
    • 非互換変更となります
    • 今までは生の counter 値でしたが、今回のバージョンアップで CPU percentage での表示になります
    • -cpu-format オプションを指定することで、今まで通りの挙動にすることも可能です
  • [cloudfront] -metric-key-prefix オプションが利用可能になりました

Mackerel のアドベントカレンダーが作成されました!

11月になったこともあり、そろそろ技術系のアドベントカレンダーの季節でもありますね。 今年も Mackerel のアドベントカレンダーが作成されています。

qiita.com

今ならまだまだ、どの日程でもよりどりみどりです!皆さんのご参加をお待ちしています!

キーボードショートカット機能を実装しました ほか

去る10月31日(火)は、AWS CloudRoadShow 福岡でのブース出展をしていました。

当日は大変多くの方にお立ち寄りいただきました。誠にありがとうございました!

それでは、今週のアップデート内容をお知らせします。

キーボードショートカット機能を実装しました

コマンドラインツールの mkr などのように、「Mackerel の主要なユーザーであるエンジニアのみなさんの作業効率を向上できること」も、Mackerel の大事な要素だと考えています。

普段 Mackerel の Web 画面を使っていて、できるだけ多くの作業をキーボードで実施したい、と思われたこともあると思います。今週のリリースで、キーボードショートカット機能を実装しました!

f:id:mackerelio:20171102085701p:plain

チートシートは ? で表示させることができます。ぜひご利用いただき、「こういう操作にもキーボードショートカットが欲しい!」といったことがありましたら、ぜひフィードバックをお願いします!

1リクエストあたりのチェック監視結果投稿数に上限を設けました

今週の Mackerel API 側のアップデートにより、1リクエストあたりのチェック監視結果投稿数に上限を設けました。

mackerel.io

これにより、mackerel-agent の v0.46.0 以前のバージョンをご利用いただいていて、なおかつ101件以上のチェック監視を設定している場合には、チェック結果の投稿をおこなえなくなりました。 v0.47.0 以降のバージョンであれば、問題なく利用できますので、該当される方はエージェントのバージョンアップをお願いいたします。