win8上munin-node-win32で、linux munin-nodeのplugin "smart_"を動かす

munin-node-win32とspeedfanでHDD smart情報が取れないので、lunuxで動いているmunin-nodeのplugin "smart_"を持ってきて動かすこととした。以下、設定の備忘録。

事前にインストール

pythonスクリプト "smart_"の変更

smart_の変更点は1点のみ。statefiledir='/cygdrive/c/'。
利用したsmart_は、EPELのRHEL6用munin(1.4.7-1.el6)から抜いた。smart_スクリプト内のバージョン表記は v2.0 08/05/2009。

munin-node-win32 のiniの変更

  • Externalを1に
  • smart_を呼び出す
Plugin01=C:\app\bin\smart_sda.bat
Plugin02=C:\app\bin\smart_sdb.bat
Plugin03=C:\app\bin\smart_sdc.bat
@ECHO OFF
SETLOCAL

C:
CD c:\app\bin
SET smartdevice=sdb

SET CYGWIN=nodosfilewarning
SET cygwin=C:\cygwin
SET Path=%Path%;%cygwin%\bin
SET python=%cygwin%\bin\python2.6.exe

if "%1"X == "name"X (
    %cygwin%\bin\echo -n "smart_%smartdevice%"
    goto end
)
%python% ./smart_%smartdevice% "%1" | %cygwin%\bin\tr -d "\r"
ECHO .| %cygwin%\bin\tr -d "\r"

:END
ENDLOCAL
    • trを使っているのは改行コード\r\nを\nに変えるため。公式な情報はここ で、pythonスクリプトで対応する方法が書かれている。
  • c:\app\binの状況
C:\app\bin>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は BCAE-44C8 です

C:\app\bin のディレクトリ

2012/09/08  20:25              .
2012/09/08  20:25              ..
2012/09/08  19:58            22,261 smart_sda
2012/09/08  20:24               389 smart_sda.bat
2012/09/08  19:58            22,261 smart_sdb
2012/09/08  20:09               389 smart_sdb.bat
2012/09/08  19:58            22,261 smart_sdc
2012/09/08  20:25               389 smart_sdc.bat
               6 個のファイル              67,950 バイト

今後のメモ

munin のsmart_ pluginは、smartctlからVALUEを抜いてくる。Current_Pending_SectorなどSMARTで得られる情報の種類によってはRAW_VALUEも見たくなる場合もあるが、対応していない。(2012/9月現在) 公式な情報 として「In most cases, the "RAW_VALUE" doesn't make much sense, except for temperature but again, displaying the temperature is out of the scope of the smart_ plugin.」の記述。