Instalación en local Solr sobre Windows 7

Vamos a definir una instalación mínima de solr sobre windows 7. Dada la cantidad de información que hay en Internet, nos ha parecido importante hacer un resumen concreto de cómo montar una pequeña maqueta solr sobre windows 7. A partir de aqui, os recomendamos continuar vuestro periplo con solr a través de los siguientes tutoriales

Instalación de TomCat:

Descarga: http://tomcat.apache.org/download-70.cgi

PS > cd ‘.\Program Files (x86)’\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\bin\service.bat install

Instalación de Solr en local:

  1. Descarga la última versión https://builds.apache.org/job/Solr-Artifacts-4.x/
  2. Descompresión del archivo. Al ser un ejecutable JAVA no requiere instalación, pero sí requiere una instalación previa de la máquina virtual Java. (C:\Program Files (x86)\solr-4.5-2013-07-23_11-36-16\ )
  3. Para lanzar el motor de solr desde powershell, hay que cambiar la variable de entorno para la sesión:

    PS > $env:path += “;C:\Program Files (x86)\Java\jre6\bin\”

    PS > java.exe -jar .\start.jar

Esto es una instalación de pruebas, por ello, no se ha dado de alta como servicio de windows. Lo normal sería que el motor solr se inicie con el propio windows.

A partir de aquí, podemos añadir contenidos a Solr para indexación. El ejemplo que nos dan en solr sería:

  PS C:\Program Files (x86)\solr-4.5-2013-07-23_11-36-16\example\exampledocs> java -jar post.jar *.xml

Y para probar que hay contenidos:

http://localhost:8983/solr/collection1/browse?q=monitor

 

F5. Monitorización de tmm mem con snmp

Para poder extraer el valor de la memoria que usa un f5 bigip tmm en un momento dado desde nagios, se ha desarrollado a medida un script que usa los valores de la MIB propia de f5.

Para hacer búsquedas de valores en la MIB de f5, os recomiendo mibbrowser  y cargar las MIBS propias de los f5.

Los OID que yo he utilizado para este script son:

  • .1.3.6.1.4.1.3375.2.1.1.2.21.37.0  sysGlobalTmmStatMemoryUsedKb.0
  • .1.3.6.1.4.1.3375.2.1.1.2.21.38.0 sysGlobalTmmStatMemoryTotalKb.0

Finalmente, el script / plugin / check para nagios es:

check_bigip_snmp_mem.sh

Para funcionar, requiere que tengamos cargados las MIBS de f5 en el directorio de snmp:

/usr/share/snmp/mibs/F5-BIGIP-APM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-LOCAL-MIB.txt
/usr/share/snmp/mibs/F5-EM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-COMMON-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-SYSTEM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-GLOBAL-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-WAM-MIB.txt

Nagios Centreon. Instalación desde repositorio CES-Standard Repo

Primero hay que añadir el repositorio CES-Standard Repo a nuestra lista de repositorios:

wget http://yum.centreon.com/standard/2.2/ces-standard.repo -O /etc/yum.repos.d/ces-standard.repo

yum clean all

yum update

A partir de este momento, ya tendremos los paquetes de Centreon listos para instalar con yum. Más información.

Nota: Yo estoy probando en CentOS 6.4 y parece que va mejor la instalación haciéndola desde los propios paquetes.

F5 Icontrol Powershell. Función para fijar una partición activa en los cmd-lets

A los scripts de devcentral, en el caso de estar usando particiones, será necesario en el inicio, la configuración de la partición activa como una carpeta.

#
# Set active partition
#
function  Set-Active-Partition (){

(Get-F5.iControl).SystemSession.set_active_folder($partition);
$folder = (Get-F5.iControl).SystemSession.get_active_folder();

}

Al igual que para tmsh, las particiones se ven como carpetas.

F5. Uso de api de Icontrol en poweshell

Es necesario descargar de la página de devcentral el componente iControlSnapInSetup.msi.

Tras el instalador, se abre power shell y se cambia la política de ejecución de Powershell como mínimo a RemoteSigned.

PS C:\Program Files> Set-ExecutionPolicy RemoteSigned

Se registra el componente en la consola de powershell, para poder usar sus llamadas. Para windows de 32 bits:

PS C:\Program Files> cd “C:\Program Files (x86)\F5 Networks\iControlSnapIn

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> .\setupSnapIn.ps1

En windows de 64 bits, hace falta copiar el archivo de 64 bits a mano. Por alguna razón el instalador por defecto no funciona. (Más información)

Si todo ha ido correcto, aparecerá en el listado de Componentes de powershell:

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-PSSnapin

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-PSSnapin -registered

Para borrar un snapin:

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Remove-PSSnapin -name iControlSnapIn

Quitar el tiempo de espera en grub2 en el arranque

Para editar el tiempo de espera en grub editamos como root el archivo /

sudo emacs /etc/default/grub

En el que habrá que eliminar el timeout

 

# If you change this file, run ‘update-grub’ afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n ‘Simple configuration’

GRUB_DEFAULT=0
GRUB_TIMEOUT=0

Posteriormente, para guardar los cambios, se ejecuta

sudo update-grub

Configurar servidor pxe para instalación de windows en red

El objetivo, es montar un servidor pxe, para poder instalar un windows con arranque con red.

La máquina donde pondremos pxe tiene las siguientes características:

  • Ubuntu 11.10
  • kernel linux  3.0.0-14-generic

