{"id":2845,"date":"2018-08-23T12:43:44","date_gmt":"2018-08-23T16:43:44","guid":{"rendered":"http:\/\/arielantigua.com\/weblog\/?p=2845"},"modified":"2018-08-23T12:43:44","modified_gmt":"2018-08-23T16:43:44","slug":"librenms-como-crear-una-aplicacion-para-monitorear-componentes-no-soportados","status":"publish","type":"post","link":"https:\/\/arielantigua.com\/weblog\/2018\/08\/librenms-como-crear-una-aplicacion-para-monitorear-componentes-no-soportados\/","title":{"rendered":"LibreNMS \u2013 Como crear una aplicaci\u00f3n para monitorear componentes no soportados."},"content":{"rendered":"<p>LibreNMS \u2013 Como crear una aplicaci\u00f3n para monitorear componentes no soportados.<\/p>\n<p>LibreNMS soporta muchos equipos y dentro de esos equipos existen componentes que tambi\u00e9n tienen soporte en la plataforma, pero que pasa cuando uno de estos componentes no existe o simplemente el grafico que necesitamos no ha sido creado.<\/p>\n<p>En mi caso todo comenz\u00f3 cuando agregue un ATS APC el cual tiene soporte SNMP, pero no reporta el consumo en Watts, en realidad tampoco lo reporta en el portal de administraci\u00f3n del mismo. Pero si reporta los Amperes consumidos por la regleta en cualquiera de sus l\u00edneas de consumo.<\/p>\n<p>Mi primer intento fue usando Collectd, cree un script en <strong>Bash<\/strong> que buscaba el OID con el valor de amperes consumidos en el \u00e1rbol de SNMP y lo calculaba para obtener su equivalente en Watts. Inicialmente todo estaba de maravillas, pero luego el grafico se corrompi\u00f3 y dejo de reportar.<\/p>\n<p>\u00daltimamente eso me ha pasado con varios gr\u00e1ficos que obten\u00edan su informaci\u00f3n de Collectd, en fin, decid\u00ed cambiar de Collectd a otra forma y al parecer la manera oficial en LibreNMS es \u201cdesarrollar\u201d una aplicaci\u00f3n.<\/p>\n<p>Dentro de LibreNMS existen varias ubicaciones (paths) donde deben existir los componentes de la aplicaci\u00f3n, por ejemplo, si se hace un <strong>find<\/strong> al nombre de una aplicaci\u00f3n existente, se pueden ver cu\u00e1les son esas ubicaciones.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"934\" height=\"274\" class=\"wp-image-2846\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image.png 934w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-300x88.png 300w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-768x225.png 768w\" sizes=\"auto, (max-width: 934px) 100vw, 934px\" \/><\/p>\n<p>En la imagen, realizo una b\u00fasqueda del App llamado pi-hole, el autor de esta app describi\u00f3 lo f\u00e1cil que es crear una aplicaci\u00f3n con simplemente copiar pi-hole como base, eso fue lo que hice para resolver el monitoreo de consumo de mi ATS APC.<\/p>\n<p><strong>Nota<\/strong>: en la imagen se puede ver un archivo .rrd, en este caso es el resultado de los valores tomados del host <strong>resolver.aanetworks.org<\/strong> que cuenta con pi-Hole y tiene el App habilitado.<\/p>\n<p><strong>ATS-Watts:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"214\" class=\"wp-image-2847\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-1.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-1.png 540w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-1-300x119.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/p>\n<p>Este es el nombre que le he asignado a la nueva \u201capp\u201d que result\u00f3 de copiar los archivos usados en la aplicaci\u00f3n de pi-hole.<\/p>\n<p>Luego de remover los valores que no necesitaba, en pi-hole se generan alrededor de 12 gr\u00e1ficos. En el caso de ATS-Watts, solo estar\u00e9 generando uno que es el resultado de un script.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"227\" class=\"wp-image-2848\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-2.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-2.png 784w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-2-300x87.png 300w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-2-768x222.png 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/p>\n<p>La funcionalidad de este script es colectar la informaci\u00f3n en SNMP del ATS, este ATS no cuenta con un OID donde muestre el valor en Watts, cuenta con dos valores OID donde la uni\u00f3n con un (.) de estos es el total de Amperes consumidos, luego los multiplica por 110 para tener los Watts.<\/p>\n<p><strong>ats-watts.inc.php:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"731\" height=\"408\" class=\"wp-image-2849\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-3.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-3.png 731w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-3-300x167.png 300w\" sizes=\"auto, (max-width: 731px) 100vw, 731px\" \/><\/p>\n<p>Este es el primero componente de la aplicaci\u00f3n, se puede ver como tomo el OID generado por el script y se asigna a las variables para ser graficadas por rrd.<\/p>\n<p>Para seguir entendiendo como funciona ATS-Watts, se puede ver el resto del c\u00f3digo en el repositorio Git que me he montado para jugar un poco y tener mejor control de algunos proyectos que tengo en mente, <strong>hello Kubernetes yaml!<\/strong>.<\/p>\n<p><a href=\"https:\/\/git.aanetworks.org\/ariel\/ATS-Watts\">https:\/\/git.aanetworks.org\/ariel\/ATS-Watts<\/a><\/p>\n<p><strong>Habilitando la aplicaci\u00f3n a un host de LibreNMS:<\/strong><\/p>\n<p>Una vez terminado de editar los archivos correspondientes, debemos tener la habilita de encender la nueva aplicaci\u00f3n en el host que designemos o donde se haya habilitado el script, en mi caso el script de ats-watts.sh se habilito en el mismo servidor de LibreNMS.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1555\" height=\"373\" class=\"wp-image-2850\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-4.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-4.png 1555w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-4-300x72.png 300w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-4-768x184.png 768w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-4-1024x246.png 1024w\" sizes=\"auto, (max-width: 1555px) 100vw, 1555px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"551\" class=\"wp-image-2851\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-5.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-5.png 978w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-5-300x169.png 300w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2018\/08\/word-image-5-768x433.png 768w\" sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LibreNMS \u2013 Como crear una aplicaci\u00f3n para monitorear componentes no soportados. LibreNMS soporta muchos equipos y dentro de esos equipos existen componentes que tambi\u00e9n tienen soporte en la plataforma, pero que pasa cuando uno de estos componentes no existe o simplemente el grafico que necesitamos no ha sido creado. En mi caso todo comenz\u00f3 cuando [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,10,34],"tags":[136],"class_list":["post-2845","post","type-post","status-publish","format-standard","hentry","category-debian","category-linux","category-networking","tag-librenms"],"_links":{"self":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/posts\/2845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/comments?post=2845"}],"version-history":[{"count":0,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/posts\/2845\/revisions"}],"wp:attachment":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/media?parent=2845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/categories?post=2845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/tags?post=2845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}