こんにちは。
キャスレーコンサルティングのSD(システム・デザイン)部:野田です。

弊社はAWS(Amazon Web Services)などのクラウド環境を積極的に取り入れており、システム構築をしております。
インフラ部分はクラウドベンダーが何もかも担当してくれるため、開発土台の構築は本当に楽になったと思います。
また、パフォーマンス監視についてもクラウドベンダーにお任せしてしまうことで、運用の負担を減らすことも可能となりました。

しかし、すべてをベンダーに丸投げしても、思った通りの監視が出来ないことが多々あります。
私は最近のプロジェクトにおいて、AWS環境をNewRelicというサービスでパフォーマンス監視する開発に携わりました。
そこで、クラウド特有の監視方式にとらわれない、NewRelicでのパフォーマンス監視についてご紹介したいと思います。

そもそもNewRelicって?


New Relic は、ソフトウェア・アナリティクスを業とする米国企業。カリフォルニア州サンフランシスコが拠点。現在の CEO、ルー・サーンが 2008 年に創業した。New Relic のサービスは、ウェブアプリケーションやモバイルアプリケーションのリアルタイム監視であり、クラウド、オンプレミス、あるいはそのハイブリッド環境で稼働させることができる。提供形態は SaaS(Software as a Service)モデルである。ちなみに「New Relic」という名前は、創業者ルー・サーン(Lew Cirne)のアナグラムである。
引用-「New Relic
『フリー百科事典 ウィキペディア日本語版』より。
“最終更新 2016年2月6日 (土) 14:59″ UTC


上記のように、ウェブアプリケーション・モバイルアプリケーションのリアルタイム監視に加え、サーバ監視・ブラウザ監視までリアルタイムで確認することができるサービスです。
NewRelicを使用することの利点としては、大きく2つあります。

・監視サーバを立てる必要がない。
・収集したパフォーマンスデータを自動的にグラフ化してくれる。

それぞれについて解説していきましょう。

監視サーバを立てる必要がない

まず、パフォーマンス監視をするには必ず「監視サーバ」というものを構築する必要があると思います。
システム内でマネージャ機能を持った「監視サーバ」が、エージェントを監視する・・・。
監視の形としてはこのような構図が多いのではないでしょうか。

NewRelicでは、NewRelic側でエージェントを一元管理をしてくれるので、「監視サーバ」という存在は必要ありません。
また、監視画面はインターネット上で確認できるので、「リモート操作が出来ないから、サーバルームに入って確認しなきゃ・・・」なんて手間もありません。
監視専用のサーバを購入する必要がなくなり、購入費用の削減やサーバ台数をスリムにすることができます。

収集したデータを自動的にグラフ化してくれる

こちらも、マネージャ機能を持った「監視サーバ」でパフォーマンス状況をグラフ化してくれる機能があると思いますが、
NewRelicでは自動的にグラフ化してくれるので、インターネット上からパフォーマンス状況をグラフィカルに
確認することができます。

データ保持期間はプランによりますが、短期間・中期間・長期間でパフォーマンスの推移を確認することができます。
また、通知機能も備わっているので、閾値を設定してパフォーマンス異常に即時検知することも可能です。

いかがでしょうか。
市販の監視ソフトにも勝るとも劣らない機能が、NewRelicには備わっています。

インストールしてみよう

さて、それではNewRelicの導入方法についてご紹介していきます。
今回は以下のAWS環境に導入してみました。
・Amazon Linux AMI 2016.03.d

1.NewRelicアカウントの作成
まずはNewRelicのアカウントを作成します。

AWS環境利用者には、AWS専用の登録サイトがあるので以下のリンク先からアクセスしてください。
http://newrelic.com/aws

アカウント作成には、「Sign Up」をクリックします。

40

登録には以下の情報が必要です。
・名前
・メールアドレス
・NewRelicパスワード(任意の文字列)
・電話番号(国指定を”日本”にすること)
・国
・会社名
・従業員数
・サーバ台数

41

上記を記入し「私はロボットではありません」と、「Terms of Service」にチェックを入れ、「Sign Up for New Relic」をクリックしてください。

42

少し経つと、登録時に入力したメールアドレス宛に確認のメールが来るので、リンク先をクリックして登録が完了します。

2.NewRelicへログイン
作成したアカウントでNewRelicへログインします。
「Log In」をクリックします。

44

先ほど作成したアカウントのメールアドレス・パスワードを入力して、「Sign in」をクリックします。

45

NewRelicにログインすると、NewRelic APMの画面が開きます。

21

ここではPHPやRubyなどのソフトウェアの監視をするためのエージェントがインストールできます。
※なお今回は使用しません。

3.サーバ監視用のエージェントインストール
サーバ監視用のエージェントをインストールするので、左上から「SERVERS」を選択します。

46

サーバ監視用のNewRelicエージェントをインストールするための画面が開きます。
今回の環境は、「Amazon Linux AMI 2016.03.d」なので、「Red Hat or CentOS」をクリックします。

47

