クラウドの監視・管理サービスについて、第2弾。
性能監視サービスNew Relicについてまとめます。
※下記は、2013年8月末時点の情報です。
(2017/11/1追記)
ここに記載したNew Relicの機能のうち、サーバーリソース監視のNew Relic Serversは、2017年11月14日をもってサービス終了とのことです。
・New Relic Technical Community/Important: Upcoming Changes for New Relic Servers and legacy alerting features
https://discuss.newrelic.com/t/important-upcoming-changes-for-new-relic-servers-and-legacy-alerting-features/49474
後継サービスのNew Relic Infrastructureは、フリープランが用意されておらず、サーバースペック、台数に応じた料金となっています。
(2017/11/1追記ここまで)
New Relicの機能
New Relicは、性能監視サービスです。
https://newrelic.com/
- 監視対象となるサーバーにエージェントをインストールすることで、自動的に性能監視に関する情報をNew Relicのサーバーに収集します。
- 性能データは、監視対象サーバー→New Relicの向きで流れます。New Relicから監視対象サーバーへのアクセスはありません。
- 大きく分けて、サーバーリソース監視とアプリケーション監視の2種類の監視が可能です。
- アプリケーション監視は、PHP, Java, Ruby, .NET, Pythonに対応しています。また、Apache HTTP, Nginx, MySQL等のミドルウェアの状態を監視するプラグインも多数あります。(こちらは動作確認ができていません。)
- サーバーリソースの監視項目は下記のとおり。
- CPU使用率
- CPU Load Average
- メモリ・スワップ使用量(バッファ、キャッシュを除いた実質的な使用量が表示されます)
- ネットワーク転送量
- プロセス(各プロセスの起動ユーザー、プロセス数、CPU使用率、メモリ使用率)
- ディスクI/O使用率
- ディスク使用率
- アプリケーションの監視項目は下記のとおり。
- Response Time / レスポンスタイム(ms)
- Throughput / スループット(rpm)
- Web Transaction / Webトランザクション(ページ)
- プログラム処理やDBテーブルごとのアクセス時間など。
- Apdex Score / Apdexスコア
- Error Rate / エラー率
- DBレスポンスタイム(Standard/Proプランのみ)
- 指定した閾値を超えた場合にアラート通知する機能があります。
- サーバーリソース監視のアラート通知
- CPU使用率
- ディスクI/O使用率
- メモリ使用率
- ディスク使用率
- アプリケーション監視のアラート通知
- Apdexスコア
- Error率
- サーバーリソース監視のアラート通知
サーバーリソース監視のオーバービュー。
対象サーバーはさくらのVPS 2G。
Phisical Memory(メモリ使用率)のグラフで、UsedとSwapが同じ線になっているのはグラフ表示のバグだと思われます。
※スワップ使用量自体は正しい値が取れています。
アプリケーション監視オーバービュー。
対象アプリケーションはWordPress。
アプリケーション監視のWebトランザクション画面。
DBアクセスにはほとんど時間がかかっていないことがわかります。
サーバーリソース監視のアラート通知閾値設定画面。
CPU使用率、ディスクI/O使用率、メモリ使用率、ディスク使用率を指定できます。
赤(Critical)で設定した閾値を超えるとアラートメールを送信します。
アプリケーション監視のアラート通知閾値設定画面。
Appdexスコア、エラー率を指定できます。
赤(Critical)で設定した閾値を超えると(Appdexスコアの場合は閾値を下回ると)アラートメールを送信します。
New Relicの料金
- 無料のLITEプランでは、直近24時間までのデータ参照が可能です。
- とくに記述はないので、監視対象のサーバー数の制限はありません。(僕は3台監視できるのを確認しました。)
- STANDARDプランでは、サーバー1台あたり$24/月で、直近1週間までのデータ参照が可能です。
- STANDARDプランには、DBレスポンスタイムの分析機能があります。
- AWSを使用していれば、STANDARDプランが無料で使えます。 https://newrelic.com/aws
- (のですが、僕はこのことを知らなくて、通常のSign Upを行ってしまいました。)
New Relicの設定
まず、New RelicのサイトでSign Upし、監視エージェントに設定するライセンスキーを取得します。
(ライセンスキーはNew Relicのアカウントで共通で、監視対象のサーバーごとに変更する必要はありません。)
次に、監視対象のサーバーにエージェントをインストールし、ライセンスキーをセットします。
すると、サーバーの情報が自動的にNew Relicに送信され、数分で管理コンソールで性能が表示されます。
リソース監視のためのサーバー設定(Redhat系OSの場合)
New Relicのリポジトリを追加。
# rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
リソース監視エージェントをインストールし、ライセンスキーをセット。
# yum -y install newrelic-sysmond # nrsysmond-config --set license_key=<LICENSE_KEY>
リソース監視エージェントの起動と、自動起動設定。
# /etc/init.d/newrelic-sysmond start # chkconfig newrelic-sysmond on
アプリケーション監視(PHPの場合)のためのサーバー設定(Redhat系OSの場合)
PHP監視エージェントをインストールし、ライセンスキーをセットして、PHPモジュールをインストールする。
# yum -y install newrelic-php5 # export NR_INSTALL_KEY=<LICENSE_KEY> # newrelic-install install
New RelicエージェントとWebサービス Apacheを再起動。
# /etc/init.d/newrelic-sysmond restart # /etc/init.d/httpd restart
Apacheではなく、Nginx + php-fpmであれば、下記のとおり。
# /etc/init.d/php-fpm restart # /etc/init.d/nginx restart
サーバーの設定はたったこれだけです。
簡単ですね!
性能監視ツールとNew Relicの長所
アラート通知機能をもつ性能監視を行うことで、下記のメリットがあります。
- サーバーリソースの枯渇を検知する。
- サーバーリソースの増減を把握することで、アクセス急増時のスケールアップ、スケールアウトの目安となる。
- アプリケーションやDBクエリーのボトルネック箇所を検出し、性能改善・チューニングの参考とする。
日本では、性能監視ツールとしては、ZabbixやCacti, Munin, MRTGを使用し、必要に応じて、アラート通知のためNagiosを組み合わせるケースが多いと思います。
これらのツールは多機能でとても便利なのですが、監視対象のサーバーにエージェントをインストールしたり、監視ツールで監視対象のエントリーを設定するのが大変ですね。
監視対象が増えるたびに、毎回手作業でエントリーを追加する必要があります。
New Relicを使うと、こうした運用管理の手間を大きく減らすことができます。
そもそも監視サーバーを用意する必要がありませんし、監視エージェントをインストールするだけで、あとはNew Relicのほうで勝手にグラフ化してくれます。
監視エージェントのインストールもコマンドを順番に実行するだけなので、導入を自動化できます。
Chefのようなサーバー構成ツールに組み込むことができますし、オートスケールサービスやAWS Beanstalkのように、サーバーインスタンスが自動的に生成されるようなサービスの初期設定スクリプトに組み込めば、自動的にNew Relicによる監視が開始されます。
無料プランでは24時間しか性能データを参照できません。
また、アラート通知できる項目はCPUやメモリ、ディスクなど基本的なリソースに限定されています。
ですが、導入・メンテナンスの手間を考えると、運用保守専門のメンバーがいない場合などは、その点を割り切って採用しても十分メリットがあるかと思います。
ただし、監視エージェントが監視対象のサーバー上で動作しているというしくみですので、監視対象サーバーのダウンは検知できないことに注意する必要があります。
サーバーの死活監視については、Pingdomを使うとよいでしょう。
(2014.5.10追記)
その後、サーバーダウン時にアラート通知する’Downtime alerts’機能が追加されました。
(2014.5.10追記ここまで)
また、週単位、月単位、年単位など、中長期的なスパンで性能を監視すると、「○○という機能を導入してからサーバーが重くなった」などの変化に気づくことができます。
New Relicの有料プランを利用するか、従来の性能監視ツールのうち、比較的導入が簡単なツールと併用するのでもよいと思います。
無料で使用開始できるので、ぜひ試してみてください。
AWSのユーザーはトップページではなく、https://newrelic.com/aws からSign Upすると、Standardプランが無料で使用できるようです。
余談になりますが、New Relicは営業活動がとても活発で、有料プランへのお誘いやディスカウントセールのメールがちょこちょこ届きます。
先日、直接電話が来たときはびっくりしました。
→英語でうまく答えられず、メールでやりとりすることにしてもらいました。