A colleague is writing a nagios nrpe plugin to check raid status. (We have a lot of machines wtih RAIDframe RAID1 sets. These work very well, but we wouldn't notice if a disk failed.) raidctl -s provides the needed information, but /dev/rraid0d is root.operator 640. I don't want to give the plugin read access, because then it could read the data on the disk. So, it would be nice if there were some way to get raid status without having the ability to read. Perhaps a /dev/raid0stat, on which the following ioctls ioctl(3,RAIDFRAME_GET_INFO,0x7f7fffffd890) ioctl(3,RAIDFRAME_GET_INFO,0x7f7ffffef238) ioctl(3,RAIDFRAME_GET_COMPONENT_LABEL,0x7f7ffffef410) ioctl(3,RAIDFRAME_GET_INFO,0x7f7ffffef238) ioctl(3,RAIDFRAME_GET_COMPONENT_LABEL,0x7f7ffffef410) ioctl(3,RAIDFRAME_CHECK_PARITY,0x7f7fffffd898) ioctl(3,RAIDFRAME_CHECK_RECON_STATUS,0x7f7ffffef424) ioctl(3,RAIDFRAME_CHECK_PARITYREWRITE_STATUS,0x7f7ffffef420) ioctl(3,RAIDFRAME_CHECK_COPYBACK_STATUS,0x7f7ffffef41c) would work. Or perhaps this argues for fine-grained capabilities instead of suid. Additionally, it would be nice if raidctl -s printed the status line one would want for monitoring, something like: STATUS: green STATUS: yellow Reconstructing parity, 45% done. STATUS: red Component wd1 FAILED. since raidctl already has all of the data in machine-readable format. The status line would basically have the worst aspect of the current state encoded for a human.
Attachment:
pgp5utTxiU55k.pgp
Description: PGP signature