Nagios: leer el log con la fecha en formato legible

Para poder leer de forma directa el log de nagios, con la fecha en formato humano, os recomiendo echarle un ojo a este hilo.

A mí me ha funcionado fenomenal este pequeño script de perl:

cat  nagios.log  | grep "servicio" | perl -pe 's/(\d+)/localtime($1)/e'

Pasando las fechas de un numérico  a formato de fecha:

[1380837600]  ----> [Fri Oct  4 10:24:35 2013]

Photosort – Una idea para organizar nuestras fotos

Tenemos un problema tremendo con las fotos. Dos cámaras, dos teléfonos móviles, y un montonazo de fotos sin orden ni concierto. Nuestras necesidades son simples:

Queremos una librería compartida de fotos sin duplicados, ordenadas por fechas

Para ello, el gran Ajo, se ha puesto en marcha y ha creado en python Photosort  disponible en github.Photosort crea una base de datos sencilla, para saber si una foto ha subido ya a nuestro repositorio compartido, incluso si ha subido ya con otro nombre.

También está ya disponible en el repositorio yPi (Python Package Install repository), para que sea mucho más fácil instalarlo en nuestras máquinas.

Se basa en la información exif de la propia foto, y no en la fecha de modificación o creación de las fotos, que puede ser errónea.

Instalación sobre debian 7

apt-get install python-pip
pip install photosort
mkdir ~/.photosort
cd ~/.photosort
wget https://raw.github.com/mangelajo/photosort/master/etc/photosort.yml

Editamos el fichero de configuración yml, con nuestro fuente y nuestro destino. Cuidado con mantener la indentación propia del fichero de yml.

sources:
camera:
dir: '/media/EOS_CAM'
(...)
output:
dir: '/mnt/shared_data/Fotos'
(...)

Con esto, ya podemos ejecutar el comando:

photosort --config .photosort/photosort.yml --debug sync

Para ver qué está haciendo el proceso en cada momento:
tail -f /mnt/shared_data/Fotos/photosort.log

Plantillas de vmware

Guía mínima de requisitos que hay que instalar para las plantillas de vmware:

  • vmware tools
  • Configuración de red, proxy si lo hay en la organización
  • Actualización de paquetes de sistema operativo (windows o linux).
  • Editor de texto preferido: notepad++, emacs
  • Acceso remoto (ssh o rdp)
  • Herramientas de monitorización: TCPMonitor, ProcessExplorer, agentes nagios, etc.
  • Agente de inventario: glpi o similar
  • Firewall de windows deshabilitado

Esta guía, sirve tanto para máquinas windows como linux. Estamos abiertos a que nos indiquéis qué más cosas configuráis por defecto para crear plantillas.

Nagios. Instalar estilos de nuvola 1.3.0

Nagios es feo. Es así. Super útil, pero feo.

Por ello, hemos decidido cargar los estilos de nuvola, que lo hacen mucho más atractivo.

Hemos tenido problemas a la hora de instalarlo, porque no se veía el nuevo estilo en el menú, ni en la página principal.

  1. Descarga del tema de nuvola
  2. Descompresión de los ficheros en nuestra ruta de nagios: tar -xvzf /root/src/nagios-nuvola-1.0.3.tar  /usr/share/nagios (centOS) o /usr/share/nagios3/htdocs/ (debian)

Si no encontramos la ruta, podemos hacer una búsqueda de donde estén las hojas de estilo:

 find / |grep nagios | grep index.

En este punto, los nuevos estilos deben cargar para las páginas de monitorización: services, etc….

Ahora, hay que cambiar main y side por los archivos que vienen con la distribución de nuvola, añadiendo las líneas de include de php

Cambios en main.html:

Salvamos el original de nagios y sustituimos:

mv main.php main.old.php
cp main.html main.php

Añadimos en main.php los tags de php:

<?php
include_once(dirname(__FILE__).'/includes/utils.inc.php');

?>

Cambios en side.html:

mv side.php side.old.php
cp side.html side.php

Añadimos en side.php los tags de php:


<?php
include_once(dirname(__FILE__).'/includes/utils.inc.php');

$link_target=”main”;
?>

En este momento, los estilos ya están cargados, y la visualización debe ser igual a los pantallazos del fabricante:

 

Nagios Centreon sobre CentOS 6.4

