OMRONのUPSを使っているが、長年監視を放置していた。いい加減監視したいと思って設定したので、記録を残しておく。
まず、OpenBSD/NetBSDな人は以下を参照のこと。
オムロン製UPSをOpenBSD/NetBSDで使うためのメモ (GitHub Gist)
本記事は上記を参考に、FreeBSD 14.0向けに設定してみた記録になる。
やることは以下。
- nutをインストールする
- UPSのVendor IDとProduct IDを調べる
- nutユーザがデバイスを使えるようにdevdを設定する
- nutを設定する(※本稿では全部は扱わない)
諸事情あってproduct IDはすべて伏せている。参考にして設定する奇特な人は、XXXXのような部分は適宜読み替えてほしい。
nutをインストールする
pkgでいっぱつ。
# pkg install nut
UPS関係だから名前にUPSが入ってるだろうと思って pkg search ups
しても出てこない。
nutという名前は覚えて帰ろう。
UPSのVendor IDとProduct IDを調べる
なんでもいいので調べる。
ここでは dmesg
で ugenX.X
を調べたあと、usbconfig
の dump_device_desc
を使って調べた。
# usbconfig -d ugenX.X dump_device_desc ugen0.3:at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA) (...snip...) idVendor = 0x0590 idProduct = 0xXXXX
nutユーザがデバイスを使えるようにdevdを設定する
nutはnut
ユーザで動作するので、通常 root:wheel
な /dev/ugenX.X
(の指す /dev/usb/X.X
) を触れない。
devd
を設定して、OMRON UPSだったらnutユーザにプレゼントしよう。
設定後は service devd restart
をお忘れなく。
/usr/local/etc/devd/nut-usb-omron.conf:
notify 100 { match "system" "USB"; match "subsystem" "INTERFACE"; match "type" "ATTACH"; match "vendor" "0x0590"; match "product" "0xXXXX"; action "chgrp nut /dev/$cdev; chmod g+rw /dev/$cdev"; };
/usr/local/etc/devd/nut-usb.conf
を参考に書いたが、subsystemはDEVICEではなくINTERFACEになるようだ。
うまくいかないなら devd -d
を実行して確認するといい。
nutを設定する
こんな感じ。
driverは参考資料では blazer_usb
だが、maintenance-onlyだよ、というので nutdrv_qx
に変えた。
/usr/local/etc/nut/ups.conf
:
[XXXXX] driver = nutdrv_qx port = auto desc = "OMRON XXXXX" vendorid = 0590 productid = XXXX subdriver = ippon
通信テストは、以下のようにしてドライバを直接実行すればいい。read: (...
のような出力が定期的に出ればOK。
# /usr/local/libexec/nut/nutdrv_qx -DDDD -a XXXXX
あとはUPSがどうなったらどうしたい、の話になるので、man nut.conf
でも実行してnutと仲良くなるといい。
私はドライバ出力を食ってprometheusに出力したかっただけなので、nut自体は使っていない。