DNSMasq:

apt-get install dnsmasq-utils dnsmasq
mkdir -p /var/ftp/tftpboot
mkdir /var/ftp/tftpboot/pxelinux.cfg

Configuramos el fichero  /etc/dnsmasq.conf:

no-resolv
local=/localnet/
dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h
dhcp-option=3,10.1.10.1
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/ftp/tftpboot

Syslinux

Instalación:

apt-get install syslinux

Se copian a mano los ficheros pxelinux.0 y  la carpeta memdisk en los directorios preparados para ello:

find / -name  pxelinux.0
cp /usr/lib/syslinux/pxelinux.0 /var/ftp/tftpboot/
cp -rf /usr/lib/syslinux/memdisk  /var/ftp/tftpboot/

Imagen de windows.

Cogemos la imagen de windows,  y la cargamos en /var/ftp/tftpboot/

PXELinux

Creamos el fichero de configuración para pxe, que será el encargado del arranque por red.

touch /var/ftp/tftpboot/pxelinux.cfg/default

Esta configuración es la que me ha funcionado. Ojo, hay que cambiar el nombre de la imagen de arranque.

nano /var/ftp/tftpboot/pxelinux.cfg/default

DEFAULT pe
PROMPT 60

LABEL pe
LINUX /memdisk
APPEND iso
INITRD /winpe_x86.iso

Para esta instalación, nos hemos basado en las siguientes guías:

  • http://www.savelono.com/linux/how-to-install-windows-7-over-a-network-using-linux-pxe-dnsmasq-and-samba.html
  • http://www.linuxquestions.org/questions/linuxquestions-org-member-success-stories-23/building-a-windows-livecd-with-barts-pe-for-linux-users-243478/

Cuando usar ls y cuando usar find

En general, a la hora de hacer scripts con listados de archivos y directorios, el comando “ls” es más que suficiente.

Sin embargo, a la hora de querer hacer un listado con la ruta completa, haciendo ls -R,  el resultado es parecido a este:

# ls -R

dir:
arch1 arch2 arch 3 arch4

Este tipo de salida, es difícil de procesar, después en los scripts.  Lo deseable es contar  con salidas:

dir/arch1
dir/arch2
dir/arch3
dir/arch4

Para conseguir esto, lo útil es usar find con un modificador de profundidad, para evitar que se listen todos los niveles de la jerarquía:

find /dir/* -maxdepth 0′

Os dejo un enlace al manual, para ver otros modificadores: http://unixhelp.ed.ac.uk/CGI/man-cgi?find

Reducir el tamaño de la particion de swap en LVM

Por defecto, la instalación de CENTOS hace unas particiones inmensas de swap, que están muy lejos del tamaño que vamos a querer usar nosotros.

Vamos a hacerlo a través de la consola.

Primero, reducimos el tamaño de SWAP, desmontando la paginación, y volviendo al estado antiguo.

swapoff -v /dev/VolGroup00/LogVol01
lvreduce  /dev/VolGroup00/LogVol01 -L 512M
mkswap  /dev/VolGroup00/LogVol01
swapon -va
cat /proc/swaps

Más información: http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-swap-removing.html

La gestión de los logs en bash script.

Tener trazas es vital para encontrar los problemas cuando ocurren. Y ocurren. Vamos a ver hoy como hacer una gestión de creación, trazado y borrado de logs en nuestros propios scripts.

Donde se guardan los logs

Por defecto, los ficheros de log se guardan en la carpeta /var/log/X, siendo X el programa que los generó.

En mi caso, por problemas de permisos en la máquina donde los ejecuto, los guardo en /tmp.

Crear el fichero de log

Para tener más información, mis ficheros de log contienen en su nombre qué usuario es el que generó la traza.

LOG=/tmp/$APP.$(whoami).log

Mensajes de log

Cada mensaje de log, está identificado por la aplicación que lo generó, así como la hora minuto y segundo en que se generó la línea:

function log {

echo [$APP $(date +%H:%M:%S)] $@ >> $LOG

}

El uso de esta función sería:

log ‘mensaje de prueba 1. Ejecuto en directorio’ $PWD

Sentíos libros de añadir cualquier información más a la traza.

Borrar las trazas cuando exceden de un determinado tamaño.

No se puede llenar el sistema de archivos. Sobre todo cuando es una tarea periódica que ejecuta, por ejemplo todos los días.

Por ello, antes de empezar cada ejecución yo tengo una función de validar si el log ya existe, y, si excede un determinado tamaño, se borra y se empieza uno nuevo

function openLog {

LOG_LOG=$1

LOG_APP=$2

# If log is bigger than maxsize, delete it

if [ -e $LOG_LOG ] ; then

SIZE=$(stat -c %s $LOG_LOG)

if [ $SIZE -gt $MAXSIZE ] ; then

echo ‘borrando log’

rm -rf $LOG_LOG

fi;

fi;

# Create log if it doesn’t exist.

if [ ! -e $LOG_LOG ]; then

touch $LOG_LOG

fi;

}

# Create log if it doesn’t exist.

if [ ! -e $LOG ]

touch $LOG

}

Conclusiones

Es, por tanto, necesario comenzar siempre la ejecución de nuestros script abriendo el fichero de log, que lo creará si no existe o lo borrará si es demasiado grande.

Sentíos libres de utilizar y mejorar estas funciones ampliando su funcionalidad o la cantidad de información que vuelcan al sistema.