New Relic NPM （NetworkPerformanceMonitoring）を利用する際に便利なドキュメント

# はじめに
　New Relic は、アプリケーション、インフラストラクチャのデータを収集し、システムの状態を可視化するオブザーバビリティプラットフォームを提供しています。そして、オンプレミスやクラウド環境のネットワークのモニタリングについても New Relic はカバーしています。

　New Relic のネットワークモニタリング機能 **New Relic NPM (NetworkPerformanceMonitoring)** は、オンプレミスのネットワーク機器や AWS、 GCPのVPCネットワークに対応しています。ネットワーク機器のメトリックやログ、ネットワークフローの情報を可視化できる便利なサービスです。アプリケーション、インフラストラクチャ、ユーザー体験、およびネットワークのデータを1つのプラットフォーム上で関連付けて分析できるため、システム全体のパフォーマンスや問題点を迅速に把握することが可能となります。

　今回は、 **New Relic NPM** を利用するために参考になるドキュメントをまとめました。 

:::note info
最新のアップデートの詳細はこちら。　[New Relic アップデート一覧](https://newrelic.com/jp/blog/nerdlog/new-relic-update "New Relic アップデート一覧")
:::

　今回紹介する New Relic NPM は、無料アカウントでも利用できます。是非永久無償ライセンスを[こちら](https://newrelic.com/jp/sign-up-japan)から試してみてください。

https://newrelic.com/jp/sign-up-japan

# New Relic NPM はどんなものがあるの？
　New Relic NPM を使って何ができるのか、そういうアーキテクチャなのか下記の公式ドキュメントを確認してみましょう。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/get-started/npm-introduction/

　New Relic NPM は、New Relic のパートナーである Kentik によって開発された ktranslate をベースにしており、下記 5 つの機能があります。
* **SNMP**
* **SNMP Trap**
* **Network Syslog**
* **ネットワークフローデータ**
* **クラウド フローログ**

# New Relic NPM はどう使うの？
　公式ドキュメントを通じて、New Relic NPM の基本的な内容を理解することができました。次に、具体的な利用方法や画面イメージを把握するステップへと進みましょう。

　New Relic University には、以下の5つの動画教材が提供されています。これらの動画を通じて、New Relic NPM の実際の操作感や機能をより深く知ることができます。
* [**ネットワーク監視概要と、各機能の違いを知る**](https://newrelic.wistia.com/medias/yiza2mz5q6)
* [**SNMPでネットワーク機器の監視を行う**](https://newrelic.wistia.com/medias/i0e74q01w1)
* [**Network Syslogでネットワーク機器の監視を行う**](https://newrelic.wistia.com/medias/2y8rat75oz)
* [**Network Flow でネットワーク機器の監視を行う**](https://newrelic.wistia.com/medias/wl27jr96tn)
* [**Cloud Flow Logsでネットワーク機器の監視を行う**](https://newrelic.wistia.com/medias/ze1lg9haua)

https://newrelic.com/jp/learn/nru201/backend

　New Relic University には、New Relic NPM 以外にも様々な教材が提供されています。是非参考にしてください。

https://newrelic.com/jp/learn

# New Relic NPM は体験できないの？
　イメージはできたけど実際に使うのはハードルが高いと感じる方が多いのではないでしょうか。New Relic NPM はラボ環境が用意されています。ハンズオン形式で学ぶことができるため、ぜひ体験してみてください。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/get-started/network-performance-monitoring-guide/

# SNMPはどうやって設定するの？
　SNMPは、定期的にネットワーク機器にポーリングを行なって、ネットワーク機器のメトリックデータを取得します。New Relic NPM は、Docker環境もしくはLinux Packageインストールのいずれかの方法でセットアップを行います。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/snmp-performance-monitoring/

　New Relic の画面上にガイド付きインストールが表示されます。表示内容に従ってインストールしていきましょう。

## Docker
　Dcoker環境でのインストールは下記のブログで紹介されています。こちらも参考にしてください。

https://newrelic.com/jp/blog/how-to-relic/network-performance-monitoring-local-environment

## Linux
　Linux Packageを使ったインストール手順が下記のブログで紹介されています。こちらも参考にしてください。

https://newrelic.com/jp/blog/how-to-relic/npm-linux-package#toc-snmp-

## あらかじめ用意されたプロファイル
　ktaranslate で利用できるプロファイルは、下記のサイトで確認できます。モニタリング対象のネットワーク機器のプロファイルがあるか確認する際に参考にしてください。

https://github.com/kentik/snmp-profiles/tree/68e299507e12b87b16f70707c479ff022604a52d

## プロファイルのカスタマイズ
　SNMPのデバイスプロファイルをカスタマイズすることで多様な機器の情報をNew Relicに統合することが可能です。ktranslateのデバイスプロファイルはYAMLファイルで定義する必要があります。作成する際は下記のWikiをご確認ください。

https://github.com/kentik/ktranslate/wiki/Tutorial:-Writing-a-custom-yaml-file-for-SNMP

　英語のドキュメントが苦手な方は下記のブログをご覧ください。

https://newrelic.com/jp/blog/how-to-relic/new-relic-npm-registering_profile_tutorial

　Docker環境でカスタマイズしたプロファイルを使用する際には、 ktranslate コンテナのボリュームとしてマウントする必要があります。その手順は下記の公式ドキュメントで解説されています。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/advanced/snmp-profiles/#private

# SNMP Trapはどうやって設定するの？
　SNMP Trapは、ネットワーク機器やサーバーなどのモニタリング対象機器から、監視システムや管理サーバーなどのマネージャー（New Relic NPM）へ、非同期的に特定のイベントや異常が発生した際の通知を送る仕組みです。SNMPは、モニタリング対象機器へポーリングする形式ですが、SNMP Trapはモニタリング対象機器から、マネージャー（New Relic NPM）へプッシュ形式で情報が送られます。
　SNMP Trapを設定することで発生した障害情報も把握可能になり、より隙のないネットワークモニタリングが実現できます。
　New Relic NPM の SNMP Trap は、SNMPの一部として提供されています。設定ファイルの変更で機能を有効化することが可能です。
## Docker
　Docker環境でのSNMP Trapの設定方法は、下記の公式ドキュメントで説明されています。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/snmp-performance-monitoring/#snmp%E3%83%88%E3%83%A9%E3%83%83%E3%83%97%E3%81%AE%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3

## Linux
　Linux Packageを使った設定手順が下記のブログで紹介されています。こちらを参考にしてください。

https://newrelic.com/jp/blog/how-to-relic/npm-snmp-trap

# Syslogはどうやって設定するの？
　Syslogは、ネットワーク機器やサーバー、アプリケーションなどのログメッセージを収集し、転送するための標準プロトコルで、一元的にログ情報を収集・管理することが可能です。
　　New Relic NPM を使って Syslog をNew Relicで一元管理するための設定方法は、下記の公式ドキュメントを参考にしてください。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/network-syslog-monitoring/

## Docker
　Docker環境でインストールする手順がブログが下記のブログで紹介されています。こちらも参考にしてください。

https://newrelic.com/jp/blog/how-to-relic/new-relic-npm_syslog-monitoring

## Linux
　SNMP と Syslog を同じLinuxサーバー上で設定する方法が下記のブログの中で紹介されています。こちらも参考にしてください。

https://newrelic.com/jp/blog/how-to-relic/npm-linux-package#toc--linux-new-relic-

# ネットワークフローデータはどうやって設定するの？
　ネットワーク フローは、ネットワーク機器からトラフィックフローの情報を収集し、ネットワークの使用状況、トラフィックのパターン、ボリュームなどの情報を得ることができます。

　ネットワークフローデータは、NetFlow や sFlow など複数のタイプが存在します。New Relic NPM が対応しているネットワークフローデータのタイプは、[こちら](https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/network-flow-monitoring/#supported-network-flow-data-types)のドキュメントで確認できます。ネットワークフローデータの収集に対応していないネットワーク機器もあるため、モニタリング対象のネットワーク機器が対応しているか確認してください。

　New Relic NPM のインストール時は、下記の公式ドキュメントを参考にしてください。

https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/network-flow-monitoring/

# クラウド フローログはどうやって設定するの？
　New Relic NPM のクラウド フローログは、AWS と GCP に対応しています。クラウドサービス上で設定を行い、New Relicへ連携する仕組みです。設定にはそれぞれ下記の公式ドキュメントを参考にしてください。

## AWS VPC フローログ

https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/cloud-flow-logs/aws-vpc-flow-log-monitoring/

## GCP VPC フローログ

https://docs.newrelic.com/jp/docs/network-performance-monitoring/setup-performance-monitoring/cloud-flow-logs/gcp-vpc-flow-log-monitoring/

# 最後に
　New Relic NPM は、様々な機能を提供しているため、実際に New Relic NPM を使うことで様々な洞察を得ることができるようになります。また、New Relicはネットワークだけではなく、アプリケーションやインフラストラクチャの情報を統合してロールが異なるメンバーが同じプラットフォーム上で分析できることが大きな利点です。システムに関わるメンバー間のコミュニケーションのハブとして New Relic をお使いください。
　今回紹介した New Relic NPM は、永久無償ライセンスでも利用できます。是非永久無償ライセンスを[こちら](https://newrelic.com/jp/sign-up-japan)から試して見てください。

https://newrelic.com/jp/sign-up-japan