===== 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.