===== Instalar SNMP Builder en zabbix 2.3 =====
Por Samuel Ruíz
{{tag> web servicio zabbix SNMP builder}}
Para instalar **SNMP Builder** en zabbix 2.3 hay que instalar primero **SNMP Builder 2.0** y luego actualizar los ficheros para zabbix 2.3.
**Paso 1:** instalar snmp.
yum install net-snmp-utils
Hay un comando con el cual podemos localizar ficheros es el comando **locate**. Para instalarlo debemos instalar el paquete **mlocate**
yum search locate (busca paquetes que contengan locate)
yum install mlocate
updatedb (para actualizar la localización del fichero antes de buscar)
locate (nombre del archivo a buscar)
**Paso 2:** copiar y pegar este script tal cual en la terminal (tener en cuenta que si se actualiza el programa puede que algunas rutas tengan que ser modificadas. Ej: paso 6).
#1. download tar.gz file from github to your favorite directory
# also name tar file $dist_name
# you may download by browser pointing to http://github.com/atimonin/snmpbuilder/tarball/master, or
wget --content-disposition http://github.com/atimonin/snmpbuilder/tarball/master
#2. Define some variables:
# Zabbix frontend document-root
# (for ubuntu it is /var/www/zabbix):
zabbix_frontend=/usr/share/zabbix
# Your favorite directory for downloads (your current dir for ex.)
your_src=$PWD
# Downloaded tar filename (also directory later)
distname=`basename atimonin-snmpbuilder-* .tar.gz`
#
#
#3. untar needed files
tar xvzf $distname.tar.gz
#5. install images for snmpbuilder in zabbix frontend root directory
cd $zabbix_frontend
tar xvzf $your_src/$distname/snmpbuilder-2.0_imgs.tar.gz
#6. patch zabbix frontend
patch -p1 < $your_src/atimonin-snmpbuilder-8b843e2/snmpbuilder-2.0.patch
#7. copy snmpbuilder files to frontend dir
cp -rf $your_src/$distname/zabbix/* $zabbix_frontend
#9. All done, you are again you, exit from sudo
**Paso 3:** modificar ficheros.
Con esto hemos instalado el **SNMP Builder** para la versión de zabbix 2.0, por lo que, tenemos que modificar algunos ficheros para hacerlo compatible con zabbix 2.2.
== Actualizar ficheros ==
[[ http://pastebin.com/iXYsZBVY | Ficheros a modificar ]]
**--- page_header.php 2013-12-09 02:15:15.000000000 -0700 \\
+++ /var/www/html/include/page_header.php 2014-01-21 11:07:30.329000236 -0700 \\
@@ -167,6 +167,7 @@**
}
$css = CHtml::encode($css);
$pageHeader->addCssFile('styles/themes/'.$css.'/main.css');
+ $pageHeader->addCssFile('js/jquery/themes/mib/style.css');
if ($page['file'] == 'sysmap.php') {
$pageHeader->addCssFile('imgstore.php?css=1&output=css');
**--- menu.inc.php 2013-12-09 02:15:15.000000000 -0700 \\
+++ /var/www/html/include/menu.inc.php 2014-01-21 10:34:42.157000373 -0700 \\
@@ -212,6 +212,10 @@**
'url' => 'services.php',
'label' => _('IT services')
),
+ array(
+ 'url' => 'snmp_builder.php',
+ 'label' => _('SNMP Builder')
+ ),
)
),
'admin' => array(
**--- jsLoader.php 2013-12-09 02:15:17.000000000 -0700 \\
+++ /var/www/html/jsLoader.php 2014-01-21 11:09:29.062000234 -0700 \\
@@ -49,6 +49,8 @@**
// available scripts 'scriptFileName' => 'path relative to js/'
$availableJScripts = array(
+ 'snmp_builder.js' => 'snmp_builder/',
+ 'DynTable.js' => 'snmp_builder/',
'common.js' => '',
'menu.js' => '',
'menupopup.js' => '',
**@@ -63,6 +65,8 @@**
'prototype.js' => '',
'jquery.js' => 'jquery/',
'jquery-ui.js' => 'jquery/',
+ 'jquery.cookie.js' => 'jquery/',
+ 'jquery.jstree.js' => 'jquery/',
'activity-indicator.js' => 'vendors/',
// classes
'class.bbcode.js' => '',
**--- snmp_builder.php 2013-08-01 10:30:18.000000000 -0600 \\
+++ /var/www/html/snmp_builder.php 2014-01-21 11:27:20.505999936 -0700 \\
@@ -29,6 +29,9 @@**
require_once dirname(__FILE__).'/include/items.inc.php';
require_once dirname(__FILE__).'/include/graphs.inc.php';
+error_reporting(E_ALL);
+ini_set('display_errors', '1');
+
$page['title'] = _('SNMP Builder');
$page['file'] = 'snmp_builder.php';
$page['scripts'] = array('DynTable.js', 'snmp_builder.js', 'jquery.js', 'jquery.cookie.js', 'jquery.jstree.js');
**@@ -65,7 +68,7 @@**
'oids' => array(T_ZBX_STR, O_OPT, NULL, NULL, NULL),
'idx' => array(T_ZBX_STR, O_OPT, NULL, NULL, NULL),
'mib' => array(T_ZBX_STR, O_OPT, NULL, NULL, NULL),
- 'templateid' => array(T_ZBX_INT, O_OPT, NULL, NULL, NULL),
+ 'templateid' => array(T_ZBX_STR, O_OPT, NULL, NULL, NULL),
'server_ip' => array(T_ZBX_STR, O_OPT, NULL, NULL, NULL),
'server_port' => array(T_ZBX_STR, O_OPT, NULL, BETWEEN(1,65535), NULL),
'community' => array(T_ZBX_STR, O_OPT, NULL, NULL, NULL),
**@@ -951,14 +954,14 @@**
'sortfield' => 'name',
'sortorder' => ZBX_SORT_UP,
'output' => API_OUTPUT_EXTEND,
- 'selectTemplates' => array('hostid', 'name'),
+ 'selectTemplates' => array('templateid', 'name'),
'nopermissions' => 1
);
$template = array();
$template_list = API::Template()->get($options);
foreach ($template_list as $tnum => $temp)
{
- array_push($template, array('key' => $temp['hostid'], 'host' => $temp['name']));
+ array_push($template, array('key' => $temp['templateid'], 'host' => $temp['name']));
}
return $template;
Las cabaceras que indican el fichero a modificar estan resaltados en verde oscuro (entre @@ estan más o menos las líneas en las que hay que modificar), las partes que hay que eliminar estan resantadas en rojo (y un signo menos al inicio de la línea) y las partes que hay que añadir esta en verde claro (y un signo de suma al inicio de la línea).
Luego iniciamos el servicio snmp
service httpd restart
**Import Mib**
Si hay algun problema a la hora de importar un mib debemos modificar el siguiente fichero.
cd /usr/share/zabbix/include/views/administration.snmp_builder.php
$mibForm->addItem(makeFormFooter(array(new CSubmit('import', _('Import'))), new CButtonCancel()));
Cambiar por:
$mibForm->addItem(makeFormFooter(new CSubmit('import', _('Import')),new CButtonCancel()));
Los mibs que importemos deben ser .txt para que puedan ser leidos por **SNMP Builder**
===== Tutorial SNMP Browser ====
Para acceder a **SNMP Builder** seleccionamos la pestaña **"configuración >> SNMP Builder "**.
{{ :seguridad:monitorizacion:zabbix2:snmpbuilder1.png?nolink&600 |}}
En esta imagen podemos ver:
- **Template:** elegir la plantilla a la que queremos añadir el ítem.
- **MIB:** seleccionar el Mib correspondiente al elemento que queremos monitorear.
- **Host:** dirección IP del dispositivo.
- **SNMP Versión:** elegir la versión del SNMP.
- **Community:** introducir la comunidad a la que pertenece el dispositivo.
- **Import:** se usará solo cuando queramos importar un nuevo Mib.
Una vez seleccionados estos campos aparecerá a la izquierda el árbol del MIB que se haya seleccionado.
{{ :seguridad:monitorizacion:zabbix2:snmpbuiler2.png?nolink&400 |}}
**Paso 1:** Abrimos las carpetas del árbol y buscamos el que nos interese. \\
**Paso 2:** si seleccionamos una hoja del árbol que no tenga un "+" o un "-" a su izquierda, se mostrará a la derecha en OID el nombre y el valor del mismo. (( Si no se encuentra un valor puede que haya un error ó que no exista ese ítem para el dispositivo seleccionado )) \\
**Paso 3:** selecinamos el nombre del OID para añadirlo a las lista de ítems que vamos a añadir a la plantilla. \\
**Paso 4:** podemos seleccionar algunas opciones que hacen referencia al ítem y luego crear un gráfico. \\
**Paso 5:** por ultimo seleccionamos el botón "save" para aplicar los cambios en nuestra plantilla. \\
===== Ventajas =====
Como ventaja tenemos la facilidad de añadir ítems a una plantilla.
===== Inconvenientes =====
No todos los ítems que debería funcionar lo hacen. Además debemos buscarlos uno por uno, ya que no hay ninguna forma de buscar los que funcionen.