czwartek, 31 stycznia 2013

Adding Multiple Hosts | Dodawanie wielu hostów - Centreon & CLAPI

Jak dodać szybko wiele hostów do Centrona (nagios)? Wystarczy wykorzystać API do Centreona - CLAPI i delikatnie je obskryptować aby móc dodawać wiele hostów za jednym razem.

Strona projektu CLAPI - http://forge.centreon.com/projects/centreon-clapi
+Centreon


Zakładając, że katalog CLAPI to:
/usr/local/centreon/www/modules/centreon-clapi/core

należy umieścić w nim poniższy skrypt

<?php

// Michał Błaszczak - blaszczakm.blogspot.com
// Adding Multiple Hosts to Centreon
// add.php


$row = 1;
if (($handle = fopen("file.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
        $num = count($data);
        $row++;

        $host = $data[1];
        $alias = $data[0];
        $ip = $data[2];
        $parent = $data[3];

        // Base_station - Host template
        // Central - Poller
        // Base-stations -  Hostgroup

        system("./centreon -u mblaszczak -p michal -o HOST -a ADD -v '$host;$alias;$ip;Base_station;Central;Base-stations;check_period;24x7'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;check_period;24x7'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;check_command;check_centreon_ping'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;check_command_arguments;!10!200,50%!400,90%'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;max_check_attempts;3;'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;check_interval;5'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;retry_check_interval;1'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;notifications_enabled;1'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;notification_interval;240'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;notification_period;24x7'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;notification_options;d,r'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setparam -v '$host;first_notification_delay;10'");
        system("./centreon -u mblaszczak -p michal -o HOST -a setcontact -v '$host;Centrum_Zarządzania_Siecią'");

        system("./centreon -u mblaszczak -p michal -o HOST -a setparent -v '$host;BS_S.CZE01X_radiloliniaB'");
        echo '+ ADD: '.$host."\n" ;

    }
    fclose($handle);
}

?>


Źródła http://pastebin.com/U2r050aM

Należy też stworzyć plik file.csv w formacie:

alias;host;ip;parent_host
alias;host;ip;parent_host
alias;host;ip;parent_host


gdzie:
alias - alias dodawanego hosta
host - nazwa hosta
ip - adres ip dodawanego hosta
parent_host - rodzic dla  hosta

Po odpaleniu skryptu add.php czekamy chwilkę, aż skrypt wypisze wszystkie dodawane hosty.