Backup de un sitio OMD (check_mk RAW Edition CRE)

Hacer un backup de un sitio omd, es muy fácil, sólo hay que ejecutar:

omd backup "ruta/archivo"

Ésto crea un fichero llamado "archivo" en la ruta "ruta" en el que va a contener todo el sitio para poder restaurarlo en cualquier servidor con OMD o CRE, vamos más fácil imposible

Lo malo es que antes de hacer el backup hay que parar el sitio (con 'omd stop'), por lo que tendremos que tener el sitio parado un tiempo, lo que tarde en hacer el backup, que en casos de instalaciones grandes, puede ser bastante tiempo, a mi con unos 3000 servicios monitorizados, me tarda unos 5-7 minutos.

Hacer un backup del sitio omd con una tarea programada

Yo lo que he hecho es crear un script que automatice la parada del sitio, la creación del fichero de backup y que vuelva a arrancar el sitio, así como que suba el fichero por ftp a un servidor de backup para su archivado, éste script será ejecutado por una tarea programada de manera que haga el backup por la noche, que así no interrumpo demasiado.

Como en omd está bastante bien pensado todo, tenemos un directorio donde podamos crear un script que se pueda ejecutar por el usuario del sitio, ésto es, en /omd/sites/nombre_de_mi_sitio/local/bin/ todo lo que pongamos ahí, se podrá ejecutar sin problemas.

El script, que tiene el nombre tan original de 'backup_omd.sh" tiene el siguiente código:

#Script para hacer backup de un sitio omd, hace uno por día de la semana y lo sube a rbackup01
#Sólo guarda los de una semana, borrando los subsiguientes
echo ""
echo "---------------------------------------------------------------------------"
echo "Backup del dia "
date

dia_text=$(date +%A) # dia de la semana en texto
echo ""
echo "Paro el sitio" $OMD_SITE
omd stop
echo ""
echo "Creamos el backup"
omd backup $OMD_ROOT"/backup/"$OMD_SITE"_backup"
echo ""
echo "Arranco el sitio" $OMD_SITE
omd start
echo ""
echo "Subo el fichero "$OMD_SITE"_backup al servidor de backup"
echo "con el nombre "$OMD_SITE"_backup_"$dia_text
ftp -vni backupserver <<EOF
user mi_usuario mi_password
prompt off
bin
cd nagios
cd $OMD_SITE
lcd $OMD_ROOT"/backup/
put $OMD_SITE"_backup" $OMD_SITE"_backup_"$dia_text
close
bye

Una vez hecho el script, lo podemos ejecutar para ver si funciona, y una vez funcionando, debemos hacer una tarea programada para que ejecute el script a la hora que queramos.

OMD está tan bien pensado que cada sitio tiene sus propias tareas programadas, que están en "/omd/sites/mi_sitio/etc/cron.d/", así que creamos otro fichero para cron que en mi caso le he puesto el original nombre de "backup", el cuál queda de la siguiente manera:

# Once a day, at 02:00, hace backup de todo el sitio
00 02 * * * backup_omd.sh >> $OMD_ROOT/var/log/backup/backup_$OMD_SITE.log

Como vemos, escribe la salida estándar en el fichero /omd/sites/misitio/var/log/backup/backup_misitio.log, por lo que tendremos que crear el directorio backup dentro de /omd/sites/misitio/var/log antes de que se ejecute la tarea programada.

En el caso del ejemplo, se ejecuta la tarea todos los días a las 2 de la madrugada, insisto, cuidado que hay parada del sitio, y si es grande es un rato, así que avisad a los operadores que se va a parar el sitio todos los días a esa hora. Quería poner un mensaje que informase de que se está haciendo el backup, pero aún no he tenido tiempo de mirarlo, si tengo tiempo y lo hago, ya lo pondré en éste artículo.

Una vez hecho ésto ya está todo preparado, lo único que tenemos que hacer es reiniciar el sitio:

omd restart

con el usuario "misitio" y ya se programará la tarea para ejecutarse

Por último, saber que con el usuario root de un servidor omd, podemos hacer una restauración del sitio con el mismo nombre "misitio" o con cualquier otro de la forma:

omd restore nombredelsitio archivo_de_backup

De ésta manera se creará un sitio con el nombre "nombredelsitio" exáctamente igual y en el mismo estado que cuando hicimos el backup, no me digáis que no es cómodo….

