9: 基礎編 5: サーバー監視 - New Relic を使ったアプリケーションのパフォーマンス監視入門

初回の「[理論編 1: アプリケーションパフォーマンス監視とは](https://qiita.com/kumatronik/items/1b93d7e03bdabd76d8f2)」で、アプリケーションのパフォーマンス監視に必要なこととして、以下の５つを挙げました。このうち、下から３つは既に説明しました。今回は残り２つの**サーバー監視**と**設定変更の監視**について紹介します。

- **サーバー監視**: サーバーの健康状態を監視し、運用が効率的に維持できるようにする
- **設定変更の監視**: システムの設定を監視し、いつ変更されたのか特定できるようにする
- **アプリケーションパフォーマンスの監視**: アプリやサービスを監視し、期待どおりに動作していることを保証できること
- **外形監視**: ユーザーが問題に気づく前に問題を把握できるように、アプリがユーザーの期待どおりに機能しているかを調査できるようする
- **アラート**: 問題発生時に適切な対応者へ連絡できること

サーバー監視に関しては、OSS を含め非常に多くの製品やサービスが存在します。New Relic でももちろんカバーしており、それが New Relic Infrastructure です。


## New Relic Infrastructure

New Relic 製品を利用する利点としては、前回紹介ように他製品と連携できるので、アプリケーション全体を通して比較、確認できる点や比較がし易い点です。また、単体の機能としても、New Relic Infrastructure は、数十、数百のホストを効率よく管理できる洗練された UI が特徴です。また、アラートに関しても非常に効率良く管理できるようになっています。

## サーバー監視

New Relic Infrastructure では、サーバーリソースの計測結果を表示するタブが以下の４つあります。

- Hosts: ホスト
- Network: ネットワーク
- Storage: ストレース
- Processes: プロセス

### ホスト

[ホスト](https://newrelic.degica.com/docs/infrastructure/new-relic-infrastructure/infrastructure-ui-pages/infrastructure-compute-page-measure-resource-usage)ペタブでは、その名のとおり各ホストの CPU、ロードアベレージ(過去5分間の作業待ちタスク数)、メモリ使用率がデフォルトでチャートに表示されます。

![スクリーンショット_2017-12-23_20_10_54.png](https://qiita-image-store.s3.amazonaws.com/0/46003/acc4de91-516e-4e46-2a81-75ae14216f09.png)

#### チャートの表示軸やメトリクスの切り替え

このタブに限らず他のタブにも共通することですが、タブ表示時に表示されるメトリクスや軸(ホストとか）はあくまでデフォルト値です。用意されているものから好きに変更できます。

軸を変更するには、画面上部の "Group BY" をクリックします。


<img width="350" alt="スクリーンショット 2017-12-23 21.38.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/46003/13d4e5e9-1d13-8ddc-0bf9-fd463891535e.png">


メトリクスを変更するには、各チャートのタイトルの横をクリックすると、メトリクスとして選択できる項目が表示されます。

<img alt="スクリーンショット 2017-12-23 21.39.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/46003/7e5e4edd-d532-5c8d-afc5-71713c1e3c85.png">



### ネットワーク

[ネットワーク](https://newrelic.degica.com/docs/infrastructure/new-relic-infrastructure/infrastructure-ui-pages/infrastructure-network-page-measure-compare-capacity)タブのチャートでは、パケット単位、バイト単位の帯域幅のメトリクスとそれに関連するエラーについての情報をデフォルトで表示します。

![スクリーンショット_2017-12-23_20_18_40.png](https://qiita-image-store.s3.amazonaws.com/0/46003/fab7368a-d014-5cbb-27ba-5d2971ab46c6.png)

## ストレージ

[ストレージ](https://newrelic.degica.com/docs/infrastructure/new-relic-infrastructure/infrastructure-ui-pages/infrastructure-storage-page-evaluate-disk-usage-efficiency)タブでは(デフォルト)デバイスごとのディスク利用率や読込/書込みバイトなどを表示します。他のタブと同じく、軸となる単位やチャートで表示しているメトリクス(ディスク利用率など）も様々用意されています。

![スクリーンショット_2017-12-23_20_28_59.png](https://qiita-image-store.s3.amazonaws.com/0/46003/7f77f627-3471-4db3-35f0-227420aeeed5.png)


## プロセス

[プロセス](https://newrelic.degica.com/docs/infrastructure/new-relic-infrastructure/infrastructure-ui-pages/infrastructure-processes-page-inspect-process-performance)タブでは、プロセス単位の CPU使用率、I/O、メモリサイズを確認できます。これにより、どのプロセスがリソースを食っているかが確認できます。また、CPU 使用率などを対象にアラートを設定しておくことで急激なリソースの上昇時もすぐに気づくことができます。

![スクリーンショット_2017-12-23_21_24_57.png](https://qiita-image-store.s3.amazonaws.com/0/46003/d3ef44a6-a881-b5ea-3959-f2e8e8f88326.png)


## 設定変更の監視

設定変更とは、パッケージがインストール/アンインストールや、SSHによるユーザーの接続/解除、アラート、サービスの起動、停止など多岐に渡ります。

New Relic Infrastructure は、ホスト上の設定変更をイベント履歴という形で表示してくれます。ここまでで説明した４つのサーバーリソースを表示したタブのチャートの上部に常に "Events" という表示があるのに気づいたでしょうか。これが、サーバー設定の変更を示しています。

サーバーリソースが低下したことの原因は、何か設定を変更をしたせいかもしれません。リソースの変化とイベントを関連付けることで、迅速にその原因を特定できるような UI となっています。

![スクリーンショット 2017-12-23 21.43.32.png](https://qiita-image-store.s3.amazonaws.com/0/46003/32ce9477-069c-df4d-6cba-0fa52d9f9cfc.png)

左から右にタイムピッカーで選択している時系列に従って、一定期間に区切って表示されています。色が付いている箇所が変更があった時点です。色が濃いほど変更が複数回行われていることを示しています。

具体的にどのような変更が行われたかは、各ボックスをクリックすると表示されます。

![スクリーンショット_2017-12-23_21_46_35.png](https://qiita-image-store.s3.amazonaws.com/0/46003/92e651db-06cb-496c-f87e-6ceb2bac58e6.png)

また、イベント履歴は、Infrastructure のメニューの "Events" をクリックしても確認できます。

## New Relic Infrastructure のインストール

ここでは詳しく解説しませんので、ご利用環境に合わせて、以下のドキュメント(日本語)をご覧ください。

- [Linux へのインストール](https://newrelic.degica.com/docs/infrastructure/new-relic-infrastructure/installation/install-infrastructure-linux)
- [Windows Server へのインストール](https://newrelic.degica.com/docs/infrastructure/new-relic-infrastructure/installation/install-infrastructure-windows-server)


## まとめ

以上でアプリケーションのパフォーマンス監視に最低限必要な項目は満たすことができました。ここまでで紹介したのはあくまで最低限のことなので、是非、New Relic を活用してより効果的、効率的にアプリケーションのパフォーマンスの監視、分析を行えるようにしてください。

今回で基礎編は終了です。次回からは応用編を紹介します。