非サーバのWindows10でMackerelのプラグインを入れてみた

リモート監視ツールのMackerelがブレイク中だ。

お試しで2週間255ホスト無料である。

というか5ホストならずっと無料らしい。

 

個人で維持してるサーバなら無料でいいんじゃないだろうか。

ということで、ひとつ入れてみた。

CPU負荷やDisk入出力なんかは標準でログを取ってくれる。

個人的に近頃GPUに負荷をかけているので、これも取れないかと試みた。

 

監視するマシンにはMackerelのagentというものをインストールする。これにプラグインを加えることで監視データを追加できるというものだ。

で、公式のプラグインLinux用のようである。そっち向けのインストール手法しか公式には書かれていない。

Windows用でもできるはずなので試みた。

 

GPUデータ取得は Nvidiaのドライバを入れたときに同時に入ってる"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"を実行して得られるデータを切り出す。

具体的にはこちらにある。

github.com

 

コマンドひとつのためにパス設定するのも野暮いので、このプラグインの方に上記のコマンドのフルパスを入れてビルドしておいた。

実行ファイルの標準出力を加工して標準出力に出しているだけのようで、Go言語である必要はクロスプラットフォーム問題だけだろう。

 

あとはmackerel-agent.confに下記の二行足して保存するだけである。

[plugin.metrics.nvidia-smi]
command = "mackerel-plugin-nvidia-smi"

その後、トラブルは発生した。

上手に動いていないのである。

原因はとんでもないところにあった。

そもそも私はmackerel-agent.confを編集していなかったのである。

 

どういうことか。

Windows XP以降Program Files以下は管理者権限がないと一般には編集不可能なのだが、トラブル多発の結果後方互換を大切にするマイクロソフト社がVista以降で組み入れたVirtualStoreが本件の原因。

というか秀丸エディタとか秀丸エディタとか秀丸エディタとかデフォルトで VirtualStoreが有効になってるエディタでconfファイルを管理者権限持った一般ユーザが編集したのが過ち。非サーバのWindowsの方が起こり得るミスね。

つまり、特定ユーザだけにProgram Files以下のファイルを編集したように見せかける仮想ストレージがオーバーレイされてる状態でサービスの設定をしようとした。

つまり私が弄ってたファイルは以下にあります。

C:\Users\私\AppData\Local\VirtualStore\Program Files (x86)\Mackerel\mackerel-agent

言語系アプリがProgram Files以下にインストールしたがらないのはこういうことが頻繁に起こるからなのですよね。

管理者権限で秀丸エディタ(かメモ帳)を起動すれば大丈夫でした。

つまらん、実につまらん。(これで私とマカレルサポートを1週間ほど悩ませた。実に申し訳ない。)