Versión de Centreon:  centreon-2.4.4.tar.gz

Versión de nagios: Nagios 3.2.3

Versión de Centos: 6.4 x64

El contenido de este post, completa algunos de los errores que hemos encontrado al seguir esta estupenda guía:

http://www.thesysadminhimself.com/2013/02/installing-centreon-24-on-centos-63-x64-part-2.html

Aún así, debemos advertiros que no es fácil hacer funcionar centreon sobre una versión de Centos superior a 5. Animamos al equipo de centreon, con la versión 2.5 a la vuelta de la esquina, para que ya suban de versión de Centos.

Fichero de respuestas para install:

Basándonos en el fichero que propone thesysadminhimself, hemos hecho nuestro propio archivo, con las rutas propias para Centreon 2.4.4 sobre Centos 6.4

Aún así, nos ha hecho dos preguntas, una sobre RRDs.pm y otra sobre PEAR.php, pero ha sido mucho más fácil de instalar.


## CentWeb: Web front Centreon for Nagios
PROCESS_CENTREON_WWW=1
## CentStorage: Log and charts archiving.
PROCESS_CENTSTORAGE=1
## CentCore: Distributed Monitoring engine.
PROCESS_CENTCORE=1
## CentPlugins: Centreon Plugins for nagios
PROCESS_CENTREON_PLUGINS=1
## CentTraps: Centreon Snmp traps process for nagios
PROCESS_CENTREON_SNMP_TRAPS=1

#####################################################################
## Begin: Default variables
#####################################################################
## Your default variables
## $BASE_DIR is the centreon source directory
LOG_DIR=”$BASE_DIR/log”
LOG_FILE=”$LOG_DIR/install_centreon.log”

## Don’t change values above unless you perfectly understand
## what you are doing.
## Centreon temporary directory to work
TMP_DIR=”/tmp/centreon-setup”
## default snmp config directory
SNMP_ETC=”/etc/snmp/”
## a list of pear modules require by Centreon
PEAR_MODULES_LIST=”pear.lst”
#####################################################################
## End: Default variables
##################################################################

#####################################################################
## Begin: Centreon preferences
#####################################################################
## Above variables are necessary to run a silent install
## Where you want to install Centreon (Centreon root directory)
INSTALL_DIR_CENTREON=”/usr/local/centreon”
## Centreon log files directory
CENTREON_LOG=”/usr/local/centreon/log”
## Centreon config files
CENTREON_ETC=”/etc/centreon”
## Where is your Centreon binaries directory ?
CENTREON_BINDIR=”/usr/local/centreon/bin”
## Where is your Centreon data informations directory ?
CENTREON_DATADIR=”/usr/local/centreon/data”
## Centreon generation config directory
##  filesGeneration and filesUpload
## Where is your Centreon generation_files directory ?
CENTREON_GENDIR=”/usr/local/centreon”
## libraries temporary files directory
## Where is your Centreon variable library directory ?
CENTREON_VARLIB=”/var/lib/centreon”
## Where is your CentPlugins Traps binary?
CENTPLUGINSTRAPS_BINDIR=”/usr/local/centreon/bin”
## Where is the RRD perl module installed [RRDs.pm]
## ATTENTION: ON x64 SYSTEMS THE PATH IS LIB64 INSTEAD OF LIB
##               vv
RRD_PERL=”/usr/lib64/perl5/RRDs.pm”
## What is the Centreon group ?
CENTREON_GROUP=”centreon”
## What is the Centreon user ?
CENTREON_USER=”centreon”
## What is the Monitoring engine user ?
MONITORINGENGINE_USER=”nagios”
## What is the Monitoring engine group ?
MONITORINGENGINE_GROUP=”nagios”
## What is the Monitoring engine log directory ?
MONITORINGENGINE_LOG=”/var/log/nagios”
## Where is your monitoring plugins (libexec) directory ?
PLUGIN_DIR=”/usr/lib64/nagios/plugins/”
## Path to sudoers file (optional)
## Where is sudo configuration file
SUDO_FILE=”/etc/sudoers”
## What is the Monitoring engine init.d script ?
MONITORINGENGINE_INIT_SCRIPT=”/etc/init.d/nagios”
## What is the Monitoring engine binary ?
MONITORINGENGINE_BINARY=”/usr/bin/nagios”
## What is the Monitoring engine configuration directory ?
MONITORINGENGINE_ETC=”/etc/nagios”
## Where is the configuration directory for broker module ?
BROKER_ETC=”/etc/nagios”
## Where is the init script for broker module daemon ?
BROKER_INIT_SCRIPT=”/etc/init.d/ndoutils”
## Do you want me to configure your sudo ? (WARNING)
FORCE_SUDO_CONF=1

