ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

AWSをMackerelで監視(開始編)

こんにちは。ソリューション技術部の松尾です。 今回は AWS、Azure などのクラウドサービスを簡単に統合管理および監視ができるMackerelの開始方法について紹介したいと思います。

Mackerelとは?

Mackerelは監視サーバ自身の面倒な構築・運用は不要で、サーバにエージェントを1つ入れるだけで簡単にサーバ管理を始められます。

CPU使用率、メモリ使用率、Disk使用率などの基本的なメトリクスの取得のみであれば、30分とかからずセットアップ可能です。

以下Mackerelのホームページです。

mackerel.io

なお、話が逸れますがMackerelは日本語で「鯖」という意味で、サーバ ⇒ 鯖 ⇒ Mackerel が由来らしく、私の実家が鮮魚店を営んでいるため少しだけ親近感が湧きました。

Mackerelの利用開始について

ありがたいことにMackerelにはTrial期間があり、利用開始して2週間は全てのサービスが無料で利用できます。(ただし、登録できるホスト数は255台までの上限があります)

※クレジットカード登録は不要で、自動的に課金されることはありません。

Trial期間が終了した場合は自動的にFreeプランに切り替えられ、利用できるサービスに制限がかけられます。

詳細は以下をご確認下さい。

mackerel.io

Mackerelの開始方法

Mackerel利用開始~基本的なメトリクスを取得までであれば、やることは以下の2点だけです!

1.Mackerelサインアップ

2.Mackerelにホストの登録(MackerelAgentのインストール)

※監視・アラートの設定やSlack連携などは次以降のブログで公開します。

いかに早く監視を開始できるかは実際に触って確認してみましょう!

Mackerelの公式サイトから「無料で試してみる」を押下すると、サインアップ画面に切り替わります。

f:id:matsuo1017:20180613180920p:plain
サインアップ画面

サインアップ完了後はオーガニゼーション名、利用目的の入力画面に切り替わります。

オーガニゼーション名は何でも構いませんが、複数のオーガニゼーションを作成した際を考え、環境名などを入れることをお勧めします。(matsuo-mackerel-productionやmatsuo-mackerel-developなど)

※オーガニゼーションごとに管理するホストを分けることができます。

★過去の個人的な反省点となりますが、1つのオーガニゼーションにひたすらホストを追加していくと現在のUI画面の仕様上かなり煩雑になり管理がしづらくなりますので、登録する台数が多くなりそうであればオーガニゼーションを分けることをお勧めします。

f:id:matsuo1017:20180613174940p:plain
オーガニゼーション作成画面

アンケートに関しましては、利用目的が「個人で利用」であればその他の入力は必要ありません。 「会社での導入を検討」を選択した場合はその他のアンケートの入力が必須となります。

オーガニゼーションの作成が完了したら、契約プランの一覧画面が表示されます。 前項でお話しした通り、Trial期間は2週間全ての機能が無料で使用可能です。 「Trialプランをはじめる」を押下してセットアップを開始します。

f:id:matsuo1017:20180613174942p:plain
プラン一覧

Mackerelの開始画面が表示されます。 案内に従ってセットアップを行ってみましょう!

f:id:matsuo1017:20180613174945p:plain
開始画面①

今回は基本設定の2~5までの手順を紹介します。

※1 はオーガニゼーションの作成のため既に完了済みです。

2 の「新規ホストの登録」を行います。 Mackerelで監視を行うホストにはMackerelAgentのインストールが必要です。 ※AWSインテグレーションでもホストの登録は可能ですが、それはまた別途紹介したいと思います。

開始画面で「新規ホストの登録」を押下すると新規ホストの登録画面に切り替わります。

f:id:matsuo1017:20180614131349p:plain
新規ホストの登録画面①

今回はAmazon LinuxにMackerelAgentをインストールする方法を紹介します。 Amazon Linuxの折り畳みを展開すると、EC2インスタンス上で実行するコマンドが表示されます。

f:id:matsuo1017:20180614132320p:plain
新規ホストの登録画面②

コマンドのみ抜き出すと以下の通りです。 ※Amazon Linuxの場合

