Archivo de la categoría: Programación

SMD Main View

sysMonDash se actualiza

Hola de nuevo!

En esta ocasión hablaré sobre una importante actualización de Systems Monitor Dashboard (sysMonDash o SMD), la cual incluye nuevas funcionalidades y mejoras en el código y en rendimiento.

Para empezar, indicar que se ha convertido en una aplicación multi-backend, esto quiere decir que es posible mostrar los eventos desde varios sistemas de monitorización. Actualmente tiene operativos Nagios, Icinga y Zabbix,.

Es posible añadir más backends (mediante algo de código) gracias a la abstracción de los datos en la capa de visualización.

Con Nagios e Icinga tenemos dos posibilidades: mediante el plugin mk_livestatus y mediante el parseo del archivo «status.dat» (que es generado automáticamente por Nagios/Icinga. La primera opción es la recomendada, ya que permite obtener más datos (alias de hosts, paradas programadas, etc) y el tiempo de respuesta es mucho mejor.

Para la conexión backend de Zabbix se utiliza la API mediante XMLRPC para las versiones 2.2.3 y 2.4.3.

Con respecto al resto de funcionalidades:

  • Configuración Web de todas las opciones.
  • Seguridad de configuración mediante la generación de un hash aleatorio y el almacenamiento del archivo de configuración en una ruta externa al servicio web.
  • Filtrado de hosts a mostrar en vista principal.
  • Filtrado de servicios para NO mostrar en vista principal.
  • Selección de elementos críticos para mostrar siempre.
  • Detección de paradas programadas que se hayan establecido, así como su visualización en la vista principal.
  • Multilenguaje, disponible en Español e Ingles y permitiento una fácil traducción.

Y como siempre…es Open Source (GNU GPL v3), escrito en PHP+JS y no requiere de la instalación de dependencias.

Descarga: https://github.com/nuxsmin/sysMonDash/releases

Wiki (inglés): https://github.com/nuxsmin/sysMonDash/wiki

Demo: http://sysmondash.cygnux.org/

SMD Main View

Vista principal de SMD

SMD Web Config

Configuración de SMD

sysMonDash un panel para eventos de monitorización con Nagios

Logo sysMonDash

Hola de nuevo!

me gustaría dar a conocer una herramienta que he estado desarrollando durante un tiempo, sysMonDash o Systems Monitor Dashboard, un panel para mostrar de forma clara y resumida los eventos más importantes de un sistema de monitorización que utilice Nagios o derivados como Icinga.

Esta aplicación surge de la necesidad de poder mostrar sólo los eventos relevantes en un entorno donde se están monitorizando miles de elementos (hosts y servicios) y que los actuales interfaces de presentación de Nagios o Icinga, no permiten el filtrado conciso de los eventos para mostrarlos en una pantalla de monitorización sin interacción de los técnicos. Es decir, es una aplicación óptima para pantallas de visualización de eventos.

Es una aplicación óptima para pantallas de visualización de eventos

La aplicación sólo requiere del plugin MK Livestatus para la obtención de los eventos de Nagios a través de un socket UNIX.

Para la instalación (muy sencilla) sólo basta tener un servidor web con PHP, el plugin de conexión configurado y modificar el archivo ‘inc/config’ para adaptarlo al entorno.

Las funcionalidades son las siguientes:

  • Filtrado de hosts a mostrar en vista principal
  • Filtrado de servicios para NO mostrar en vista principal
  • Selección de elementos críticos para mostrar siempre
  • Detección de paradas programadas que se hayan establecido, así como su visualización en la vista principal

Podéis ver una demo aquí.

Para la descarga aquí.

Os dejo unas capturas y hasta la próxima! 😉

Captura sysMonDash

Captura sysMonDash downtime

sysPass sigue creciendo

Logo sysPassTras mucho tiempo sin escribir por estos lares debido a la falta de tiempo para realizar un post decente, hoy me animo a hacer una reseña sobre la aplicación que he estado desarrollando durante años, sysPass.

Los amigos de Security By Default han realizado una review de la misma en su versión 1.1 (la nueva versión 1.2 está a punto de lanzarse) donde se indican algunas características claves de la misma así como puntos de mejora se serán aplicados a la nueva versión.

Para mí es un día importante, ya que un blog de seguridad como SbD haga referencia a sysPass es un honor 😉

Os dejo el enlace al artículo

Saludos!

sysPass, el remake de phpPMS

syspass

sysPass toma el relevo a phpPMS, un gestor de claves web en PHP,  multiusuario y con encriptación de alto nivel, para así poder almacenar y exportar la base de datos con total seguridad.

Entre las características, destacan:

  • Interfaz web con HTML 5 y Ajax.
  • Multiusuario con gestión de grupos y perfiles con 16 niveles de acceso.
  • Autentificación de usuarios con MySQL, OpenLDAP y Active Directory.
  • Gestión de archivos para las cuentas.
  • Multilenguaje.
  • Visor en línea de imágenes.
  • Alertas por email.
  • Historial de cambios en cuentas.
  • Seguimiento de acciones y fallos mediante un visor de eventos.
  • Instalación en un solo paso.

Tras 6 meses de intenso desarrollo y pruebas, espero que esta versión se consolide como la base para futuras mejoras, ya que se ha refactorizado y reescrito la mayor parte del código, para así adaptarlo a las nuevas funcionalidades.

Para aquellos que tengan instalado phpPMS, es posible realizar la importación de datos. Para ello, una vez instalado sysPass, acceder a las opciones de configuración y seleccionar la pestaña de «Importar Cuentas» e indicar los datos de acceso a la base de datos donde se encuentran los datos de phpPMS. Esta importación no realiza ningún cambio en los datos de phpPMS.

Para más detales como instalación, demo, código y más…aquí

Convertir a gettext

Buenas, os dejo un sencillo script para modificar el código fuente de archivos PHP al formato de gettext.

Se parte de la base que el código está traducido usando un array para las cadenas a traducir, esto es, usamos:

$LANG["buttons"][0]="Botón";

para definir la matriz de traducciones y ésta se almacena en un archivo independiente.

#!/bin/bash
#
# gtranslate.sh
#
# Script para convertir cadenas que están guardadas en un array en PHP
# como $LANG["button"][0]="Botón";
# al formato de gettext como _('Button') en los archivos .php bajo
# el directorio donde se ejecuta el script.
#
# Script for convert strings that are saved as array in PHP
# like $LANG["button"][0]="Botón";
# to gettext format like _('Button') in .php files under script
# current path.
#
#
# Es necesario adaptar la variable $LANG_FILE al archivos donde se
# encuentran los arrays de traducciones.
# La variable $LANG_FILE_ALT se utiliza para excluir otro archivo de
# traducciones de ser modificado
#
# Por cada archivo a modificar, se crea un archivo de backup .bak
# Si ya existe un archivo .bak del archivo a modificar, no se realiza
# la modificación
#
# You need to fit the $LANG_FILE var to the file where translation array
# are saved.
# The $LANG_FILE_ALT var is used to exclude another translation file from
# being modified.
#
# Every file to modify is backed up into .bak file
# If .bak of file to be modified already exist, modify won't be made.
#
#
# (c) 2013 - nuxsmin - http://cygnux.org
#
# Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported.
#

LANG_FILE="./locales/es_ES.php"
LANG_FILE_ALT="./locales/en_US.php"

find ./ -name "*.php" | while read FILE;do
  test "$FILE" = "$LANG_FILE" && continue
  test "$FILE" = "$LANG_FILE_ALT" && continue

  echo "$FILE ..."

  test -e "$FILE.bak" && continue
  cp $FILE $FILE.bak || continue

  egrep '^\$LANG\[' $LANG_FILE | while read LINE;do
    test -z "$LINE" && continue

    STRIP="$(echo "$LINE" | sed -e 's/;//g' -e 's/\]/\\\]/g' -e 's/\[/\\\[/g' -e 's/\$/\\\$/g' -e 's/\//\\\//g' -e 's/\&/\\\&/g' -e \"s/'/\\\'/g\")"
    ARR_LANG=`echo "$STRIP" | cut -d "=" -f 1`
    ARR_LANG_DESC=`echo "$STRIP" | cut -d "=" -f 2 | sed -e 's/"//g' -e 's/\&/\&/g' -e 's/\//\\\//g' -e "s/'/\\\'/g"`

    sed -i "s/$ARR_LANG/_('$ARR_LANG_DESC')/g" $FILE || exit
    #break
  done
  #break
done

Espero que os sirva… 😉