#####################################################################
## Begin: Apache preferences
#####################################################################
## Apache configuration directory (optional)
#DIR_APACHE=”/etc/apache”
## Apache local specific configuration directory (optional)
## Do you want to update Centreon Apache sub configuration file ?
# DIR_APACHE_CONF=”/etc/apache/conf.d”
## Apache configuration file. Only file name. (optional)
#APACHE_CONF=”apache.conf”
## Apache user (optional)
WEB_USER=”apache”
## Apache group (optional)
WEB_GROUP=”apache”
## Force apache reload (optional): set APACHE_RELOAD to 1
## Do you want to reload your Apache ?
APACHE_RELOAD=1
#####################################################################
## End: Apache preferences
#####################################################################

## Do you want me to install/upgrade your PEAR modules
PEAR_AUTOINST=1
## Centreon run dir (all .pid, .run, .lock)
## Where is your Centreon Run Dir directory?
CENTREON_RUNDIR=”/var/run/centreon”

## path to centstorage binary
## Where is your CentStorage binary directory
CENTSTORAGE_BINDIR=”/usr/local/centreon/bin”
## CentStorage RRDs directory (where .rrd files go)
## Where is your CentStorage RRD directory
CENTSTORAGE_RRD=”/var/lib/centreon”
## Do you want me to install CentStorage init script ?
CENTSTORAGE_INSTALL_INIT=1
## Do you want me to install CentStorage run level ?
CENTSTORAGE_INSTALL_RUNLVL=1

## path to centcore binary
CENTCORE_BINDIR=”usr/local/centreon/bin”
## force install init script (install in init.d)
## Set to “1” to enable
## Do you want me to install CentCore init script ?
CENTCORE_INSTALL_INIT=1
## force install run level for init script (add all link on rcX.d)
## Set to “1” to enable
## Do you want me to install CentCore run level
CENTCORE_INSTALL_RUNLVL=1

## Some plugins require temporary datas to process output.
## These temp datas are store in the CENTPLUGINS_TMP path.
## Where is your CentPlugins lib directory
CENTPLUGINS_TMP=”/var/lib/centreon/centplugins”

## path for snmptt installation
SNMPTT_BINDIR=”/usr/local/centreon/bin/”
## What is the Broker user ? (optional)
BROKER_USER=$MONITORINGENGINE_USER

## Nagios user (optional)
NAGIOS_USER=”nagios”
## Nagios group (optional)
NAGIOS_GROUP=”nagios”
## Centreon Connector PATH
## Mail (optional)
BIN_MAIL=”/bin/mail”
##
Error: Tras instalar, en centreon no se detecta Poller.

Configuration  Centreon  Pollers

En la columna “is running” se queda en rojo, y pone NO.

Solución:

Revisar en el inicio de nagios (service nagios restart) que no haya problemas de permisos o de rutas para el fichero nagios.cmd:

 /var/log/nagios/rw/nagios.cmd

Error: la información de nagios no está en centreon para su consulta

  • Revisar que se esté llenando , y vaciando service-perfdata:

tail -f  /var/log/nagios/service-perfdata

  • Revisar la configuración en nagios.cfg en centreon:

Configuration  Centreon  Pollers

Seleccionamos Central y revisamos que Perfdata file apunte a nuestro archivo de service-perfdata.

  • Revisar la configuración en Centreon de Configuration  Monitoring Engines  main.cfg

Seleccionamos la pestaña Data y los Service Performance Data Processing Command deben contener process-service-perfdata

Exportar configuración de nagios

  • Revisar en Centreon que los commands de perfdata estén en el apartado MISC  Configuration  Commands  Checks

Exportar configuración de nagios

  • Revisar que  ndoutils tenga conexión con su destino de datos:

tail -f /var/log/nagios/nagios.log

