やさしい AWS にNew Relic を導入する方法
今回の目的
- New Relic 未経験者がNewRelic を入門するためのガイドとして、記事をまとめます。
New Relic とは
オブザーバビリティプラットフォーム
- New Relic は、New Relic One と呼ばれるプラットフォームを提供しています。New Relic の説明には、New Relic Oneはモニタリングツールではなく、オブザーバビリティプラットフォームとして紹介されています。
モニタリングとオブザーバビリティの違い
- それでは、モニタリングとオブザーバビリティの違いは何でしょうか?
- モニタリングは、「何が起きているか」を見ることです。一方、オブザーバビリティは、「何が障害の原因だったのか」「どこに影響があるのか」「どう対処すれば良いのか」を把握することです。
- オンプレミスの時代は、エンジニアの役割も Dev(開発) と Ops(運用) に分かれており、Ops(運用)はZabbixなどのツールを利用してインフラの監視を行っておりました。現在、クラウドネイティブの時代となり、監視の概念が変わったようです。システムはサーバーレスやコンテナなどのマイクロサービスで構成されるようになり、監視は、インフラからアプリケーション(あるいはアプリケーションの依存関係)にフォーカスされるようになったのだと思います。
- また、エンジニアの役割も DevOps に変わり、運用そのものにも開発者が関わることで、よりオブザーバビリティの概念が求められるようになったのだと思います。
- 以上、概念から見た違いについて記載してみました。
New Relic ONE の特徴を理解する
- New Relic ONE は、以下の3つで構成されます。
- データの収集
- データの分析・可視化
- データの解釈・評価
- 詳細は、"New Relic にようこそ" のドキュメントに要約されています。以下のドキュメントを参照ください。
New Relic を使ってみる
New Relic のアカウントを作る
- 無料サインアップは、こちらから。
- 以下のメールを受信します。メール本文の「無料サインアップ(本登録)」をクリック。
[フォーム入力ありがとうございます] New Relic無料サインアップのご案内
- 次は、本登録を行います。
親アカウント(マスターアカウント)と子アカウント(サブアカウント)
- 組織において、New Relic アカウントの管理が親/子アカウント構造となっている場合、先ず子アカウント(サブアカウント)の作成から行います。以降の作業は、子アカウントにスイッチして行いましょう。
- 以下、New Relic のドキュメントに記載されているマスターアカウントとサブアカウントの説明です。
- New Relicアカウントにはマスターアカウントとサブアカウントが存在します。
- マスターアカウントは契約と紐付き、ライセンス数や契約期間はマスターアカウントに適用されます。
- サブアカウントは独自のライセンスキーやAPIキーを持ち、マスターアカウントと独立して機能しますが、契約内容はマスターアカウントの契約を引き継ぎます。
- サブアカウントを作成することで契約を統一したまま部署やプロダクト毎に独立したNew Relicを利用することが可能になります。
EC2 にNR Agent のインストール
- EC2 上のOS に、NR Agent (New Relic Infrastructure Agent)をインストールすることで、IaaS のインフラストラクチャモニタリング (CPU, Memory, Disk IOなどの観測)が可能となります。
- New Relic コンソールの右上から「API keys」を選択します。
- API Key 一覧の右上にある「Create a key」を押します。
- 以下の画面が表示されます。Account、Key type、Name を指定します。Key type には、「User」を選択します。
- API Key が作成されたことを確認します。Key のValue を確認します。
- 次に、New Relic コンソールの右上から「Add more data」を選択します。
- 「Infrastructure & OS」→「Linux」を選択します。
- Account を選択し、「Continue」を押します。
- 以下の画面が表示されます。「Begin installation」を選択します。
- 次に、NR Agent のインストールコマンドが表示されます。「Copy Command」を押して、インストールコマンドをコピーします。
- NEW_RELIC_API_KEY は先ほど作成した API Key となっていることが分かります。
- EC2 のターミナルからコピーしたインストールコマンドを貼りつけ、実行します。
- インストールが完了しました。
[ec2-user@niikawa-test ~]$ curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-W1Kxxxxxxxxxxxxxxxxxxxxxxxx NEW_RELIC_ACCOUNT_ID=1234567 /usr/local/bin/newrelic install
Starting installation.
Installing New Relic CLI v0.52.5
Installing to /usr/local/bin using sudo
_ _ ____ _ _
| \ | | _____ __ | _ \ ___| (_) ___
| \| |/ _ \ \ /\ / / | |_) / _ | | |/ __|
| |\ | __/\ V V / | _ | __| | | (__
|_| \_|\___| \_/\_/ |_| \_\___|_|_|\___|
Welcome to New Relic. Let's set up full stack observability for your environment.
? Connecting to New Relic Platform.
Connected
Installing New Relic
? Installing Infrastructure Agent..
Installed
? Installing Logs Integration.
Installed
New Relic installation complete
--------------------
Installation Summary
? Infrastructure Agent (installed)
? Logs Integration (installed)
View your data at the link below:
? https://onenr.io/0EjOe2yOOw6
View your logs at the link below:
? https://onenr.io/0qwyD61KdQn
--------------------
[ec2-user@niikawa-test ~]$
- NR Agent が正しくインストールされたことを確認します。
[ec2-user@niikawa-test ~]$ yum list installed newrelic-infra
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
newrelic-infra.x86_64 1.28.0-1.amazonlinux-2 @newrelic-infra
[ec2-user@niikawa-test ~]$ systemctl status newrelic-infra
● newrelic-infra.service - New Relic Infrastructure Agent
Loaded: loaded (/etc/systemd/system/newrelic-infra.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2022-07-31 13:37:25 UTC; 7min ago
Main PID: 3563 (newrelic-infra-)
Memory: 43.6M (limit: 1.0G)
CGroup: /system.slice/newrelic-infra.service
tq3563 /usr/bin/newrelic-infra-service
tq3602 /usr/bin/newrelic-infra
mq3851 /opt/td-agent-bit/bin/td-agent-bit -c /tmp/nr_fb_config1683...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:27 niikawa-test newrelic-infra-service[3563]: time="2022-07-31T1...
Jul 31 13:37:36 niikawa-test newrelic-infra-service[3563]: 2022/07/31 13:37:3...
Hint: Some lines were ellipsized, use -l to show in full.
- New Relic コンソールは更新され、下記の表示となりました。
- 「See your data」を押します。NR Agent をインストールしたEC2 のメトリクスが表示されることを確認します。
AWS インテグレーションの追加
- 次に、AWS インテグレーションの追加を行います。AWS インテグレーションを行うことで、IaaS だけでなく、PaaSやSaaS などの情報を確認できるようになります。
- New Relic のコンソール、AWSコンソールの両方で操作が必要になります。ご注意ください。
- New Relic のコンソールから、Infrastructure → AWS → Add an AWS account を選択します。
- integration mode に、API polling を選択します。
- New Relic がAWSアカウントと連携するためのIAM ロールを作成します。以下のStep 1が表示されますので、New Relic の「Account ID(754728514883)」、「External ID」 を控えます。
- AWSコンソールにて、IAM のサービスを開きます。IAM ロール作成時に、信頼されたエンティティに「AWSアカウント」を選択し、New Relic の画面で控えた情報から「アカウント ID(754728514883)」、オプションの「外部ID」を指定します。
- New Relic のコンソールから、Step 2 の指示に記載されたポリシーを確認します(ReadOnlyAccessと記載あり)。
- AWSコンソールにて、指示された記載に従い、IAMロールのポリシーに、「ReadOnlyAccess」を割り当てます。以下は、AWSコンソール画面です。
- New Relic のコンソールから、Step 3 の指示に記載されたロール名を確認します(NewRelicInfrastructure-Integrationsと記載あり)。以下は、New Relic のコンソール画面です。
- 以下は、AWS のコンソール画面です。ロール名に、「NewRelicInfrastructure-Integrations」を指定します。
- IAM ロール作成後、Role ARN をコピーします。
- New Relic のコンソールのStep 4 のBudgets policy の追加は、任意です。続けて、New Relic のコンソールのStep 5 において、「AWS Account name」、IAM ロールの「Role ARN」を指定します。
- New Relic のコンソールのStep 6 の Select Servicesは、監視対象のサービスを選択します。今回は、ALB/NLB、EC2 を選択します。
- 以下の画面が表示され、AWS インテグレーションの追加が成功しました。
- New Relic のコンソールから、Infrastructure → AWS にてAWSアカウントが追加されていることを確認します。
- 以上、New Relic 導入の方法をまとめました。次回に続きます。
New Relic の資料
- New Relic のドキュメント、ブログを参考にしてください。