概要

New Relicを使用してwindowsのサービス監視をしてみる

環境

AWS

EC2:Windows_Server-2022-Japanese-Full-Base-2023.06.14

監視対象サービス

W3SVC(World Wide Web 発行サービス)

PS C:\Users\Administrator> Get-Service "w3svc"

Status Name DisplayName
------ ---- -----------
Running w3svc World Wide Web 発行サービス

設定手順

1.New Relicエージェントのインストール

[ADD Data]よりwindows OSを選択

[Begin installation]を押下後、表示されたインストールコマンドを使用してNew Relicエージェントのインストールを行う

windowsインスタンスにRDP後、管理者権限でWindows PowerShellを実行し上記にて表示されたインストールコマンドを入力

2.New Relicエージェントの設定

参考

https://docs.newrelic.com/jp/docs/infrastructure/host-integrations/host-integrations-list/windows-services-integration/

エージェントのインストール後、構成ファイルのディレクトリまで移動

サンプル構成ファイル(winservices-config.yml.sample)をコピーして構成ファイル(winservices-config.yml)を作成

管理者権限で実行したメモ帳から構成ファイル(winservices-config.yml)を開き、以下を編集

・「exporter_bind_address:」と「exporter_bind_port:」のコメントを外す
・「include_matching_entities:」に監視したいサービス名を記載

integrations:
- name: nri-winservices
config:
# IP address and port used by the Prometheus exporter to bind the server.
#
exporter_bind_address: 127.0.0.1
exporter_bind_port: 9182

# To include services, create a list of filters to be applied to the service names.
# Services that find a match with any of the matching lists are included. By default,
# no service is included.
#
# Currently, only windowsService.name metadata is supported for filtering.
# Prepend "regex" to indicate that the pattern is a regular expression.
#
include_matching_entities:
windowsService.name:
- "W3SVC"
# - "newrelic-infra"
以下略

上書き保存後、New Relicエージェントサービス停止→開始

3.NewRelicでコンディションの作成

コンディションのNRQLは以下のように設定(aws.ec2.InstanceIdに対象のインスタンスIDを入力)し、閾値は0より大きい場合で設定

SELECT count(*) FROM Metric WHERE metricName = 'windows_service_state' AND state = 'stopped' AND service_name = 'w3svc' FACET display_name, service_name,tags.Name WHERE aws.ec2.InstanceId = 'i-xxxxxxxx'

workflowにはメールアドレスを設定し、アラート発砲時にメール通知が届くように設定

アラート発砲テスト

サービスから対象サービスを停止

アラート発砲後workflowで設定したメールアドレスにメール通知されることを確認

また、New RelicのIncidentsからもアラートが上がっていることを確認