NewRelic Serverの概要 


# NewRelic Server の概要

NewRelic Advent Calendar 2015 の5日目、担当はデジカの中島です。今日は、Servers というプロダクトについて、簡単に紹介したいと思います。

NewRelic のメインのプロダクトは APM だと思います。普通、NewRelic といえばこれをイメージする人が多いでしょう。APMはアプリケーションの中でモニタリングの処理が動きます。アプリケーションの内側から見ることで、非常に詳細な情報を取ることができるわけですが、これだけでは不十分です。サーバの能力不足など、問題がアプリケーションの外にある場合は、APMだけではわからないことがあります。

Serversは、その名の通り、サーバ全体のパフォーマンスやリソースの使用状況をグラフ化してくれます。APMを補完するプロダクトです。以下のような特色があります。

* インストールがすごく簡単
* 何もしないでも最初から欲しい情報が取れる
* Web UI がよくできている

ひとことで言えば「It just works」です。

これは、スティーブ・ジョブズが iPhone を説明するときに使った言葉ですが、マニュアルを読んだり、いろいろ考えなくても、「やってみりゃわかるさ」みたいな感じで、インストールすれば、そのまま使えるという感じです。

無料なので、とりあえず入れてみて損はないと思います。特に、インフラに専任できる人がいなくて運用面や監視が後回しになりがちで困っているような方にはオススメです。

## インストール

まず、[New Relicのトップページ](http://newrelic.com/)からサインアップしてみてください。最初に次のようなページが表示されます。

<img width="583" alt="https___rpm_newrelic_com_accounts_1168999_setup.png" src="https://qiita-image-store.s3.amazonaws.com/0/34107/a9f8e1b8-a4ba-56ec-0434-4f7804b3f598.png">

"SERVERS"をクリックしてみてください。インストール方法をガイドするページが表示されます。

<img width="385" alt="Setup_New_Relic_Servers_-_New_Relic.png" src="https://qiita-image-store.s3.amazonaws.com/0/34107/e9bf40a4-717b-75a0-3531-8e989473d99b.png">

自分が使っているサーバのOSを選択すると、下の方にインストールのコマンドが表示されます。ubuntu の場合は下記のようになります。

<img width="340" alt="Setup_New_Relic_Servers_-_New_Relic.png" src="https://qiita-image-store.s3.amazonaws.com/0/34107/cd72a782-54d3-7550-429b-ea3bc7683c70.png">

```
# echo deb http://apt.newrelic.com/debian/ newrelic non-free >> /etc/apt/sources.list.d/newrelic.list
# wget -O- https://download.newrelic.com/548C16BF.gpg | apt-key add -
# apt-get update
# apt-get install newrelic-sysmond
# nrsysmond-config --set license_key=(自分のライセンスキー)
# /etc/init.d/newrelic-sysmond start
```

ガイドのページには、実際のライセンスキーが埋め込まれて表示されているので、通常は、それをそのままターミナルに貼り付けて実行すればOKです。

ちなみに、ライセンスキーは、右上のアカウント名から Account Setting の Summary のページに表示されています。2台目以降のインストールでは、ここを参照してください。

<img width="639" alt="Account_settings__Degica_3_-_New_Relic.png" src="https://qiita-image-store.s3.amazonaws.com/0/34107/acf78468-eb33-3c55-e42e-2ecfc52db407.png">

なお、chef を使っている場合は、下記のコミュニティクックブックがあるのでさらに簡単です。

* [escapestudios-cookbooks/newrelic](https://github.com/escapestudios-cookbooks/newrelic)

## モニタリングページの概要

しばらくして、SERVERSのページに戻ると、今度は、インストールガイドでなく、次のようなページが表示されます。これがSERVERSのメインページです。

<img width="637" alt="bg-stag-ws1_-_New_Relic.png" src="https://qiita-image-store.s3.amazonaws.com/0/34107/2d2bd95c-a0d0-2f4e-a751-0d280fdbf318.png">

CPUやメモリの使用率がきれいなグラフで表示されます。

このグラフは、マウスカーソルを持っていくとその時点の数値が表示されます。

![Untitled.gif](https://qiita-image-store.s3.amazonaws.com/0/34107/95122497-f59a-ae61-61bd-4029f0331d31.gif)

この時に、マウスカーソルがあるグラフだけでなく、他のグラフの数値も表示されます。ですから、「このCPU使用率がピークだった時のメモリの状況はどうだろう？」みたいなことが自然に読み取れます。実際に自分でこれを毎日使っている人が開発していることをうかがわせます。

また、このグラフを横方向にドラッグすると、その時間帯を拡大したグラフを見ることができます。

![Untitled.gif](https://qiita-image-store.s3.amazonaws.com/0/34107/48be8b7f-d8a4-270c-43b9-7339be5328aa.gif)

実際に運用しているサーバのグラフを毎日なんとなく眺めていれば、平常のグラフと違うところにはすぐに気がつきます。その時「おや？これはなんだろう？」と思ってそこをつつくとその答えが出てくるようなイメージで、自然な操作ができると思います。

とりあえず、このCPU使用率のページで、何か普段と違うところを見つけたら、ドラッグしてその時間帯を拡大して、それから左側のタブをクリックして、プロセス単位のリソースの使用状況などの詳細を見ていくような運用になるかと思います。

## アラート

あと、インストールした時点で、基本的なアラートの設定も行われています。

アラートは、"Policy" という設定を行って、サーバにその "Policy" を割り当てる仕組みですが、デフォルトでは、下記のような "Default Server Poilicy" というポリシーが作成されていて、追加したサーバには、自動的にこれが割り当てられます。

<img width="299" alt="Server_alert_policies_-_New_Relic.png" src="https://qiita-image-store.s3.amazonaws.com/0/34107/36e5f2ee-e19d-bb41-8ff7-305ade580a47.png">

このポリシーでは、CPU使用率が60%以上が20分間継続したら、Caution(グラフのバックグラウンドで色分け表示)となり、80%が15分継続したら、アラートメールを送信します。

最初はこのままで運用して、使いながら少しづつ調整していけばいいと思います。Alert -> Server Policies と選択すると上記のページになります。

## まとめ

SERVERSには、この他にもネットワークやディスクのタブがあって、他にも色々な情報を見ることができます。ただ機能が多いというだけではなく、一般的なユースケースを想定して、そのための自然な操作となっていることがポイントだと思います。

そのユースケースとしては、「ノウハウのある専任の人が事前に計画してきちんと運用する」というよりは、「アプリケーション開発者が他に人がいなくて仕方なく運用をやり始めて、いくつかのトラブルを通してだんだん覚えていく」というようなストーリーが想定されているような気がします。走りながら、運用に関するノウハウと同時に、このプロダクトの使い方を少しづつ覚えていくという感じです。

こういうパターンにはまりそうな人は、ぜひ試してください。

あと、私が使っていて、機能不足を感じるのは、複数のサーバのメトリクスを一つのグラフとして見る機能ですね。APM の場合は、INSIGHTSというプロダクトと連動することで、そのようなニーズにも応えられるようになっていますが、SERVERSの場合は、サーバごとの個別の表示のみで、INSIGHTSとの連動機能もありません。

デジカでは、NewRelicのメトリクスをSensuに流し込んで、Garfanaで複数サーバを一覧するグラフを作成しています。この方法については、日を改めて紹介したいと思います。