Publicado en nagios, omd, Sin categoría | 65 comentarios

Instalación de OMD (Open Monitoring Distribution) en ubuntu

Ir al Artículo anterior: OMD – The Open Monitoring Distribution. Una visión general

Como ya dije en el artículo anterior de introducción, OMD es un sistema de monitorización basado en nagios, con varios addons y aplicaciones que lo completan. La ventaja de OMD es que se pueden instalar todas las versiones que queramos de OMD en el mismo servidor, después crearemos lo que OMD denomina sites, y a cada uno de ellos podremos asignarle una versión diferente de OMD, o cambiársela cuando queremos ¡sencillamente genial!.

Para explicarlo un poco mejor, yo por ejemplo, tengo un servidor de preproducción que lo uso también como pruebas, esto es, creo un site que denomino "prep" que usa la misma versión de OMD que tengo en producción, que es una versión estable para usarlo de preproducción, y después tengo otro site que denomino "pruebas" al cual le asigno la versión de OMD en desarrollo, para hacer pruebas de las últimas funcionalidades, si sale una nueva release, la instalo en el servidor, y cambio al site de versión de OMD con un comando y ¡listo!, ya tengo la última versión de evaluación en mi site, y todo sin cambiar nada en la configuración, sólo con un comando.

Pero bueno, me estoy adelantando, así que os paso a explicar la instalación de OMD en ubuntu, es muy fácil, y en otra distribución es muy parecido, pero yo sólo lo he instalado en ubuntu.

Instalación OMD en ubuntu 14.04

Para instalar, primero descargamos la versión de omd para nuestro sistema operativo, en http://omdistro.org/ o como yo he hecho desde la página de descargas de check_mk, podemos descargar la versión de omd de Mathias Kettner, Check_MK Raw Edition (CRE): https://mathias-kettner.de/check_mk_download.php?HTML=yes Ésta última está más actualizada, por lo que la recomiendo. Debemos descargar la versión para nuestra distribución de linux concreta, en mi caso es ubuntu 14.04(trusty).

Las instrucciones "oficiales" de cómo instalarlo:

http://omdistro.org/doc/quickstart_debian_ubuntu

Para instalarlo en primer lugar instalamos gdebi, que nos permite instalar un paquete .deb descargando todos los paquetes necesarios que falten, sin tener que preocuparnos de instalarlos aparte:

$ sudo apt-get install gdebi

Una vez instalado copiamos el paquete descargado en la máquina donde vamos a instalar omd:

En nuestro caso instalamos la versión omd de check_mk que es la edición raw de check_mk, para ubuntu 14.04 que se denomina trusty

Una vez hecho ésto, ejecutamos para instalar:

$ sudo gdebi /home/administrador/check-mk-raw-1.2.6p12_0.trusty_amd64.deb

Ahora habilitamos el módulo de apache proxy_http y reiniciamos apache para que pueda funcionar omd:

sudo a2enmod proxy_http
sudo /etc/init.d/apache2 restart

Y ya está instalado, así de fácil y cómodo. He visto que se puede instalar también con el gestor de paquetes apt-get, pero yo recomiendo instalarlo con el paquete descargado, ya los paquetes de apt-get van con mucho retraso, y el buenos de mathias actualiza sus versiones muy a menudo.

En el próximo artículo explicaré como crear sites y un vistazo general a la gestión de OMD.

Publicado en nagios | Deja un comentario

Instalación del agente de ocs inventory en VMWare vCenter Appliance 5.5

Ésta virtual appliance tiene como base la distro de linux suse enterprise 11, por lo que podemos instalar el agente de ocs con zypper, que es el gestor de paquetes que usa suse y está instalado en la virtual appliance del vcenter.

Lo primero que tenemos que hacer es configurar el proxy (si no está hecho ya), puesto que sino no podremos salir a internet a buscar los repositorios y descargar los paquetes. Para ello editamos el fichero /etc/sysconfig/proxy con nuestro editor favorito, y tiene que tener la variable:

PROXY_ENABLED="yes"

y las direcciones del proxy:

HTTP_PROXY="http://miusuario:mipassword@proxyayto.munimadrid.es:8080"
HTTPS_PROXY="http://miusuario:mipassword@proxyayto.munimadrid.es:8080"

Una vez configurado, ya podremos salir a internet

Añadimos el repositorio de openSUSE, para ello ejecutamos como root:

