6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

New Relic 使ってみた情報をシェアしよう! by New RelicAdvent Calendar 2024

Day 1

[初心者向け] New RelicのSynthetic Monitoringを自宅のサーバに使ってみよう

Posted at

みなさんご機嫌よう!むらさめです。
そろそろ寒くもなって自宅のサーバが程よく冷える時期になっている中いかがお過ごしでしょうか?
私の場合は部屋が寒くなってもサーバが温かい限り快適に過ごせています。

ただそのサーバ、ちゃんと動いてる保障ありますか?

自宅に限らずサーバが止まると起こる不都合多いと思います。

  • シンクライアント環境で開発ができない
  • デプロイしたサービスが落ちる
  • 部屋が寒くなる

いち早くサーバの停止を知りたいそんなあなたの為に、やりましょう合成監視

Synthetic Monitoringとは?

システムが稼働するネットワークの外側からユーザ視点で監視することでユーザーが体感している表示速度や応答時間などのパフォーマンスを、リアルタイムで計測・把握することができるというもの。
詳しいことは下のリンクで説明されてるので見てみてください!

New Relicでの実装

準備

今回の環境は次のようになってます

machine CPU MEM storage IP
nr-cpm-agent 1vCPU 4GB 50Gi 192.168.100.55/24
vm-1 4vCPU 8GB 30Gi 192.168.100.54/24

nr-cpm-agentというマシンをprivate locationにする予定です。
マシンのスペックは 公式のドキュメントを参考に推奨値に設定をしてます。
vm-1が監視対象のVMになってます。

image.png
nr-cpm-agentからしっかりと疎通は取れる状態になってます。

private locationの作成

今回ホームラボ用に作るため、できるだけエンドポイントを外部に公開したくないため自宅にAgentを配置して監視しようと思います。

image.png
New Relic ダッシュボードのナビゲーションから Synthetic Monitoring > Private locationsを選択
image.png
Create private locationをクリックして作りましょう!
image.png

右側にホームがひょこっと出ると思うのでこいつにわかりやすい名前を付けて Generate Keyを押下…

image.png
すると kubernetesとDockerのhelmや起動コマンドが出ます。
今回はDocker上で動かしたいので下の方にある Docker run コマンドをコピーしておく。

private locationとして動作させたマシンにペーストしてあげる。

$ docker run \ 
-e PRIVATE_LOCATION_KEY=NRSP-******** \
-d --restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock:rw \
newrelic/synthetics-job-manager

$ docker ps
CONTAINER ID   IMAGE                                     COMMAND                  CREATED          STATUS          PORTS           NAMES
9ee39cde6ef2   newrelic/synthetics-ping-runtime:latest   "/data/synthetics-pi…"   41 seconds ago   Up 40 seconds   8080-8082/tcp   PING
c7f0946ea91d   newrelic/synthetics-job-manager           "/data/synthetics-jo…"   51 seconds ago   Up 50 seconds   8080-8082/tcp   youthful_bhabha

こんな感じになればprivate locationの設定はOK!

monitor jobを作成する

ダッシュボードに戻り、 ナビゲーションから Synthetic Monitoring > Monitors > Create your fast monitorを選択しましょう
image.png

Select monitor typeがいくつか出てくるなかで Endpoint availabilityを選択
image.png

わかりやすい適当な名前を付ける。
image.png

Select locationsで先ほど作ったprivate locationを選択してください
image.png

Write Scriptはnew relicのQuick startを参考にICMPのスクリプトを貼り付けてください
この時、

var checks = [
 { 'host': 'vm-1', 'ip': '192.168.100.54' },
]

のように変更して save monoitorを押下
image.png

するとMonitorが作られるので覗いていきましょ!
image.png

ダッシュボードを覗いてみる

先ほど作ったjobのダッシュボードを覗いてみると、幾度か成功してるのがわかります。
image.png

試しにVMを落として、 Run checkを回してみると
image.png
しっかり失敗してるのがわかります。

アラートの設定

ここまで来たらあとは通知設定を済ませるだけです。

Alert Conditions > New alert Conditionsで新しいアラートのルールを作りましょう
image.png

Use guided modeを選択
image.png

Synthetic monitorsを選択してNext
image.png

今回作ったvm-1(job)を対象にして、ICMPに失敗したときにアラートを出したいので、Failuresを選択
(NRQL吐き出してくれるの便利すぎる…)
image.png

今回はalertがこれだけなのでone issue per policyを選択
image.png

Alert Conditionが作った後、VMを落とすと・・・
image.png
しっかりとCritical レベルでアラートが出てることがわかります。
後はPagerDutyやSlackと連携することでいつでも通知を飛ばせそうですね!
(PagerDutyのアカウント作ったら連携した記事も出そうと思います。)

まとめ

自宅や非公開のサーバ群の死活監視等もNew RelicのSynthetic Monitoringを使えばできるので皆さんのご自宅で働いてるサーバも監視してみませんか?
他にもSynthetic Monitoringでは、Webページのロードパフォーマンスの監視やSSLの証明書チェックなど様々な事ができます。
皆さんも使ってみてください!

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?