New Relicに入門(試して)してみた - EC2でのagent監視+通知まで

# New Relicに入門(試して)してみた - EC2でのagent監視+通知まで
本記事は[New Relic 使ってみた情報をシェアしよう！ by New Relic Advent Calendar 2023 シリーズ2](https://qiita.com/advent-calendar/2023/newrelic) 13日目の記事となっております。

## はじめに
既に個人利用で使ってる方も多いと思いますし、個人利用規模程度では記事も現存しているのかとは思いますが、個人的に以前から気になっていた事もあり、New RelicさんでAdvent Calendarを開催されるとの事で、実際に触ってみるには良いタイミングかなと思い今回利用と記事を残す形でいきたいと思います。

## 公式情報も確認しよう
New Relicさんも[公式ドキュメント](https://docs.newrelic.com/jp/)や[過去のセミナーの動画](https://newrelic.com/jp/events/2020-11-29/nru-101-20210204-ty)による説明等も充実していますので、お時間がある方は先にそちらをご覧いただいてから、触って頂けると良いのではないのでしょうか。
公式ドキュメントには、[初学者向けのチュートリアル](https://docs.newrelic.com/jp/docs/new-relic-solutions/tutorial-landing-page/)も用意されているので、こちらから入られるのも良いかもしれません。
また、本を見るのから入るのが好きな方は、[本もリリース](https://www.shoeisha.co.jp/book/detail/9784798184500)されていますので読まれるのも良いと思います。

# 実際にNew Relicを試してみる
## New Relicの課金形態
念のため、利用前に課金やデフォルトプランで何ができるのかを確認しておきましょう。
https://newrelic.com/jp/pricing

4構成からなっており、今回はお試しをするにあたり**無料**での項目になります。
![newrelic2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/d0d5859b-e869-797a-30bd-3d7187dcfc0a.png)

無料利用での内容はこの料金ページ下段にありますので、合わせて確認しておきましょう。
![newrelic3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/e18586df-d5f5-fd67-d72a-ac058f84f85a.png)

クレジットカード不要で、無料枠のデータ取り込み量が閾値を超えると、登録したメールに通知されるような形のようです。

## 今回の目標
折角New Relic等を利用するのであれば、オブザーバビリティなどを意識したモニタリングを事細かにやっていきたいところですが、今回は個人のお持ちの小規模環境で画面の操作のイメージを掴む事を前提に、モニタリングの設定からAlertの通知設定までを試してみます。

**なお、今回はチュートリアル等には沿わず、ある程度のAWSのEC2やLinux、過去に一般的な監視設定導入をした事がある方向けな記事になっております。**

## 今回試すモニタリング対象
- AWS EC2(CentOS Stream release 9)

上記システムで今回は、AWSインテグレーションは使わずに、EC2にagentを入れるパターンで確認します。


## AWS EC2へモニタリングエージェントを導入する

:::note info
今回のLinux側の作業は基本的に `sudo -i` を実行した状態で作業を進めています。
:::

### セットアップを行う
こちらのトップページから、Linuxを選択すると、自身のNew RelicのライセンスKeyなどが入力された、ワンライナーが表示されるので、こちらを利用します。

![スクリーンショット 2023-12-13 1.19.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/804f5243-0b78-5984-7f15-87c2863fcf46.png)
![スクリーンショット 2023-12-13 1.20.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/b7ae1903-1bc6-0969-803d-31f95e2f93f1.png)

以下がインストールワンライナーの例 (NEW_RELIC_API_KEYとNEW_RELIC_ACCOUNT_IDはそれぞれ固有のものが入ります)。
なお、末尾に`-y`を加えると対話式にならずインストールができるようです。
```
# curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=HOGEHOGEHOGE NEW_RELIC_ACCOUNT_ID=XXXXXXX /usr/local/bin/newrelic install
```
今回は`-y`はつけていないので、対話になった部分は、インストールの開始、アラームの通知先のメールアドレスの確認だけだったと思います。
```
? Continue installing?
```
と
```
Would you like to be notified on your registered email address [New Relicに登録してるメールアドレス] when this alert triggers Y/N (default: N)?
```
でした。


インストールが全て完了すると、以下のような感じになれば完了のようです。
```
  New Relic installation complete

  --------------------
  Installation Summary

  ✔  Golden Signal Alerts  (installed)
  ✔  Infrastructure Agent  (installed)
  ✔  Logs Integration  (installed)

  View your data at the link below:
  ⮕  https://onenr.io/XXXXXXXXXXX

  View your logs at the link below:
  ⮕  https://onenr.io/XXXXXXXXXXX

  --------------------
```

### 実際の取得データを確認しよう
前手順までが完了し、New Relicにアクセスします。
インストール完了後の実行結果に表示されたURLにアクセスすると、以下のような画面が表示されるので、`See your data`をクリックする。
![スクリーンショット 2023-12-13 1.36.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/f42dad54-377e-65ef-ed2b-8e45e2ee7fab.png)

すると・・・・・・・
![スクリーンショット 2023-12-13 1.39.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/7d6c36fa-40ef-6ccf-441c-8897cec22808.png)
EC2の情報が取得できている事が確認できました！

また、インストール後に表示された別のリンク(log)も見てみましょう。
All logsになるので、全て取得されてるようです。
画面上だと`/var/log/secure`も表示されてますね。
![スクリーンショット 2023-12-13 1.41.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/ea7348e5-6a46-194a-6ae3-7efead42c742.png)

インストールについては、特に戸惑いなく実施できました。
結構簡単ですね！思っていたよりも色々データが取得できていていい感じです。

## モニタリング通知を試す
簡単にできるものとして、今回はサーバで`postfix`がインストールされているのでプロセスをダウンさせて通知を試してみます。

### アラートの設定
今回ですと、`Infrastructure`から`Alert`を選び
![スクリーンショット 2023-12-13 2.31.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/faa2bf32-d1fc-7956-716a-c2e2abababf0.png)
右上の`Create alert condition`をクリック
![スクリーンショット 2023-12-13 2.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/331fa90b-9039-421a-bf7e-c06bed481298.png)
`Name this alert condition:`にモニタリング名を入力し、`Choose an alert type
`で`Process Running`を選びます。
![スクリーンショット 2023-12-13 2.35.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/3c8597bb-90d1-d37b-e026-ee40d443f4e3.png)
ページ後段では、`Narrow down processes`にて、`FILTER HOST`で対象のホストを選び、`FILTER PROCESS`で今回の対象である`/usr/libexec/postfix/master`を選びます。
`Define threshold`では閾値設定をします。
今回はプロセスが起動していない状態が1分間を指定しました。
`no processes are running`を選んで、時間に`1`を入力。
![スクリーンショット 2023-12-13 2.37.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/94c76cd6-f64a-73a5-39d2-6837fe169d1f.png)
最後は通知先の設定で、`Alert policy`にてデフォルトの`Golden Signals`を選択し、ページ右下の`Create`をクリック。
![スクリーンショット 2023-12-13 2.41.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/08868874-f5bb-de9c-79b5-91b569263eac.png)
これで設定が完了です。
![スクリーンショット 2023-12-13 2.43.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/1fa55c3d-b015-cf2e-19e6-89a4a304fc99.png)

### 実際にプロセスを落としてみる
EC2にログインし、postfixを停止させます。
```
# ps -ef | grep postfix
root       16216       1  0 02:44 ?        00:00:00 /usr/libexec/postfix/master -w
postfix    16217   16216  0 02:44 ?        00:00:00 pickup -l -t unix -u
postfix    16218   16216  0 02:44 ?        00:00:00 qmgr -l -t unix -u
root       16224    8983  0 02:44 pts/0    00:00:00 grep --color=auto postfix
#
# systemctl stop postfix
#
# ps -ef | grep postfix
root       16242    8983  0 02:44 pts/0    00:00:00 grep --color=auto postfix
#
```
2分程度時間をおきます。

すると、以下のような通知が設定されているメールアドレス宛に通知がされました。
これで通知も試す事ができました。
![スクリーンショット 2023-12-13 2.50.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/27de8a0d-69a1-131e-6d78-c14f2f521613.png)


### Slackなどの通知先を設定する
`Alert & AI`の`Workflows`から設定が可能です。
![スクリーンショット 2023-12-13 2.50.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/80257491-8564-c172-f835-6edc874046a1.png)
デフォルトの場合は、既にある`Golden Signals`の項目を選択すると、この様な画面になるので、Slackのアイコンを選択すると、Slackとの接続画面になるので先に進み、通知チャンネルの選択を行う事で設定が可能です。
![スクリーンショット 2023-12-13 2.54.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/2d3a7eff-37f6-c715-b257-33437f8405cb.png)

Slackでの通知はこのような感じ。
![スクリーンショット 2023-12-13 3.01.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90309/3585f27f-124f-396e-b62a-e323f2cf1093.png)


# さいごに
以上で、簡単なNew RelicのEC2に対するモニタリングの導入から通知までを試す事ができました。
実際に設定を入れてみて、モニタリングの設定までは簡単で、Alertの設定も設定場所さえわかってしまえば、感覚でも操作できるかなといった感じでした。

今回は、公式のドキュメントに沿ってない形で実施している部分もあり、多少間違っている部分もあると思うので実際に試す際は、記事冒頭にある公式ドキュメントのリンクを参照頂く事をお勧めします。