Övervaka DELL-servrar via Pushover

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 3743
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Övervaka DELL-servrar via Pushover

Inlägg av Mickecarlsson »

Jag satte upp detta till min DELL-server för att få larm om diskarna eller kontrollern får problem.
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"]);
    }
}

?>
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Övervaka DELL-servrar via Pushover

Inlägg av agehall »

Jag kör SNMP-övervakning av mina servrar och andra prylar i HomeAssistant. Ganska smidigt och löser även notifieringar utan kostnad om man har HA-appen på sin telefon.
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 3743
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Re: Övervaka DELL-servrar via Pushover

Inlägg av Mickecarlsson »

Kräver detta att du öppnar från Internet till din HA?
Om du inte är hemma, kommer larmen ändå? Eller skickar du mail via HA?
agehall
Inlägg: 418
Blev medlem: 12 augusti 2020, 19:27:54

Re: Övervaka DELL-servrar via Pushover

Inlägg av agehall »

Ja, jag har öppnat för access till min HA i min brandvägg. Finns även en lösning som kostar några $/månad så man tydligen slipper det, men för min del är det inga större problem att ha en port öppen.
Skriv svar