概要
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エージェントの設定
参考
エージェントのインストール後、構成ファイルのディレクトリまで移動
サンプル構成ファイル(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からもアラートが上がっていることを確認