Zabbix 1.8 API - CHost::create

Después de ver ya la función de obtención de datos, es lógico que veamos cómo crear los datos, así que vamos con CHost::create. Como su propio nombre nos hace presagiar, es la función de crear nuevo hosts. Ésta recibe un mayor número de parámetros de entrada, no sólo el nombre del host como la get. Toda la información que nos devolvió la anterior se le puede pasar a create para que la devuelva. Lo único que tenemos que tener en cuenta a la hora de pasarle la información es cómo hay que estructurarla. Es el único truco que tiene esta función. Así que vamos a verlo,
  • Información habitual, que es un array con todos los datos
    hostid, proxy_hostid, host, dns, useip, ip, port, status, disable_until, error, available, errors_from, lastaccess, inbytes, outbytes, useipmi, ipmi_port, ipmi_authtype, ipmi_privilege, ipmi_username, ipmi_password, ipmi_disable_until, ipmi_available, snmp_disable_until, snmp_available, maintenanceid, maintenance_status, maintenance_type, maintenance_from, ipmi_ip, ipmi_errors_from, snmp_errors_from, ipmi_error, snmp_error
  • Templates, es un array con el id de las plantillas a linkar
    templateid
  • Grupos, lo mismo que templates, pero con el id correspondiente al grupo
    groupid
  • profile, un array con los datos que interese
    hostid, devicetype, name, os, serialno, tag, macaddress, hardware, software, contact, location, notes
  • profile_ext, otro array
    hostid, device_alias, device_type, device_chassis, device_os, device_os_short, device_hw_arch, device_serial, device_model, device_tag, device_vendor, device_contract, device_who, device_status, device_app_01, device_app_02, device_app_03, device_app_04, device_app_05, device_url_1, device_url_2, device_url_3, device_networks, device_notes, device_hardware, device_software, ip_subnet_mask, ip_router, ip_macaddress, oob_ip, oob_subnet_mask, oob_router, date_hw_buy, date_hw_install, date_hw_expiry, date_hw_decomm, site_street_1, site_street_2, site_street_3, site_city, site_state, site_country, site_zip, site_rack, site_notes, poc_1_name, poc_1_email, poc_1_phone_1, poc_1_phone_2, poc_1_cell, poc_1_screen, poc_1_notes, poc_2_name, poc_2_email, poc_2_phone_1, poc_2_phone_2, poc_2_cell, poc_2_screen, poc_2_notes
  • maintenances, el último array
    maintenanceid
Una vez que sabemos qué información es la necesaria a pasar, podemos hacer un ejemplo sencillo.
$t = array(array("templateid" => 15),array("templateid" => 2));
$g = array(array("groupid" => 12),array("groupid" => 22));

$h = array(
   'host' => 'Equipo de prueba',
   'useip' => 0,
   'port' => 10050,
   'dns' => 'host.domain.com',
   'ip' => '0.0.0.0',
   'groups' => $g,
   'templates' => $t
);

$r = CHost::create($h);
if($r) {
   echo "Host insertado";
} else {
   echo "Host NO insertado";
}
Como se puede observar el código es sencillo y únicamente hay que declarar aquellos valores que nos interese tener para el equipo. Como dato destacado sobresaltar el valor de la variable useip, que si vale cero indica que el host se monitorizará por dns y si vale 1 que será por IP. Luego también ver que los grupos y las templates se pasan por su id y que la función CHost::create cuando inserta el equipo comprueba internamente dichos valores. Si uno de los dos no existe, el equipo no se podrá crear.
En caso de que nos interese, por ejemplo meter algún valor en el campo profile, simplemente abría que añadir un nuevo.
...
$p = array("devicetype" => 05, "tag" => 'ibm');
$h = array(
   'host' => $d["name"],
   'useip' => 0,
   'port' => 10050,
   'dns' => $d["dns"],
   'ip' => '0.0.0.0',
   'groups' => $g,
   'templates' => $t,
   'profile' => $p
);
$r = CHost::create($);
...


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios