Zabbix RAID monitoring for Adaptec/Microsemi, HP Smart Array, Lenovo M.2 RAID (mvcli), LSI MegaRAID (megacli) and LSI (sas2ircu)
Simple parser for arcconf, ssacli, mvcli, megacli and sas2ircu written in Go.
Zabbix template provides LLD for controllers, logical and physical drives.

There are two version, one for passive zabbix agent (zbx_raid_monitoring.xml) and one for active zabbix agent (zbx_raid_monitoring_active.yaml).
Configured host must have macros {$RAID_VENDOR} (as value for cli option -vendor).

raidstat: parse raid vendor tool output and format it as json
Usage:
zabbix-raidstat (-v <VENDOR>) (-d <OPTION> | -s <OPTION>) [-i <INT>]
Options:
-v, --vendor <VENDOR> raid tool vendor, one of: adaptec | hp | marvell | megacli | sas2ircu
-d, --discover <OPTION> discovery option, one of: ct | ld | pd
-s, --status <OPTION> status option, one of: ct,<CONTROLLER_ID> | ld,<CONTROLLER_ID>,<LD_ID> | pd,<CONTROLLER_ID>,<PD_ID>
-i, --indent <INT> indent json output level [default: 0]
-h, --help show this screen
Config file config.json is used for raid vendors -> tools configuration.
{
"vendors": {
"hp": "ssacli",
"vendor1": "/PATH/TO/BINARY1",
"vendor2": "/PATH/TO/BINARY2"
}
}
Vendor name is used as plugin name (like "hp.so").
Run make to compile all in build directory
Run mnake tar to get an archive
- Copy
raidstat/zabbix/raidstat.sudoersto/etc/sudoers.d/raidstat - Copy
zabbix/userparameter_raidstat.confto/etc/zabbix/zabbix_agentd.d - Copy compiled binaries to
/opt/raidstat - Import template
zabbix/zbx_raid_monitoring.xml - If you are running fapolicyd add trust:
fapolicyd-cli --file add /opt/raidstat/* --trust-file raidstatand reload fapolicyd