注視していたいデータを取り込んで可視化するということはとても大事だけど、可視化した後にその情報をずっとみておくのはかなり辛いよね。何かあったら教えて欲しいけど、New Relic上ではそれはどうやってやればいいのかな?そんな時は、この記事をみて、やってみて!!
はじめに
社会人なりたての若手の頃(すっごい大昔だね!!)、大きなシステム障害が発生してベテランの大先輩を含めた大人数でトラブルシューティングを行ったことがあるんだけど、大先輩からの作業依頼が『この画面をみてて。何か変な表示になったら、すぐに教えてね。』というもの。あの頃は心が汚れていなかったから、じーーーっと画面を注視していたんだよね。不思議なことに、一生懸命画面に集中したいた時ほど、その時の記憶がまったくないんだよね。。。(うんうん、ちゃんと起きていたよ。きっと心が別次元を彷徨っていただけに違いない。)
ふと気づくと...画面上の表示は最初とは全然違う状況に。そーっと、大先輩に『表示が、つい先ほど、変わりました。(心穏やかに)』とお伝えいたしましたとさ。そしたら、大先輩も(心穏やかに)『うん、知っている(遠い目)』と仰っていました。良い思い出です。
システムの状況は刻一刻と変化するものなので、全体の傾向を捉えるのは目視でも対応できるかもしれないけど、重大な変化を即座に捕まえて把握するには何かしらの人に頼らない方法が必要だよね。大先輩に遠い目をされないためにも、New Relic上でこのの方法をどうやればいいかを、さっそくやってみよう!!
さっそく問題
こんな時どうする?
ダッシュボードは便利だけど、ずっと画面をみるのではなく、何かありそうな時にお知らせをもらえると嬉しいな。
用意してほしいもの
無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!
New Relicの環境
- もし持っていない場合は、上記のQiita記事を参考にFreeの環境を取得しよう。
- 業務で既にNew Relicを使っているなら、その時に使っている業務用のメールアドレス以外のものでFreeの環境を取得しよう。
Windowsサービスのステータスを計測しているインフラストラクチャエージェント
- インフラストラクチャエージェントのWindows Services Integrationを有効化したWindowsサーバを用意しよう。
設定方法の具体的な内容は、以下のQiita記事を参考にしてね
お知らせを受けるためのメールアドレス
- お知らせを受けるメールアドレスを用意しよう。
New Relicポータルでログインする時に使うメールアドレス以外にも、通知先として違うメールアドレスを登録することができるよ
お知らせのことを、この後はNew Relic内でよく使うアラートという用語で説明しているよ
利用しているみんなの安全をまもるために、New Relicの利用規約上、ログインユーザにメーリングアドレスを利用することは禁止にしているから、注意して欲しいのだけど、お知らせ(アラート)の通知先にはメーリングアドレスを利用しても大丈夫だよ。実際の利用を想定して、どんな設定にすればいいのかも色々考えてみて。
さぁやってみよう
作成しているダッシュボードからアラートを通知したいサービスを選択する
- チャートのメニューからアラート作成のための項目を選択する
今回は通知設定を行うことがテーマだけど、もし既にダッシュボード上で対象としているチャートを作成しているなら、簡単に設定を行うことができるよ
今回はその方法でやってみるよ
前回のQiita記事で作成したWindowsサービス用のダッシュボードから、ステータスの変更をお知らせしたいチャートを選ぶよ(今回は、MSSQLサーバのサービスを対象にしたよ)
選択したサービスの右上には...実はメニューが隠れいているよ
右上をクリックすると[...]の3点ドットメニューがあるよ

この[...]をクリックするとプルダウンメニューが表示されるから、Create alert conditionをクリックして、アラートの設定を行うよ

