サイトアイコン デーコムラボ

windows用のmuninプラグインの作成

こんにちはマツダです。

Windows用のmuninプラグインを作成する機会があったので共有します。
今回はIISのアクセス数を表示するプラグインを作成したいと思います。

対象バージョン

プラグイン本体

プラグインはIISのアクセス数を返すVBScript(iis_request.vbs)とそれを呼び出すcmdファイル(iis_request.cmd)になります。

プラグインの作成

IISのアクセス数はパフォーマンスモニタの「Web Service(_Total)\Total Method Requests」の値を取ってきて表示します。
また第一引数にconfigを指定された場合は、グラフ(RRDtool)の設定を返すようにします。C:\munin\plugins\iis_request.vbs

Option Explicit

Dim args, objWMI
Set args = WScript.Arguments
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")

if args.Count = 1 then
    if args.Item(0) = "config" then
        Print("graph_title IIS requests")
        Print("graph_category iis")
        Print("graph_info This graph shows iis requests.")
        Print("graph_vlabel request/sec")
        Print("graph_args --alt-autoscale-max --rigid --base 1000 --lower-limit 0")

        Print("requests.label Total Method Requests")
        Print("requests.draw LINE")
        Print("requests.type DERIVE")
        Print("requests.min 0")

        Print(".")
    elseif args.Item(0) = "name" then
        Print("iis_requests")
    end if
    WScript.Quit
end if

' Get performance monitor Web Service(_Total)\Total Method Requests
Dim Request
For Each Request in objWMI.ExecQuery ("Select * from Win32_PerfRawData_W3SVC_WebService where Name='_Total'")
    Print("requests.value " & Request.TotalMethodRequests)
Next

Print(".")

Sub Print(str)
    Wscript.StdOut.Write str & vbLf
End Sub

C:\munin\plugins\iis_request.cmd

@echo off

rem Munin Node for Windows external plugin wrapper

call %windir%\system32\cscript.exe //NoLogo "C:\munin\plugins\iis_request.vbs" %1

作成したプラグインの設定

c:\munin\munin-node.ini に下記を追記し、munin-nodeを再起動します。

[Plugins]
External=1
ExternalTimeout=5

[ExternalPlugin]
Plugin01=c:\munin\plugins\iis_request.cmd

動作確認

グラフが正常に表示されることを確認します。


※参考にしたサイト:https://gist.github.com/moisseev/6026bb2794b33b2488c65aec9a8a5452

モバイルバージョンを終了