⬛︎説明
Windowsサーバからping監視を行うプラグインをpowershellで書きました。
⬛︎作成の背景
- linux用の標準plugin"check_ping"はwindows用には標準ではありません。
- フリーウェアでwindows用のものがありますがperl製です。
https://www.itefix.net/check_winping - 動かす為にActive Perl等をインストールしたくないケースに対応する為に作成しました。
⬛︎ソースコード
check_pingwin.ps1
param ( $check_host_ip ) try { # "-Count 2 -TimeToLive 1" can not be change, #because the processing time of "Test-Connection" #over the nrpe timeout period(default 10sec). # if you customize "the nrpe timeout period" to 30sec, #you can change "-Count" to 6. $Result = Test-Connection -ComputerName $check_host_ip -Count 2 -TimeToLive 1 -Quiet if($Result) { write-host "OK - ping check is OK." exit 0; } Else { write-host "CRITICAL - ping check is NG." exit 2; } } catch { write-host "UNKOWN ERR - $_;" exit 3; }
⬛︎仕様
- pingを対象IPアドレスに対して2回実行し、一回も成功しなかった場合CRITICALになります。
- pingを打つ間隔は1秒間です。
- pingのTTLは1秒です。
- 上記仕様はnrpeのタイムアウト間隔(10秒)とTest-Connectionコマンドレットの仕様に合わせたものになります。
- 上記仕様を変更したい(ping回数や打つ間隔、TTLを変更したい)場合はnrpeのタイムアウト間隔を広げる必要があります。
⬛︎使用例
PS C:UsersAdministrator> .check_pingwin.ps1 -check_host_ip 10.0.0.100 OK - ping check is OK. PS C:UsersAdministrator> .check_pingwin.ps1 -check_host_ip 10.0.0.10 CRITICAL - ping check is NG.
・・・作ったけど結局使うことなくなったのでお蔵入りになりました。よければどなたか使ってやってくださいmm