Create alert conditionメニューをクリックすると、右側からアラート発報条件を定義するためのUIがスライドしてくるよ
チャートを作成する時に設定したクエリ(NRQL)の内容が反映された表示になるよ
もしかしたら、hostnameの値やdisplay_nameの設定はみんなの環境と少し違っているかもしれないけど、みんなの環境でダッシュボードがちゃんと表示されているなら、細かいところは気にしなくていいよ。
もし、ゼロからアラートを作る方法を学習したい、理解したいなら、こっちにジャンプして、アラート設定を行うセミナーを試してみて
アラート発報条件を設定する
To-Dos:
-
: 取得データの確認 -
: 閾値条件の設定
まずは対象データ取れているかを念の為確認する
NRQLが表示されているUIが右側からスライドしてきたら、画面中央の右側にあるRunの青ボタンを押して、ちゃんとデータが描画できるかを確認してね
特に、表示されたNRQLを細かくチューニングした時とか、ちゃんと欲しいデータを取れているかを確認できるから便利だよ

次にアラートの詳細条件を設定する
対象データが参照できることが確認できたら画面右下にあるNextの青ボタンを押して、アラートの詳細設定画面に移動するよ
移動すると対象データがプロットされた画面が表示されるから、そのまま下にスクロールするとアラートの詳細設定が表示されるよ
色々な設定項目があるけど、下の様に設定してみてね
重要なポイントは以下の通りだよ
Data aggregation
- Window duration: '1' 'minutes'
- Streaming method: 'Event flow'
- Delay: '30' 'seconds'
Gap filling strategy
- Fill data gaps with: 'Last known value'
Set condition thresholds
- Static: 'checked'
Open incidents with a
- Severity level: 'Critical'
- When a query returns a value: 'below' '1' 'at least once in' '3' 'minutes'
MSSQLサーバの再起動にかかる時間とかは環境によっては大きく違うと思うから、When a query returns a valueの設定は本当に利用する時はチューニングが必要になるかもしれないよ
この設定部分はNew Relic用語で『コンディション』の設定をしたというよ
対象データをどんな頻度で確認したり、閾値をどう指定するとか重要な情報が詰まっているよ
設定が完了したら、もう1回、画面右下にあるNextの青ボタンを押して、次の設定に移るよ
Condition設定を保存するための設定
UIの設定画面が変わるので、作成したconditionを保存するための作業を行うよ
-
condition名指定 -
Policyの作成
condition名を設定する
設定画面のName your alert conditionのフィールドに今回作成したconditionの名前を指定するよ

Policyを作成する
次に、Connect this condition to a policyのNew policyをチェックしてね
New policyをチェックすると、設定画面の一部が下のスクリーンショットのように変化するよ
Group incidents into issuesでOne issues per condition and signalにチェックしてね
Policy(ポリシー)はNew Relic用語の1つなんだけど、複数のconditionをまとめるための概念だよ
MSSQLサービスのためのcondition以外にも、他サービスのconditionを作成した時の設定保存先として利用すると便利だよ
設定後、画面右下にあるSave & set up notificationの青ボタンを押してね
これで、conditionとpolicyの設定は完了したので、次はアラートが発生した時の通知先を設定していくよ
メール通知のための設定を行う
- 通知設定の流れで、メール通知先を設定する
ステップ
でSave & set up notificationボタンをクリックすると、再度、右側から新しい設定UIがスライドしてくるよ
この設定をNew Relic用語で『ワークフロー』設定を行うというよ
どのアラートの条件を通知対象にするのかとか、どこに通知するのかといった設定をまとめて行う設定だよ
通知設定の流れで、メール通知先を設定する
最初に、画面上部にあるフィールドに、わかりやすい設定名を指定してね
次に、画面の中央部にあるEmailのタイルをクリックするよ
クリックすると、再度、右側からメール通知のためのUIがスライドしてくるよ

Email destionationフィルドを選択すると、Create new destinationというプルダウンメニューが表示されるよ