そうすると、画面下部に「Red Hat or CentOS」のインストール手順が表示されます。
手順についてはコマンドベースで記載していきます。

1.rootにスイッチします。
$ sudo su -

2.NewRelicのパッケージをインストールします。
なお、NewRelic上で表示されたコマンドでは、32bit版がインストールされます。
64bit版のパッケージをインストールする場合は、下記に記載しているコマンドを実行してください。
[32bit]
# rpm -Uvh https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
[64bit]
# rpm -Uvh https://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm

3.サーバモニターパッケージをインストールします。
# yum install newrelic-sysmond

4.ライセンスキーの設定を行います。
アカウント毎に割り振られる番号になるので、画面上に表示されたコマンドを実行してください。
# nrsysmond-config --set license_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

5.サーバモニターのデーモンを起動します。
# /etc/init.d/newrelic-sysmond start

以上でインストール作業は終了です。
ここまで5分くらいでできてしまうほど簡単ですね。

監視画面を見てみよう

それでは実際に監視画面を見てみましょう
左上の「SERVERS」をクリックして再読み込みすれば、エージェントをしたサーバが一覧として表示されるはずです。

26

サーバ名をクリックすると、そのサーバの詳細なパフォーマンス状況がグラフィカルな画面として表示されます。

27

NewRelicでは、サーバの以下の項目を監視することができます。

・CPU使用率 (Overview、Processesから確認可能)
・メモリ使用率 (Overview、Processesから確認可能)
・プロセス毎のCPU、メモリ使用率 (Processesから確認可能)
・ディスクI/O、使用率 (Disksから確認可能)
・ネットワークI/O (Networkから確認可能)

左側ペインから各項目ごとに画面が用意されており、それぞれのデータが詳細に表示されます。
初めのほうにも書きましたが、短期間・中期間・長期間のパフォーマンス状況の推移をNewRelic上で確認することが出来てしまうんです。
なお、閾値設定や異常時のメール通知などの機能については、別の機会で語れたらと思います。

最後に

いかがでしたでしょうか。
今回は簡単にサーバの監視を紹介させていただきましたが、NewRelicではまだまだ出来ることがたくさんあります。
・アプリケーションレベルの監視(PHP、Rubyなど)
・Mobileの監視
・AWS環境のRDS,ELBなどのコンポーネントの監視
・MySQLなどデータベースエンジンの監視(要プラグイン) など

触れられなかった、便利な機能がたくさんあり、可能性は無限に広がっています。
私もNewRelicの奥深さを感じているので、新しい機能を覚えたら紹介させて頂きたいと思います。

最後までお読みいただき、ありがとうございました。


こんにちは。SI部の杉光です。

今回はAmazon Web Serviceの一つであるAmazon Elastic MapReduce(以下EMRと省略)を利用して
簡単に大規模データの分散処理を行う方法とEMRでサポートされているHadoopエコシステムの利用例をご紹介したいと思います。

Amazon EMRとは

EMRはAWSが提供するHadoopクラスターのサービスです。

クラウドサービスなので、わずか数分で仮想サーバーのクラスターを立ち上げ可能にし、
計算能力の需要に合わせクラスターを構成するサーバー数を調整することが可能です。
時間単位の課金なので、大量のデータを直ぐに短期間で処理したい場合も高いコストパフォーマンスで対応できます。

また、他AWSサービスとの連携が可能で、S3、RDSやDynamoDBに保存されたデータにクラスターからアクセスが可能です。
とりわけ、S3はHDFSと分けて意識することなくデータを保存することができます。 (続きを読む…)


こんにちは。

田中(邦)です。

今回はAmazon Simple Queue Service(Amazon SQS)Amazon Simple Notification Service(SNS)を使ってAndroid端末にプッシュ通知を送信する仕組みを実装していきます。

(続きを読む…)


こんにちは。利根川です。

社内のプロジェクトで Redmine 導入の要望があります。
Redmine には Bitnami等のオールインワンパッケージが存在しますが、
今回はIPA(独立行政法人情報処理推進機構)が提供する
定量的プロジェクト管理ツールの導入を検討しています。

今回は、Amazon EC2 上のサーバーに定量的プロジェクト管理ツールを導入し、
プロジェクトを立ち上げるまでの手順をご紹介いたします。 (続きを読む…)


こんにちは田中(巧)です。

社内活動の中で多少要望も頂いたので、
今回はAWSでのWebConsoleによるEC2インスタンス立ち上げの手順を少し詳細に書こうと思います。 (続きを読む…)


こんにちは。田中(邦)です。

先日、キャスレー主催のハッカソンを行いました。

土曜日開催にも関わらず多くの方々にご参加いただき大変な盛り上がりを見せたハッカソンなのですが、今回はその準備と反省点について少し書いていきたいと思います。 (続きを読む…)



  • Profile
    キャスレーコンサルティングの技術ブログです。
    当社エンジニアが技術面でのTips、技術系イベント等についてご紹介いたします。
  • CSV社長ブログ
  • チーム・キャスレーブログ