zypper addrepo -f http://download.opensuse.org/distribution/11.2/repo/oss/ opensuse

Necesitamos éste repositorio para paquetes de los que ocsinventory hace uso, pero el paquete del agente ocs está en otro repositorio que también debemos añadir.

El repositorio donde está el paquete de ocsinventory-agent para zypper se puede ver aquí.

Primero añadimos el repositorio, entramos por ssh con el usuario root en la máquina, y ejecutamos:

zypper addrepo http://download.opensuse.org/repositories/home:stefanocanepa/SLE_11_SP2/home:stefanocanepa.repo

Actualizamos el repositorio:

zypper refresh

Por último instalamos el paquete con

zypper install ocsinventory-agent

Es posible que nos salga el siguiente mensaje:

Problem: nothing provides perl(Net::IP) needed by ocsinventory-agent-2.0.5-38.1.noarch
 Solution 1: do not install ocsinventory-agent-2.0.5-38.1.noarch
 Solution 2: break ocsinventory-agent-2.0.5-38.1.noarch by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c):

Escribimos 2 y damos intro, ésto es, ignoramos la dependencia del paquete que falta, y ya tememos instalado el agente de ocs.


Ya lo último que queda es configurar el agente ocs para que se comunique con nuestro servidor ocs, para ésto, editamos el fichero /etc/ocsinventory/ocsinventory-agent.cfg y comentamos todo menos una línea que haga referencia a nuestro servidor de ocs, por ejemplo:

server=miservidorocs.dduenasd.com.es

Ésta línea es la única que debe tener el fichero, se puede poner el nombre del servidor ocs o bien la ip.

Una vez hecho ésto y para probarlo, ejecutamos en línea de comandos:

ocsinventory-agent

Si todo va bien, comunicará con nuestro servidor de ocs y éste añade el servidor vcenter al inventario de equipos de ocs.

Publicado en ocs, vmware | Deja un comentario

OMD – The Open Monitoring Distribution. Una visión general

Llevo varios años usando, configurando e instalando nagios, y aunque uso muchos addons, livestatus como backend, multisite como GUI, pnp4nagios para gráficos, nagiosql como herramienta de configuración web, nagvis…., y una multitud de plugins (algunos creados por mi :-). Así que actualmente es lo que tengo con todo monitorizado de ésta manera.

Está muy bien, y además lo tengo optimizado a mis necesidades, por eso no he querido nunca usar otra cosa que no sea "mi servidor nagios". 

Pero todo ésto ha cambiado cuando he descubierto OMD, desde que lo instalé en un servidor de pruebas, estoy totalmente convencido que es una maravilla, es increíble lo que ha hecho ésta gente, en un solo paquete tenemos todo lo que necesitamos para un entorno totalmente completo de monitorización, y con sólo unos pocos comandos podemos gestionar nagios y todos los addons y complementos que os comentaba antes de una manera fácil y rápida. Podemos crear un entorno de monitorización completo y tocando muy poquito la configuración, se puede, por ejemplo, cambiar de versión de omd un entorno de monitorización (lo que OMD llama "site") ejecutando un comando, siendo a la vez muy configurable todo.

La única y gran pega que estoy teniendo es que la herramienta de configuración nagiosql que usaba (nagiosql), ya no me sirve, pero ahora uso WATO que aunque me ha costado un poco cogerle el tranquillo, y lo peor, me ha obligado a migrar toda la configuración que ya tenía, merece la pena el cambio, de check_mk ya conocía el livestatus (backend) y multisite (frontend), que ambos son una maravilla, también había usado el agente de check_mk, pero wato, aunque lo había echado un vistazo, no lo había visto en detalle, y la verdad, es una auténtica maravilla, eso si, una vez que pienso como check_mk ya que es un enfoque totalmente diferente de nagiosql y de los archivos de configuración de nagios.

Con todo y con ésto, si no quieres usar wato como herramienta de administración, puedes usar omd y seguir usando otra herramienta tradicional para la configuración, o peor aunque mucho mas geek, editar los archivos de configuración de nagios "a mano" como hice yo al principio, que aunque se aprende mucho, es una auténtica locura.

Por lo tanto aconsejo la instalación de omd y aconsejo la migración a check_mk, que con omd se integra a la perfección.

En el próximo artículo escribiré sobre la instalación de omd.

 

 

Publicado en nagios | 9 comentarios

