2015.05.21

KCPSから「Mackerel」提供開始! 〜Mackerelで実践するサービス利用状況の”見える化”〜

はじめまして。KDDI Business IDの開発を担当している中嶋です。先月、KDDIクラウドプラットフォームサービス(以下、KCPS)のパートナーサービスとして、株式会社はてな のサーバ監視サービスである「Mackerel(マカレル)」を提供開始しました。Mackerelはサーバのリソース状況を管理するサービスですが、KDDI Business IDではMackerelのカスタムメトリックを使用して、サービスの利用状況を”見える化”しています。今回はその方法を紹介したいと思います。

1

Mackerelとは?

2

本題に入る前に、Mackerelの特徴について説明したいと思います。

■導入が簡単
サーバの監視を行う場合、ZabbixやNagiosなどのOSSの監視ツールを利用して監視する方法が多いと思いますが、設定が複雑で導入に時間が掛かります。MackerelはKCPS上の仮想サーバにエージェントをインストールするだけで死活監視、リソース監視が可能になります。

■管理コスト不要
監視ツールを利用する場合、管理する人的コスト、監視ツールを動作させるサーバのコストが掛かりますが、Mackerelではそれらが不要になります。

■UIが使いやすい
監視ツールはUIが扱いにくいものが多いですが、Mackerel管理コンソールはUIが洗練されていて非常に使いやすいUIになっています。特にグラフ表示は、複数のサーバのメトリックを重ねて表示できたり、期間で絞って表示できたりして、ボトルネックとなっている箇所が見つけやすくなっています。

■カスタムメトリック
CPU、メモリなどのシステムメトリックに加え、Mackerelが提供している公式プラグインにより各種ミドルウェアのメトリックが収集可能になります。また、独自定義により任意のメトリックを収集することもできます。

■セキュア
KCPS内部に監視ゲートウェイを設置していて、インターネットを経由せずセキュアな監視が可能です。
Mackerel管理コンソールへのログインはKDDI Business IDを利用した認証を行っていて、アドレス制限や多要素認証を利用したセキュアなログインが可能です。

3

上記機能面以外にもMackerelを採用した理由としては、KCPSの利用者向けカスタマーコントロールである「Admin Console」との親和性が高いことがあります。MackerelにはAPIがあり、ホスト情報やメトリック情報の取得が可能になっていて、Admin ConsoleからAPI連携がしやすい仕様であったことと、Admin Consoleの開発と同様にMackerelもアジャイルで開発しているため、一緒に成長していくことができることが魅力的でした。

サービス利用状況を”見える化”する理由

それでは本題に入ります。冒頭に説明しましたが、KDDI Business IDではMackerelを利用してサービスの利用状況の”見える化”を行っています。KDDI Business IDはアジャイルでサービスの開発を行っていますが、サービスを継続的に成長させ続けるアジャイル開発では、サービスの利用状況を”見える化”することが非常に重要です。なぜなら、サービスがどの程度利用されているか、どのように使われているか、リリースした機能がどのような効果を出しているのかを監視してユーザの利用方法やニーズをいち早く把握することで、次に追加する機能・改善すべき機能を的確に考えることができ、アジャイル開発によって素早くサービスに反映することができるからです。また、利用状況を企画担当者だけでなく、開発エンジニアにも見える環境をつくることで、開発エンジニアのモチベーションアップにつながったり、開発エンジニアから機能提案できたり、といった効果もあります。Mackerelを利用することでサービス利用状況の”見える化”が簡単に実現できます。アジャイル開発に限らず利用状況を”見える化”することは重要だと思いますので、参考にしてみてください。

Mackerelでサービス利用数を”見える化”する方法 

今回は、以下の構成のクライアントにMackerelエージェントをインストールして、サービス利用社数・アカウント数を収集する方法を説明します。

[構成]
データベースサーバ
・CentOSにpostgresql-serverインストール
・以下のテーブルを作成
TENANT:契約社情報を管理するテーブル
ACCOUNT:アカウント情報を管理するテーブル

クライアント
・CentOSにpostgresql-develインストール
・ruby, gemインストール

Step1:カスタムメトリクス用ファイル作成。
Rubyのpgライブラリをインストール。

 

カスタムメトリック用ファイルusages.rbを作成。配置場所は/opt/mackerelとします。

試しに実行してみます。

結果が表示されればOKです。

Step2:mackerel-agentインストール
mackerel-agentをインストール。今回はrpmでのインストールとします。

Step3:mackerel-agent設定ファイル編集
Mackerel管理コンソールにログインして、APIキーを確認します。KCPSのAdmin Consoleから「mackerel」をクリック。

9 

「Sign In with KDDI Business ID」をクリック。

10

左メニューからオーガニゼーション名をクリック。

11

画面下部にAPIキーをコピーしておく。

12

mackerel-agent設定ファイルを編集。

末尾に以下の内容をコピーします。

Step4:mackerel-agent起動

mackerel-agentを起動。

Mackerel管理コンソールから結果を確認する。左メニューからHostsを選択。

16

mackerel-agentをインストールしたホスト名が表示さていることを確認して、ホスト名をクリック。

17

画面下部にカスタムメトリックが表示され、グラフ表示されればOKです。

18

まとめ

今回はデータベースから利用数を収集する方法を説明しました。カスタムメトリック用ファイルの4行目〜20行目のmetaデータ定義と、60行目〜64行目の対応するSQLを増やすことで他の情報も簡単に収集することができます。カスタムメトリックの詳細な仕様についてはMackerelヘルプを参照してください。データベースから収集する方法以外にログから利用状況を収集する方法もありますので、またの機会に紹介したいと思います。

カテゴリ
タグ

KDDI株式会社 プラットフォーム開発本部
アジャイル開発センター

中嶋 優

新着記事
タグ
アーカイブ
カテゴリー
TOP