curl -fsSL https://mackerel.io/file/script/amznlinux/setup-all-yum.sh | MACKEREL_APIKEY='<YOUR_API_KEY>' sh

上記のコマンドを実行すると、MackerelAgentがインストールされ、以下のディレクトリとファイルが作成されます。

/etc/mackerel-agent/mackerel-agent.conf

「MACKEREL_APIKEY='<YOUR_API_KEY>'」で指定したオーガニゼーション固有のAPIキーが「mackerel-agent.conf」内に記載され、Mackerel画面にホストが登録されます。

登録されたホストの一覧はMackerel UI画面の左ペインの「Hosts」で確認できます。

f:id:matsuo1017:20180614144726p:plain
Hosts画面①

ホスト名はOS上で設定されたホスト名から取得してきており、Amazon LinuxではデフォルトでプライベートIPアドレスがホスト名に付与されるため、上記のような表示となっております。 ここまでの作業が完了すると、基本的なメトリクスは既に取得が開始されており、ホストを選択すると各メトリクスの確認を行うことができます。

f:id:matsuo1017:20180614150004p:plain
Hosts画面②

次に登録したホストに対しサービス、ロールの設定を行います。

サービスはホスト集合(グループ)と考えていただければと思います。 サービスを作ることで、複数台のホストの状態を一画面で素早く確認できるようになります。 また、今回のBlogでは紹介しませんが、アラートや通知の設定を行う際などに対象のホストの絞り込みに必要になります。

ロールはサービス内の役割と考えていただければと思います。 ロールを作成することでサービスに所属することができるようになりますので、必ず設定を行いましょう。

サービスはMackerel UI画面の左ペインの「Services」で追加できます。 メモには見た人がこれがどのようなサービスかを一目でわかるような内容を記載いただければと思います。

f:id:matsuo1017:20180614153137p:plain
サービス作成画面①

サービス追加後は以下のようにサービスが表示されます。

f:id:matsuo1017:20180614153140p:plain
Services画面①

次にロールを作成していきます。 Services画面からロールの作成を行いたいサービスを選択します。 「ロールを追加」からロールの作成を行います。 メモには見た人がこれがどのような役割かを一目でわかるような内容を記載いただければと思います。

f:id:matsuo1017:20180614154135p:plain
ロール作成画面

ロール作成後は以下のようにServices画面に表示されます。 まだホストを紐づけていないためメトリクスは表示されていません。

f:id:matsuo1017:20180614154139p:plain
Services画面②

では、作成したサービス・ロールにホストを紐づけます。 Hosts画面に表示されているホストのうちサービス/ロールが割り当てられていないホストは「ロールを設定」が表示されます。

f:id:matsuo1017:20180614155116p:plain
Hosts画面③

「ロールを設定」を押下し先ほど作成したサービス/ロールを割り当てます。

f:id:matsuo1017:20180614155119p:plain
サービス/ロール割り当て画面

ホストにサービス/ロールが割り当てられたことが確認できます。

f:id:matsuo1017:20180614155121p:plain
Hosts画面④

先ほどメトリクスが取得できていなかったServices画面でもメトリクスが取得できるようになったことが確認できます。

f:id:matsuo1017:20180614160012p:plain
Services画面③

これで手順1~5までの作業が完了です! Mackerel UI画面でも祝福されてます!

f:id:matsuo1017:20180614160813p:plain
開始画面②

次の配信について

ここに書きたいことを全て詰め込んだらかなりの分量になりそうだったので、とりあえずは始めるところからという内容で書かせていただきました。

今後は以下のような内容を配信出来ればと思っています。

  • AWSインテグレーション
  • モニター(アラート)の設定・通知方法(Slackとの連携なども)
  • pluginによる監視(テンプレで使えそうな設定など)
  • Windowsの監視方法
  • 運用で困ったこと

などなど・・・

他にもご要望がありましたらコメントください!

最後になりますが、Mackerelははてなさんがユーザの要望に合わせて積極的にUIの改善などを行っているので、UIで気になる点があればどんどんアプローチしていきましょう!!

はてなさん今後とも宜しくお願いします!!