[1378717388] ndomod: Error writing to data sink!  Some output may get lost…

 

  • Revisar que ndoutils esté guardando su información en la tabla centreon_Status.

Primero, verificamos que se esté guardando la información de los propios hosts: SELECT * FROM `nagios_hosts` WHERE 1

Después, verificamos que se vierta en tiempo real la información del estado: SELECT * FROM `nagios_hoststatus` WHERE 1

 

Error: Al exportar da un error de tty

[ – ] Central
sudo: no tty present and no askpass program specified

El problema viene por la configuración en /etc/sudoers. Al ver el log de secure, vemos unas líneas como:

Oct 21 12:55:16 localhost sudo: pam_unix(sudo:auth): conversation failed
Oct 21 12:55:16 localhost sudo: pam_unix(sudo:auth): auth could not identify password for [apache]
Oct 21 12:55:16 localhost sudo:   apache : command not allowed ; TTY=unknown ; PWD=/usr/local/centreon/www ; USER=root ; COMMAND=/usr/bin/nagios -v /usr/local/centreon/filesGeneration/nagiosCFG/1/nagiosCFG.DEBUG

Verificamos en el archivo de sudoers, que la ruta de nagios, coincida realmente con la ruta donde está nuestro ejecutable de nagios.

En el caso de Centos 6.5:

CENTREON   ALL = NOPASSWD: /usr/bin/nagios* -v *
CENTREON   ALL = NOPASSWD: /usr/bin/nagios -v *
CENTREON   ALL = NOPASSWD: /usr/bin/nagios* -s *
CENTREON   ALL = NOPASSWD: /usr/bin/nagios -s *

Para usar Check_centreon_ping

check_centreon_ping!3!50,80%!100,50%

Mysql. Olvidé la contraseña de root

Olvidé contraseña de root

Este tutorial está hecho sobre una máquina centos 6.4. Es posible que en otras distribuciones, las rutas absolutas no sean las mismas.

He olvidado la contraseña del usuario root en mysql.

Paramos el servicio de mysql, y arrancamos de nuevo con el flag “skip-grant-tables”:
service mysqld stop
/usr/bin/mysqld_safe --skip-grant-tables --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql

 

En la consola de mysql, abrimos sin contraseña, y actualizamos el valor de la contraseña de la tabla users:
mysql -u root mysql

Problema socket mysql

Tras un reinicio, al aplicar actualizaciones, no se puede encender la base de datos:

[root@server~]# service mysqld start
Another MySQL daemon already running with the same unix socket.
Iniciando mysqld: [FALLÃ]

Para buscar el nombre del socket

cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

Siguiendo este tutorial, salvaguardamos el socket de mysql, y hacemos un apagado ordenado con shutdown -r.


[root@server~]# ls -la /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 ene 15 13:16 /var/lib/mysql/mysql.sock
[root@server~]# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.old
[root@server~]# shutdown -r now

También hay que verificar que se pueda crear el archivo .pid

[root@server~]# tail /var/log/mysqld.log | grep -i error
140115 13:18:49 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)
140115 13:18:49 [ERROR] Can't start server: can't create PID file: No such file or directory
[root@server~]# mkdir /var/run/mysqld/
[root@server~]# chown mysql:mysql /var/run/mysqld
[root@server~]# service mysqld restart

F5 Big IP. Uso de ASM

Activar ASM en un virtual Server

Provisionar ASM

Antes de  comenzar con la guía, necesitamos provisionar ASM. En nuestro caso, vamos a optar por una provisión nominal para ASM y LTM.

System  ›  Resource Provisioning
Crear el virtual server
Local Traffic  ››  Virtual Servers : Virtual Server List  ››  VS_http_asm
Después de crear el virtual server con ip, puerto y perfil de http (http)
Crear Security policy
Application Security  ››  Deployment Wizard : Select Local Traffic Deployment Scenario
Escogemos un virtual server ya existente (el del apartado anterior). Esto ya crea su perfil de http_class y lo asigna al servidor (o servidores escogidos).
Nota: la guía de F5 especifica haber creado antes una clase http_class. En la versión 11.2.1, no nos ha funcionado. De hecho, no permite escoger el servidor si ya tiene un http_class activado. Por ello, hemos ignorado en estos puntos la guía, y hemos comenzado con la política de seguridad antes de la classe http_class.
Para ver el comportamiento de ASM:
Application Security  ››  Reporting : Requests
Si queremos ver tanto el log de peticiones ilegales, como de las peticiones buenas, es necesario activar en la propia política, el log.
Application Security  ››  Policy : Policy : Properties >> Logging profile
Para elegir en la política qué bloquear:
Cuando la politica ya está guardada, es posible acceder a la configuración de qué hacer (bloquear o no)  los distintos errores que detecta ASM.
Application Security  ››  Policy : Blocking : Settings

