Skriptet är i PHP och använder Pushover som bärare. Pushover kostar 55 kr engångskostnad och du får skicka 10000 anrop per månad.
Det funkade så bra att jag vill dela med mig.
Håll tillgodo
Sätts med fördel upp som ett cron.jobb, kör det två gånger om dagen (eller fler om ni är paranoida)
EDIT: Kräver att ni aktiverar Redfish i iDrac: Overview > iDRAC Settings > Network > Services
Kod: Markera allt
<?php
// Array med URL'er som iDrac har för, i detta fall två volymer och kontrollern.
$idracchecks = array(
                     "https://192.168.XXX.YYY/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.0:RAID.Integrated.1-1", 
                     "https://192.168.XXX.YYY/redfish/v1/Systems/System.Embedded.1/Storage/Volumes/Disk.Virtual.1:RAID.Integrated.1-1", 
                     "https://192.168.XXX.YYY/redfish/v1/Systems/System.Embedded.1/StorageControllers/RAID.Integrated.1-1");
// Loopa antal objekt i arrayn
for($urls = 0; $urls < sizeof($idracchecks); $urls++) {
       getidrac($idracchecks[$urls]);
}
// Pushover-funktion. Tar två variabler, i deta fall namnet på volymen/kontrollern och statusen
function send_pushover($module, $error)
{
  
  curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.pushover.net/1/messages.json",
  CURLOPT_POSTFIELDS => array(
    "token" => "DITT_APP_TOKEN",  // Skapa en ny app i Pushover med rätt namn
    "user" => "DITT_USER_TOKEN",  // Userkey
    "message" => "Fel i modul: " . $module . "Felkod: " . $error,
  ),
  CURLOPT_SAFE_UPLOAD => true,
  CURLOPT_RETURNTRANSFER => true,
));
curl_exec($ch);
curl_close($ch);
}
// Kolla iDrac-url, kommer från main for loop
function getidrac($url) {
    $CurlVerbose    = FALSE; // Om det blir fel, sätt denna till TRUE och kör skriptet manuellt
    $headers = array(
                'Accept: application/json',
                'Content-type: application/json',
                );
    $username = "readuser";      // Skapa ny användare i idrac, räcker med Read-Only
    $password = "readpassword";  // Sätt ett bättre lösenord :-)
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 1);                      // Måste skicka med headers
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); // namn och lösenord för en read-only användare i iDrac
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);       // BASIC auth
    curl_setopt($ch, CURLOPT_VERBOSE, $CurlVerbose);          // Se ovan
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);           // headern
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);          // skippa check av SSL-certet
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);          // skippa check av hostnamnet
    $response = curl_exec($ch);
    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);   // ta ut header-storleken
    $body = substr($response, $header_size);
    // var_dump($body);                                       // aktivera för debug
    //$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);      // enable om du vill se returstatusen
    curl_close($ch);
    $json = json_decode($body,true);
    // $json["Status"]["Health"] = "Degraded";                // enable om du vill testa att Pushover funkar
    if($json["Status"]["Health"] != "OK") {
       send_pushover($json["Name"], $json["Status"]["Health"]);
    }
}
?>
				