MySQL. Configurar MySQL para utilizar MySql GUI

Al instalar una base de datos mysql, nos crea un usuario root que tiene todos los privilegios sobre la base de datos, pero que sólo se puede acceder desde el servidor local.

Si queremos usar la Mysql GUI desde nuestro equipo para manejar bases de datos MySql, tendremos que hacer lo siguiente:

En el servidor MySql editar el fichero /etc/mysql/my.cnf y en la línea con la entrada bind-address sustituimos el valor 127.0.0.1 por 0.0.0.0 (¡¡¡CUIDADO!!! poniendo 0.0.0.0 puede acceder cualquier ip a nuestro servidor mysql, si no queremos que sea así, habrá que poner las ips concretas)

A continuación abrimos el programa mysql para conectar al servidor como el usuario root :

shell> mysql –user=root mysql [–password=contraseña]

Si se ha asignado una contraseña a la cuenta root, debemos añadir la opción –password o -p

Añadimos nuevos usuarios con el el siguiente comando:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

o

 

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'

-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

En el primer caso se crea un usuario llamado monty con todos los permisos, pero que sólo se puede conectar desde el servidor local donde está instalada la base de datos.

En el segundo caso lo que se crea es un usuario llamado monty con todos los permisos que puede conectarse desde cualquier host, esto es así gracias al modificador '%', que es el tipo de usuario que tendremos que crear para poder conectar con MysqlGUI.

Efectuaremos la instalacion de MySQL GUI en el equipo desde el cual vayamos a administrar nuestras bases de datos, y a partir de entonces podemos acceder a las bases de datos con el usuario creado anteriormente.

 

 

Publicado en mysql | 11 comentarios

check_ups_snmp2. Plugin de nagios para monitorización de ups a través de snmp

Debido a la necesidad de monitorizar varias ups, busqué un plugin que me sirviese para dicho propósito, pero no encontré ninguno que me gustase, por lo que decidí crear uno a mi medida.

Éste plugin es capaz, a través del protocolo SNMP, monitorizar una ups que ofrezca un interfaz de red para que nuestro servidor nagios pueda preguntar a nuestra ups.

Yo, concretamente lo he probado con un adaptador de red para UPS que es el "CS121adapter", que por lo visto se puede acoplar a varios modelos y marcas de ups, pero imagino que valdrá para cualquier adaptador de red para ups.

Además he creado una plantilla para los gráficos de pnp4nagios.

El código del plugin, así como la plantilla para pnp4nagios está publicado en github y se puede descargar aquí:

https://github.com/dduenasd/check_ups_snmp

Requisitos:

El plugin usa el comando getsnmp el cuál es parte del paquete net-snmp.

Para instalar net-snmp, lo mejor es hacerlo desde los repositorios, en ubuntu se puede instalar ejecutando:
sudo apt-get install snmpd

Instalación:

Para instalar el plugin no hay mas que copiar el script dentro del directorio de plugins de nagios, habitualmente es la ruta:

/usr/local/nagios/libexec/

En los archivos de configuración de nagios creamos un comando (normalmente en /usr/local/nagios/etc/command.cfg):

define command {
        command_name check_ups_snmp
        command_line $ USER1 $ / $ HOSTADDRESS check_ups_snmp.sh -H $ ARG1 $ -p -C $ ARG2 $ - w $ ARG3 $ - c $ ARG4 $
        register 1
}
Una vez hecho ésto, habrá que definir un servicio para cada parámetro a monitorizar en el archivo de configuración de servicios:
 
define service {
        host_name                       UPS_1
        service_description             ups_alarm
        use  							ups_template
        check_command                   check_ups_snmp!snmp!ups_alarm!0!0!-d /usr/local/nagios/libexec/mibs
        register                        1
}
Para el correcto uso de la opción ups_alarm, se necesitan los mibs incluidos en el directorio /mibs, éstos son necesarios para interpretar correctamente las alarmas que pueda dar la ups por snmp, en éste caso, como se ve en el ejemplo de definición de servicio, se han copiado los archivos de mibs en la ruta '/usr/local/nagios/libexec/mibs' pero podrían estar en cualquier otra.
 
Se incluyen plantillas para gráficos de pnp4nagios, para instalarlas, se debe copiar el fichero check_ups_snmp.php en el directorio /share/templates dentro del directorio de pnp4nagios.
 

 

Publicado en nagios | 23 comentarios