ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

newrelic-logo

Labels:  DevOps 投稿者:satoshi

【NewRelic】たった5分で導入完了!高機能のサービスモニタリングツール

newrelic-logo-square-rgbhex6

こんにちわ!ランサーズの satoshi です。
今回は、クライアントサイド、サーバーサイド両方のモニタリングが出来る NewRelic をご紹介します。

サーバーのモニタリングツールだと、Munin 等が有名ですが、導入には手間がかかります。しかし、NewRelic なら、本当に5分で導入が完了します!しかも超簡単です。

まずは、ざっくりと機能の紹介をさせて頂きますので、導入方法 を知りたい方は、読み飛ばして下さい!

サーバーサイドのモニタリング

レスポンスタイム

スクリーンショット 2013-09-22 14.00.08

上記のグラフのようにアプリケーションの処理、データベース処理、キャッシュエンジンを使っているならその処理(この場合はMemcached)それぞれに使われた時間が表示されます。
これが、各ページ毎に確認する事が出来き、ページでレスポンスが悪い場合、右下に トレース の結果が表示されます。

トレースでの内容(transaction traces)
001

Summaryタブ

どの処理に時間がかかっているのか、データベースのテーブルへのSELECT分単位で確認する事が出来ます。ここまで確認できるのはかなり便利です。

Trace detaillsタブ

時系列での処理内容が確認できます。各クラスとメソッド単位で確認できるので、フレームワークの理解の助けにもなるのでは?

SQL statementタブ

これでは、具体的なクエリレベルでの確認が出来ます。MySQLだとスローログを取っていれば確認できますが、NewRelicなら他のボトルネックと合わせて確認出来る事が魅力です。これでパフォーマンスチューニングが楽になりますね。

クライアントサイドのモニタリング

002

Web application:サーバサイドの処理
Network:ソースダウンロード通信
DOM processing:DOM 構築処理
Page rendering:CSS, Js などでのページが表示するまでの処理

上記がそれぞれどれくらいの時間なのかをグラフにて表示されます。

5分で完了!簡単導入ガイド

お待たせしました。それでは、NewRelicの導入手順をご紹介します。
今回は PHP x CentOS での手順となります。

まずは、NewRelic にてアカウント を作って下さい。

スクリーンショット 2013-09-22 0.58.19

アカウントを作成したら「Get Started」から開始します。

スクリーンショット 2013-09-22 0.58.42

はじめに、言語を選択して下さい。今回は PHP を選択しました。

1. Get your license key
スクリーンショット 2013-09-22 0.59.57

「Reveal license key」からライセンスキーを表示させます。ここはこのままで大丈夫です。

2. Install the PHP agent
スクリーンショット 2013-09-22 1.00.23

環境を選択します。今回は「RPM-based (Redhat, Centos, etc.)」を選択しました。

スクリーンショット 2013-09-22 1.00.53

この下に表示されるコードを実行します。64bitの環境なので、以下を実行。

sudo rpm -Uvh http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm

その後、以下のパッケージをインストールします。

sudo yum install newrelic-php5
sudo newrelic-install install

newrelic-install install の際に、ライセンスキーを聞かれるので、上記で表示させたライセンスキーを利用します。

3. php.ini にライセンスキーを登録します。
  1. バックアップ
  2. sudo cp /etc/php.ini{,.`date +%Y%m%d`}
  3. 編集 表示されているライセンスキーを登録
  4. newrelic.license="00000000000000000000000000"
  5. 反映内容の確認
  6. sudo diff /etc/php.ini{,.`date +%Y%m%d`}
  7. 適応
  8. sudo /etc/init.d/httpd graceful

まれに、graceful だと反映されない事があるそうなので、その場合は、 restart して下さい。
phpinfo() にて、newrelic の項目があれば、成功です。正しく登録できていれば、5分程で結果が確認できます。

今回は、PHP x CentOS での手順ですが、 NewRelic のサービス上でもそれぞれの環境に応じた手順がありますので、その他の言語(Ruby, Python, Node.js, .NET)OS でもご安心ください!
今回ご紹介した機能はNewRelicのほんの一部の機能なので、興味ある方は是非色々触ってご活用ください。スマホへのプッシュもできるアラート機能やサーバのMuninのようにリソース監視なども出来ますので、機会があればまた紹介させて頂きます!

ランサーズでは、現在、Webエンジニアを募集しています。
詳しくは、募集要項をご覧下さい。

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。


【中途採用】
フロントエンドエンジニア
サーバーサイドエンジニア
コーポレートエンジニア
SREエンジニア

【新卒採用・その他】
21・22新卒
その他採用情報

関連記事

ランサーズに出戻って1年。担当した開発プロジェクトを振り返る。

「ランサーズ Advent Calendar 2018 」23日目の記事です。 こんにちは ランサーズでEngineering Managerをしてます神庭(godgarden)です 残すところ, 今年も数営業日。1年の振り返りをしている方も多いと思います. …

CakeFest2019に参加しました!

みなさん、こんにちは。 ランサーズでエンジニアとして、インターンをしている太田(OtaYuki)です。 私の初めての投稿である今回の記事では、自分が参加したCakeFest 2019について書いていきたいと思います。 CakeFestは国際的なイベントで、実は …

新規事業開発におけるエンジニアの心得〜失敗事例から学ぶツクラナイ開発〜

tsuyoshi(@numanomanu)です。 先日、エンジニア向けのイベントで登壇して来たので、その時の資料を共有させていただきます。【サポーターズCoLab勉強会】新規事業開発におけるエンジニアの心得。 私自身、昨年、CtoCサービスの新規事業の立ち上げ …