このCreate new destinationメニューをクリックするとアラート通知先のメールアドレスを登録するためのUIが表示されるので、+ Add emailボタンを押し、登録したいメールアドレスを入力するよ
入力するとプルダウンされているメニューのしたにExtenral address...の部分が追加表示されるので、その表示された部分をクリックするよ
併せて、画面下部にあるNameフィールドにも表示用のテキストを指定してね
下の表示になったら、画面右下にあるSave destinationの青ボタンをクリックしてWorkflowの設定画面に戻るよ

下のスクリーンショットのようにEmail destinationの下に、登録したメールアドレスの表示がされていればOKだよ

ここまでできたら、次は画面右下にあるSaveの青ボタンをクリックしてね
ワークフローの設定画面に戻ってくるので、画面右下にあるActivate workflowの青ボタンをクリックして設定を完了してね
さっそくアラートを発生させてみよう
ここまできたら、後はアラートがちゃんと手元に届くかを確認するだけだね
対象のWindowsサーバ上のサービスから対象のサービスを停止と起動を繰り返して、どんなアラートメールが届くかを確認してね
やってみよう1: サービスを停止した時にどんな内容のメールが届くかな?
- 対象のサービス名はどこで確認できるかな?
- どのアラート設定(condition)がアラート発行の理由になったかはどこで確認できるかな?
やってみよう2: サービス停止後に、サービスを起動するととんなメールが届くかな?
- 対象サービスを起動した時に新しいメールが届くはずなので、新たに届いたメールとサービス停止時に届いたメール内容を比較したらどんな違いがあるかな?
アラートが発報したことをOpen(オープン)やActive(アクティブ)と言い、アラート発報状態が解除されたことをClosed(クローズド)と言うよ
やってみよう3: (すこし難しい) ConditionのAdditional設定を試してみよう
- Condition設定内のTitle templateに値を設定するとメール通知はどう変化する?
- Condition設定内のDescription templateに値を設定するとメール通知の内容どう変化する?
- Condition設定内のRunbook URLに任意のURLを設定するとメール通知の内容はどう変化する?
New RelicポータルのAlertsメニューから、Alert Policiesを選択して、表示される一覧から作成したPolicyを選択してね
選択したPolicyに含まれるCondition一覧が表示さえるから、この一覧から作成したConditionを選択するよ
Conditionの設定内容を確認できるUIに変わるから、そのUI内のAdditional detailsセクション内の右上にあるEditをクリックするよ

クリックすると設定画面が切り替わるから、UI下部に任意の設定値を入力するよ

入力後、右下のSave conditionボタンをクリックして設定を反映するよ
設定反映後、改めて対象サービスを停止してみてね
Title templateはとても便利な機能だけど、Policy側で複数のアラートを1つに相関する設定にしていると、メールの標題から何のconditionがアラートを発報したかがわかりにくなる可能性があるので、使い方には注意が必要だよ
参考となるNew Relic公式ドキュメント
さいごに
アラートの設定は無事にできたかな?いくつも設定項目があったから、少し大変だったかもしれないね
この設定ができると、メール通知だけじゃなく、いつも使っているSLACKやTeamsにお知らせを飛ばしたら、外部システムとの連携としてWebhookでアラート情報を転送させることができるから、利用範囲がとても広がるよね。
もし、もっとアラートの設定の詳細を知りたいよと思ったら、下の画像からトレーニングを受講してみてね。実際に触れる環境もあるから、やりたいことが簡単にできるようになるよ。
今回は触れていないけど、今回のステータス推移のようなケースじゃなくて、一般的なデータの将来の推移を予測してアラートを飛ばすなんてこともできるから、もし興味があったらNew Relicの公式ブログも読んでみてね。すごくワクワクするよね。
New Relicは他にもみんなの役にたつ機能やサービスを提供しているから、これからも利用方法を問題形式にして、安心して触ってもらえる情報を出していくよ。
New Relic株式会社のQiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。




