Archive for the ‘Uncategorized’ Category

h1

Monitorizar un servicio o proceso y rearrancarlo en caso de caída

02/11/2008

Frecuentemente es necesario tener servicios y procesos monitorizados y levantados las 24h. Para ello existen utilidades que monitorizan y rearracan en caso de caída o condiciones críticas del sistema, a la vez que envían alertas al administrador. Y lo hacen no sólo en base al estado del proceso si no también, si se desea, en función del entorno (RAM en uso, espacio libre en disco, etc), así como permite crear tareas de mantenimiento para evitar entrar en situaciones críticas.

En GNU/Linux uno de los más utilizados es Monit. De una manera sencilla permite controlar procesos, servicios, ficheros, memoria, CPU, puertos ó comunicaciones. En Debian ó Ubuntu se instala de manera sencilla:

$sudo apt-get install monit

Y crea el servicio que se arrancará en todos los reinicios. A contiinuación, es necesario activarlo configurando los parámetros generales de la aplicación:

$sudo nano /etc/default/monit
# You must set this variable to for monit to start
startup=1
# To change the intervals which monit should run uncomment
# and change this variable.
CHECK_INTERVALS=180

y posteriormente indicar los parámetros personalizados (condiciones a monitorizar). El fichero viene totalmente comentado por un ejemplo de cada tipología de evento monitorizable (fichero que cambia, procesos que mueren, consumo de memoria o de CPU, puerto inalcanzable…), de modo que es bastante fácil de configurar y de adaptar a situaciones persanlizadas. En mi caso pongo de ejemplo una condición para mantener demonio de aMule (amuled) arrancado si cae:

# sudo nano /etc/monit/monitrc
set daemon  60
set logfile syslog facility log_daemon
set httpd port 2812 and
use address localhost  # only accept connection from localhost
allow localhost        # allow localhost to connect to the server and
allow admin:monit      # require user 'admin' with password 'monit'
(...)
#--------------- AMULE DAEMON
check process aMule with pidfile /home/carlos/.aMule/muleLock
start program = "/etc/init.d/amule-daemon start"
stop program  = "/etc/init.d/amule-daemon stop"
if failed host localhost port 4712 then restart
(...)

Comentar que el  «set httpd port 2812» configura un interfaz web cómodo para acceder a las estadísticas de Monit vía web. A parte, las estadísticas se pueden ver en el syslog o en el fichero que se especifique en la configuración.

h1

Eventum no envía correos

23/07/2008

Eventum, el gestor de incidencias, tiene una utilidad muy cómoda para enviar un correo a los «afectados» cuando se crea o modifica una incidencia. Para hacerlo funcionar, a parte de tener que configurar sus parámetros, es necesario meter en el cron las siguientes líneas:

* * * * * cd /home/webadmin/htdocs/eventum/misc; /usr/bin/php -q process_mail_queue.php
*/10 * * * * cd /home/webadmin/htdocs/eventum/misc; /usr/bin/php -q check_reminders.php

h1

Cómo ver las opciones de superusuario de Eventum (smtp, etc)

20/07/2008

En algunos casos con el usuario que manejamos perdemos la categoría de superusuario, y por tanto no se muestran esas opciones de configuración. Basta con conectarse a la base de datos, localizar el ID correspondiente al usuario y alterar sus categoría.

Conectar a MySQL:
pilar002:/var/www/eventum/config# mysql --user=usuarioEventum --password=clavesecreta nombre_de_la_BD
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.0.32-Debian_7etch6-log Debian etch distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Obtener el ID (en este caso es «3») del usuario al que queremos promocionar:


mysql> SELECT usr_id FROM eventum_user WHERE usr_email='email@delAdministrador.com';
+--------+
| usr_id |
+--------+
| 3 |
+--------+
1 row in set (0.00 sec)

Promocionar al usuario con id=3:

mysql> UPDATE `eventum_project_user` SET `pru_role` = '7' WHERE `pru_usr_id` = '3'  ;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

En realidad todo se resume en cambiar el tipo de permiso de todas las ocurrencias del usuario a promocionar en la tabla eventum_project_user poniéndolas a 7

h1

Redireccionar todo a tráfico seguro / Invalid command ‘RewriteEngine’

20/07/2008

Si tras configurar un sitio con una redirección, por ejemplo uno que redireccione todo el tráfico http a https:

pilar002:/etc/apache2/sites-available# cat redir
NameVirtualHost *:80
RewriteEngine on
RewriteLog /var/log/apache2/https_rewrite.log
RewriteLogLevel 1
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]

Fuente: http://crysol.inf-cr.uclm.es/node/198

Se produce el siguiente error:

pilar002:/etc/apache2/sites-available# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...Syntax error on line 3 of /etc/apache2/sites-enabled/redir:
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
failed!

La solución es tan sencilla como cargar el módulo de rewrite:
pilar002:/etc/apache2/mods-available# a2enmod rewrite
Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.

h1

Generación de claves para SSL en Apache2 SIN «apache2-ssl-certificate»

20/07/2008

Update: Gracias a Boriel, se puede utilizar estas instrucciones más sencillas:
$ mkdir /etc/apache2/ssl
$ make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/server.pem

 