Debian RTS5229 MMC Reader

Al instalar Debian wheezy sobre un lenovo e530, el lector de tarjetas SD no funciona. No tiene /dev/mmc* asociado y al introducir una SD, no deja rastro en dmesg.

El problema está en el módulo de Realtek de SD. No hemos encontrado el paquete directamente para descarga en debian, por lo que hemos tenido que compilarlo en nuestro sistema.

Revisión del hardware:


lspci -vnn | grep -A5 RTS5229
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader [10ec:5229] (rev 01)
Subsystem: Lenovo Device [17aa:5000]
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at f2e00000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+

Descarga y compilación de los módulos del kernel para el lector de tarjetas SD. En el caso de haber errores de compilación, ver más abajo cómo instalar las cabeceras.


make
make install
depmod
modprobe rts5229

A partir de aquí, al meter una tarjeta SD, debería reconocerse.

Por último, hay que poner los módulos en el arranque del kernel:

Activación de los módulos de kernel de mmc:


cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

loop
mmc_block
mmc_core
rts5229

Para más información, ver el blog de vincent

Instalación de cabeceras de linux para compilación:

 

Nos aseguramos de tener linux-kernel-headers instalados:

dpkg -l | grep linux-header
ii linux-headers-3.2.0-4-amd64 3.2.46-1 amd64 Header files for Linux 3.2.0-4-amd64
ii linux-headers-3.2.0-4-common 3.2.46-1 amd64 Common header files for Linux 3.2.0-4
ii linux-headers-3.2.0-4-common-rt 3.2.46-1 amd64 Common header files for Linux 3.2.0-4-rt
ii linux-headers-3.2.0-4-rt-amd64 3.2.46-1 amd64 Header files for Linux 3.2.0-4-rt-amd64
ii linux-headers-amd64 3.2+46 amd64 Header files for Linux amd64 configuration (meta-package)
ii linux-headers-rt-amd64 3.2+46 amd64 Header files for Linux rt-amd64 configuration (meta-package)

Enlace de las cabeceras a /lib/modules/…/build:

ln -s /usr/src/linux-headers-3.2.0-4-amd64 /lib/modules/3.2.0-4-amd64/build

Crear certificado de usuario para probar servicios web con ssl

En ocasiones es necesario contar con un certificado de usuario, para poder hacer pruebas sobre un servicio web.

Creación del certificado

Para crear el certificado, en una máquina linux con openssl instalado, creamos el certificado. Por defecto, la clave privada se crea con una clave (passphrase). Dado que es un certificado simplemente para test, vamos a crear también el fichero de clave privada sin passphrase (paso 3)

 

# Creación de clave privada
openssl genrsa -out testing_password.key 4096
# Creación de clave pública
openssl req -new -x509 -days 3000 -key testing_password.key -out testing.crt
# Hacer una copia del fichero de claves sin proteger con contraseña
openssl rsa -in testing_password.key -out testing_nopasswd.key
# Exportar en pkcs12 para poderlo usar con navegadores como firefox
openssl pkcs12 -export -out testing.p12 -inkey testing_password.key -in testing.crt

Ver más información

Uso del certificado

Ahora, para probar el servicio web, podemos importarlo desde un navegador , o ponerlo en línea de comando en wget: wget


wget https://myhost.com/service --no-proxy --no-check-certificate --certificate=testing.csr

 

 

GPG Keys en distintas distribuciones:

Ubuntu

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6E80C6B7

Debian

En el ejemplo, se ha usado la clave gpg de security.debian.org. Sería necesario cambiar new key con el identificador de clave que hay que introducir para usar con apt.


newkey=8B48AD6246925553

gpg --keyserver pgpkeys.mit.edu --recv-key $newkey

gpg -a --export $newkey| sudo apt-key add -

CentOS
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6