
New Relicのアラートコンディションでは、信号喪失の設定を使ってプロセスが停止したことやインスタンスが停止したことを行っていただけます。ただし、この設定は停止したことが検出できることとなり、ホスト起動時に起動していないことを検出することはできません。プロセスがホスト起動後に正常に起動し、起動し続けることを確認するためのアラートコンディションの例をご紹介します。
今回は、httpdというプロセスを例にした、アラートのNRQLクエリーは以下のようになります。
クエリーの主なポイントは、以下の3つになります。
- FROM句にSystemSample, ProcessSampleの両方を記載している
- filterを使って対象のProcessSampleの数を集計する
- FACET句にentityGuidを指定して同じホスト上のデータを同一のシグナルにて処理している
New Relicのアラートは、ストリーミング・アラートとなっており、集計対象のデータが存在して初めて集計が動作します。プロセスが起動していない場合、対象のProcessSampleのイベントもありません。そのためアラートの集計を行うために何らか追加のデータが必要となりますが、何でも良いというわけにはいきません。そのため、同一ホストのSystemSampleをProcessSampleがない状態でも集計を動作させるために利用します。そのため、FROMにSystemSampleを追加し、FACET句でentityGuidを指定しています。また、集計としては、対象のProcessのProcessSampleのみを集計したいため、filter()を使っています。
上記クエリーを設定の上、しきい値の設定で equal to 0
あるいは、below or equal to 0
に設定すれば、基本的には他の項目は任意でも、プロセスが起動しなかった場合にアラートを発生させていただくことができるかと思います。
また、その他追加で設定したほうが良いと思われる項目も記載します。
Evaluation delay
対象のシグナルの判定開始を遅らせる設定です。ホスト起動直後は不安定なことがあり、誤判定する可能性があるので、こちらを有効にして、少し判定開始を遅らせることをおすすめします。
Open new "lost signal" incident. Notification sent based on issue creation preference
信号喪失時にIncidentを発生させるための設定です。プロセス監視の観点では不要ですが、ホスト自体が予期せぬ終了をした場合に、Incidentを発生させたい場合は、有効にするとよいかと思われます。
なお、 Do not open "lost signal" incident on expected termination の設定も合わせて有効化していただくことを推奨します。対応しているOSをご利用の場合は、正常終了時に信号喪失による違反検出を発生させないようにしていただけます。
for at least
また、その他しきい値の設定で、「at least once in」と「for at least」の設定がありますが、こちら、「for at least」にして、Window durationに対して少し長めに設定することをおすすめします。こちらが短い場合、シャットダウン時にホストより先にプロセスが終了した場合に誤検出が発生するリスクがあるかと思われます。
アラートの具体的な設定例
最後に参考までに、全体の設定内容の例を以下に記載します。
基本的にはNRQLクエリーのプロセス名を変更したり、WHERE句(filter()内のWHEREではなく外側のWHERE)で監視対象を絞ったりして頂ければそのまま使っていただけると思います。お客様の要件により、カスタマイズしてご利用ください。
이 블로그에 표현된 견해는 저자의 견해이며 반드시 New Relic의 견해를 반영하는 것은 아닙니다. 저자가 제공하는 모든 솔루션은 환경에 따라 다르며 New Relic에서 제공하는 상용 솔루션이나 지원의 일부가 아닙니다. 이 블로그 게시물과 관련된 질문 및 지원이 필요한 경우 Explorers Hub(discuss.newrelic.com)에서만 참여하십시오. 이 블로그에는 타사 사이트의 콘텐츠에 대한 링크가 포함될 수 있습니다. 이러한 링크를 제공함으로써 New Relic은 해당 사이트에서 사용할 수 있는 정보, 보기 또는 제품을 채택, 보증, 승인 또는 보증하지 않습니다.