El script apache2-ssl-certificate ya no se incluye en el paquete de Apache2 de Debian, por lo que la habitual instrucción:

  • # apache2-ssl-certificate —force -days 365 -set_serial 2
    ó si ocurre:
    # apache2-ssl-certificate: command not found

    viene a ser sustituida por:

    # openssl genrsa -des3 -out server.key 1024
    # openssl rsa -in server.key -out server.pem
    # openssl req -new -key server.key -out server.csr
    # openssl x509 -req -days 360 -in server.csr -signkey server.key -out server.crt


    Opcional: para que no se pida la clave cada vez que se arranca el servidor:

    # mv key.pem key.pem.SEGURA #openssl rsa -in key.pem.SEGURA -out key.pem
h1

como instalar la impresora hp photosmart c6100 ó 6180 en Kubuntu

06/07/2008

La HP photosmart c6100 (ó c6180) no funciona por defecto en Kubuntu Hardy Heron. Es necesario instalar unas versión posterior de HPLIP. Para ello se desinstalará la versión actual, se descargará la última versión de la web de HPLIP y se ejecutará:

sudo apt-get remove --purge hpoj
chmod 777 hplip-2.8.6.run
./hplip-2.8.6.run

h1

Como matar todos los procesos de un usuario o que cumplan una condición

05/06/2008

Como matar todos los procesos de un usuario o que cumplan una condición:

kill -9 `ps auxww | grep [nombre] | egrep -v grep | awk ‘{print $2}’`

h1

Como reiniciar Apache sin pérdida de servicio

07/05/2008

En ocasiones, sobre todo en entornos de producción, es necesario reiniciar Apache sin pérdida de servicio (en caliente) para utilizar una configuración distinta (httpd.conf), de modo que siga atendiendo peticiones constantemente y los usuarios no lo noten.

Para ello se puede utilizar la opción «graceful».

$ /usr/local/apache2/bin/apachectl -f /export/home/usuario/apache/conf/httpd_NUEVA.conf -k graceful

De este modo Apache toma como configuración «httpd_NUEVA.conf» como nueva configuración para las posteriores peticiones, mientras que para los presentes forks se continuará utilizando la antigua. De este modo se puede reiniciar Apache sin pérdida de servicio. Además, la opción graceful chequea la validez del nuevo fichero httpd.conf, de modo que si no es aceptable las peticiones se seguirán atendiendo con la config antigua, aumentando la calidad y fiabilidad del servicio.

Además, previamente se puede chequear la validez del archivo mediante «apachectl configtest»

h1

Error al instalar Zattoo en K/Ubuntu 64

03/05/2008

Al instalar Zattoo en Kubuntu 64bits se puede dar el siguiente problema:


carlos@WhenIGrewUp:~$ sudo dpkg -i --force-architecture zattoo.deb
carlos@WhenIGrewUp:~$ zattoo_player
zattoo_player: error while loading shared libraries: libgnomeui-2.so.0: cannot open shared object file: No such file or directory

El problema consiste en la ausencia de librerías de 32 bits requeridas por Zattoo.
Se soluciona mediante «getlibs»


carlos@WhenIGrewUp:~$wget http://www.boundlesssupremacy.com/Cappy/getlibs/getlibs-all.deb
carlos@WhenIGrewUp:~$sudo dpkg -i getlibs-all.deb
carlos@WhenIGrewUp:~$sudo getlibs /usr/bin/zattoo_player
libgnomeui-2.so.0: libgnomeui-0
libbonoboui-2.so.0: libbonoboui2-0
libgnome-keyring.so.0: libgnome-keyring0
libgnome-2.so.0: libgnome2-0
libgnomevfs-2.so.0: libgnomevfs2-0
libgtkglext-x11-1.0.so.0: libgtkglext1
libgdkglext-x11-1.0.so.0: libgtkglext1
libgtkembedmoz.so.0d: libxul0d
libxpcom.so.0d: libxul0d
libmozjs.so.0d: libmozjs0d
libplds4.so.0d: libnspr4-0d
libplc4.so.0d: libnspr4-0d
libnspr4.so.0d: libnspr4-0d
libcurl.so.3: libcurl3
libxul.so.0d: libxul0d
The following i386 packages will be installed:
libbonoboui2-0
libcurl3
libgnome2-0
libgnome-keyring0
libgnomeui-0
libgnomevfs2-0
libgtkglext1
libmozjs0d
libnspr4-0d
libxul0d
Continue [Y/n]?
Downloading ...
Installing libraries ...
New depedencies have been detected
libdbus-glib-1.so.2: libdbus-glib-1-2
libavahi-glib.so.1: libavahi-glib1
libavahi-common.so.3: libavahi-common3
libavahi-client.so.3: libavahi-client3
The following i386 packages will be installed:
libavahi-client3
libavahi-common3
libavahi-glib1
libdbus-glib-1-2
Continue [Y/n]?
Downloading ...
Installing libraries ...
carlos@WhenIGrewUp:~$

h1

Errores en el arranque/instalación de Kubuntu 64 en AMD

01/01/2008

Al arrancar una Live CD de K/Ubuntu 64 7.10 se puede producir el siguiente error:

Kernel Alive
Kernel direct mapping tables up to 100000000 @ 8000-d000

Se soluciona en el menú de arranque del LiveCD (F6) modificando la línea de comando. Es necesario eliminar las opciones «quiet» y «splash», reemplazándolas por:

pci=noacpi vga=normal
de modo que se evita el mencionado error, así como otro posterior al entrar en el modo gráfico.

Si se instala en el HD, es necesario modificar la entrada en el Grub (/boot/grub/menu.lst), añadiéndo esas opciones al final de la línea del kernel correspondiente y eliminando las mencionadas «quiet» y «splash».

Otra solución es desactivar ACPI en la bios.