弊社のネットワークポリシーガチガチすぎてこまってまんねん。そんな時はこれでやれないかな？やってみて!!

New Relicをさっそく学習しようと思い立ったが、いったい何から始めればいいのか。そんな悩みをよく聞きます。今回は、ネットワークポリシーが厳しく、自由にネットワーク設定を行えない場合を想定した環境でのエージェントの導入方法を問題にしてみました。


# はじめに
New Relicを学習するための良い問題を作ろうと力んでみたら、もうネタ切れ・・・と思ったところに、大企業勤めの知人が『いやさぁ、ネットワークの通信許可を取るための社内の手続き、大変なんだよね。ゆううつです。』というボヤキを頂くことに。
New Relicを活用するためにはネットワークの通信は切っても切れない関係。ここは良い問題を作るチャンスかも!!

# さっそく問題
### こんな時どうする？
:::note warn
サーバのある環境からNew Relicプラットフォームに通信する設定はなるべくシンプルにしたいな
:::

# 用意してほしいもの
:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::

### New Relicの環境
- もし持っていない場合は、上記のQiita記事を参考にFreeの環境を取得しよう。
- 業務で既にNew Relicを使っているなら、その時に使っている業務用のメールアドレス以外のものでFreeの環境を取得しよう。

### インフラストラクチャエージェントをインストールすることができるサーバ
- LinuxあるいはWindowsのサーバを用意しよう。AWSやAzureなどのクラウド環境のサーバでも、検証用のオンプレサーバでも問題ないです。
- 具体的なサポート対象に関しては[こちら](https://docs.newrelic.com/jp/docs/infrastructure/infrastructure-agent/requirements-infrastructure-agent/#os)の公式ドキュメントをご確認くださいませ。

# New Relicのネットワーク要件
New Relicを活用する際のネットワーク要件については、[公式ドキュメント](https://docs.newrelic.com/jp/docs/new-relic-solutions/get-started/networks/)を確認することで最新の情報を抑えることができます。利用する機能(エージェント)によってエントリポイントが決まるので、どのエージェントを利用するかを抑えるのが大事なポイントです。
細かな要件については[公式ドキュメント](https://docs.newrelic.com/jp/docs/new-relic-solutions/get-started/networks/)を確認してい欲しいのだけれど、大事なポイントは以下の通り。

:::note info
TLSのバージョンはv1.2以上となっているか？
:::
:::note info
目的に沿った通信許可設定を行っているか？
- エージェントをインストールするために**バイナリやライブラリを直接ダウンロード**
- エージェントが**計測したデータをNew Relicプラットフォームにアップロード**
- 計測した**データを参照するためのNew Relicプラットフォームにアクセス**
:::

### ここでのポイント
例えば、サーバが稼働しているようなデータセンターだったりクラウド環境だった場合、『<strong>エージェントが計測したデータをNew Relicプラットフォームにアップロードする</strong>』の部分を満たせればNew Relicを利用する大きなメリットを活かすことができるようになります。
サーバが稼働している環境から直接計測データを常時参照するということは、必須ではないですよね。(もちろん、そんなことを言っていられない悲しい状況も発生するかもしれませんが。。。)

ですので、サーバのキャパシティ情報を収取するインフラストラクチャエージェントであれば、[公式ドキュメントのこちら](https://docs.newrelic.com/jp/docs/new-relic-solutions/get-started/networks/#infrastructure)を基にし、アプリケーション用のエージェント(APM)であれば、[公式ドキュメントのこちら](https://docs.newrelic.com/jp/docs/new-relic-solutions/get-started/networks/#apm)を基にした通信許可を行えばOKとなります。

:::note warn
ご利用になられているNew Relicのデータセンタ(US/EU)によってエンドポイントのドメイン名が異なっています。
:::

そうすると、みなさんは『OK。オーケー、おーけー。New Relicプラットフォームへのアクセスはデータセンター内とかからじゃなくて、オフィスとかからアクセスできるようにすればいいよね。あれ？じゃあ、１つめの<strong>エージェントをインストールするためにバイナリやライブラリを直接ダウンロードする</strong>ってどういうこと？』という疑問を持たれるのではないでしょうか？

New Relicでは、<strong>Guided Install</strong>といったエージェントのインストール手順を簡素化するための有用なコマンドを提供しています。このコマンドをエージェントをインストールするサーバ上で実施頂くだけで、自動でインターネット上にあるNew Relicのレポジトリから直接必要なバイナリやライブラリを取得しインストールを進めることができます。そのためには、特定のサーバからそのレポジトリへのアクセス(ダウンロード処理など)ができることが必要です。

うーん、便利便利。『でも(小さな声)、そのための社内手続きが大変なんだよねボソボソ』と知人の声が聞こえてきそうです。

# さぁやってみよう
実はインストール用のバイナリをお手元にダウンロードし、そのバイナリを各サーバ上で手動インストールすることができるんです。
そのためには、上の方で挙げた『<strong>エージェントが計測したデータをNew Relicプラットフォームにアップロードする</strong>』を満たす必要があるので注意して下さい。

:::note warn
バイナリをダウンロードする場所がお勤めの事務所内といった場合には、事務所が所属するネットワークでの
『<strong>エージェントをインストールするためにバイナリやライブラリを直接ダウンロードする</strong>』の要件を満たす必要が出てくるので注意して下さいね。
:::

## インフラストラクチャエージェントのバイナリのダウンロード
[New Relicのレポジトリ](https://download.newrelic.com/infrastructure_agent)にWebブラウザでアクセスします。
### Linuxの場合:
[こちら](https://download.newrelic.com/infrastructure_agent/binaries/linux/)にアクセスし、適切なCPUのタイプを選択の上で、TARボール(tar.gz)を取得して下さい。
 例: https://download.newrelic.com/infrastructure_agent/binaries/linux/amd64/newrelic-infra_linux_1.64.0_amd64.tar.gz
### Windowsの場合:
[こちら](https://download.newrelic.com/infrastructure_agent/binaries/windows/)にアクセスし、適切なCPUのタイプを選択の上で、ZIPファイルを取得して下さい。
 例: https://download.newrelic.com/infrastructure_agent/binaries/windows/amd64/newrelic-infra-amd64.1.64.0.zip

## 取得したバイナリの展開
取得したバイナリを、インフラストラクチャエージェントを導入したいサーバに移動し、ファイルを解凍/展開します。
### Linuxの場合:
TARボールを解凍すると、<strong>config_defaults.sh</strong>が解凍して現れるディレクトリ内に生成されます。<strong>config_defaults.sh</strong>内を確認すると、ファイルの最終行が以下の通りとなっています。
```SHELL
#
#   New Relic Infrastructure license key.
#   Corresponding env var: '$NRIA_LICENSE_KEY'
#
#license_key=""
```
license_key=""をコメントを外し、ご利用になられているNew Relicの環境で生成した<strong>Ingest - License</strong>の値を設定します。

```SHELL
#
#   New Relic Infrastructure license key.
#   Corresponding env var: '$NRIA_LICENSE_KEY'
#
license_key="ここに取得したIngest - Lincenseキーの値を設定する"
```

### Windowsの場合:
ZIPファイルを展開すると、展開して現れるディレクトリを多段で生成されるので移動すると<strong>installer.ps1</strong>がに生成されます。<strong>installer.ps1</strong>内を確認すると、以下の通りとなっている箇所があります。
```SHELL
param (
    [string]$LicenseKey       = $env:NRIA_LICENSE_KEY,
    [string]$AgentDir         = $env:NRIA_AGENT_DIR,
    [string]$LogFile          = $env:NRIA_LOG_FILE,
```
環境変数を用いてライセンスの設定を行うこともできますが、今回は直接<strong>installer.ps1</strong>内にライセンスを記載する方法を行います。
<strong>$env:NRIA_LICENSE_KEY</strong>を削除し、ご利用になられているNew Relicの環境で生成した<strong>Ingest - License</strong>の値を設定します。

```SHELL
param (
    [string]$LicenseKey       = "ここに取得したIngest - Lincenseキーの値を設定する",
    [string]$AgentDir         = $env:NRIA_AGENT_DIR,
    [string]$LogFile          = $env:NRIA_LOG_FILE,
```
<strong>補足:</strong> Linuxの場合と同じ様にIngest - Licenseの値の前後に<strong>"</strong>を付けて下さい。

## 手動でのインストール作業を実施する
もうこれで作業はおしまいです!!最後の一踏ん張りがんばれ!!!
### Linuxの場合:
編集したconfig_defaults.shと同じディレクトリ内に<strong>installer.sh</strong>が出力されているので、管理者権限を持っているユーザ(あるいは、sudoコマンドなどを用いて)で、<strong>installer.sh</strong>を実行します。

### Windowsの場合:
<strong>installer.ps1</strong>を編集後、管理者権限でPowerShell上から<strong>installer.ps1</strong>を実行します。

## インフラストラクチャーエージェントのデータがNew Relicプラットフォームで参照できるかを確認する
[New Relicプラットフォーム](https://login.newrelic.com)にアクセスし、ログイン後、メニューから追加した管理対象サーバにアクセスします。
(または、<strong>Infrastructure</strong> → <strong>Hosts</strong>にアクセスし、右UI部分の下部にあるリストから対象のサーバを選択して下さい。)

以下の様にデータが収集されることを確認できれば、インストールが無事に完了できたことを確認できました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/a4bb64d2-20c7-4217-b1c7-d4a456b4ac59.png">

### お疲れ様でした!!!!

# さいごに
New Relicを学習しようと思った時には是非エージェントインストールから始めてみて下さい。いままで気づけなかった予想外の傾向がわかったりと新しい発見があるかもしれませんね。
今後もネタ切れに負けずに新しいQA形式のQiita記事を書いていくので、クイズを解く感覚でチャレンジしてもらえるとうれしいです。


:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/66d6a010-e4fe-4004-a09b-c01eaad5a614.png)](https://newrelic.com/jp/contact-sales)