[Jderobot-admin] Zabbix

Oscar Garcia oscar.robotica en linaresdigital.com
Jue Nov 22 13:30:00 CET 2012


El 22/11/2012 11:51, Borja Mon Serrano escribió:
> No he comprobado que la base de datos siguiera ahí, pero entiendo que
> purge se encarga de eliminar todo lo relativo al programa que
> desinstalas (por eso ni miré la base de datos).


Yo también lo entiendo así, pero siempre me aseguro, es una buena 
costumbre :)


> Se puede acceder al recurso /zabbix sin
> problemas y se puede entrar a la interfaz con el usuario y contraseña
> por defecto, de momento no lo he cambiado. Lo que tendría que hacer
> ahora es instalar y configurar un agente que se conectase a este
> servidor, ¿verdad? También me tengo que hacer a la interfaz de zabbix y
> ver qué es lo que puedo empezar a hacer con él.


Eso es todo ponerse un rato. Si quieres podemos vernos un día de la 
semana que viene y darle un repaso a lo más básico. Si quieres trastear 
por tu cuenta también estará bien :)


> Lo tendré en cuenta en el futuro.
>
>      > 19072 www-data  20   0 96180  51m 3932 R   93  2.5   1:43.34 apache2
>      > 19002 www-data  20   0 96272  50m 3728 R   88  2.5   1:25.10 apache2
>      > 18028 www-data  20   0 66824  14m 3324 S    4  0.7   0:12.11 apache2
> No soy muy amigo de top (poco a poco nos vamos conociendo), pero
> entiendo que la información de cuánto tiempo lleva corriendo un proceso
> en la máquina te lo da en minutos y no en horas, es decir, que ese
> 1:43.34 quiere decir que lleva corriendo 1 minuto, 43 segundos y 34
> centésimas. Creo que es así porque alguna vez he visto que lo que va
> después del punto ha pasado de 60, por lo que no podrían ser segundos
> (no tendría sentido) y, además, en cuanto he reinstalado zabbix he visto
> que había un proceso zabbix_server que llevaba corriendo 00:01.57...


Sí, error mío, entonces es un tiempo más que aceptable. Como venía de 
mirar el top del mío...

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
15203 mysql     20   0 5212m 4.6g 7100 S  107 59.1   9661:49 mysqld
  4579 root      20   0  355m 304m 1404 S    3  3.8   1607:45 snmptrapd

Llega un punto en el que te quita los decimales de los procesos que 
llevan mucho funcionando x)


>     Lo único que hace es que los procesos "hijos" de apache2 que realmente
>     sirven las peticiones "mueran" tras atender 50 peticiones, liberando
>     memoria (para evitar agujeros o zonas muertas de memoria, etc) y
>     posteriormente (si se necesita y está dentro del rango de procesos
>     configurado) levantará un proceso fresco. De este modo será difícil que
>     un proceso apache2 siga vivo con una hora y tres cuartos de tiempo de
>     ejecución.
> Estaba puesto a 0, ya está cambiado (y reiniciado el servidor). ¿Por qué
> 50 exactamente? Supongo que este número habría que cambiarlo dependiendo
> de la carga que tuviera el servidor, ¿no?


50 es un número arbitrario, un equilibrio entre la carga de CPU, memoria 
y disco de matar y levantar un proceso nuevo y limitar el tiempo de 
ejecución de un proceso para minimizar problemas de corrupción de memoria.

Cuanta más carga tenga un servidor hay que buscar el equilibrio entre 
aumentar ese número y también aumentar el número de procesos 
trabajadores que sirven peticiones para reducir el número de veces que 
se reciclan los hijos (para que no afecte al rendimiento general de la 
máquina).

En una máquina que sirve una página por segundo, con 10 imágenes, hojas 
de estilos, javascript, etc se reciclaría un hijo cada 5 segundos, que 
no carga absolutamente nada la máquina, quizá si la cosa empieza a 
cargarse hasta empezar a reciclar 50 hijos por segundo hay que pensar en 
aumentar tanto los hijos como el número de peticiones máximas que sirven 
para espaciarlos.


> Pero aunque tire de un reset brusco, ¿no escribe nada en el syslog?


El que escribe los logs es el proceso syslogd que posiblemente pueda 
estar bloqueado en operaciones de entrada/salida debido a la paginación, 
así que aunque dé la orden de escribir en el log que va a reiniciar la 
máquina posiblemente no llegue a escribirse ni aunque se retrasara 
varios segundos el reset.


>     Un consejo: un servidor debería tener menos del 50% de swap que de
>     memoria RAM, así el equipo no perdería rendimiento por uso de memoria,
>     si no que se dedicaría a matar procesos que considere que puedan ser
>     eliminados.
>     Yo prefiero una caída suave de los servicios que una caída completa del
>     servidor.
>
> Ahora mismo el servidor tiene aproximadamente un 75% de swap (en
> relación a la RAM).


Yo cambiaría primero el swappiness a un valor bajo y el tamaño del swap 
se puede modificar en cualquier momento de forma muy rápida:

1.- Desactivamos el dispositivo de paginación: swapoff /dev/xxx
2.- Lo formateamos con un tamaño inferior al tamaño de la partición (en 
este caso 1 GB, el tamaño se da en KB): mkswap /dev/xxx $((1*1024*1024))
3.- Activamos de nuevo el dispositivo de paginación: swapon /dev/xxx

mkswap por defecto usa todo el dispositivo (partición) como área de 
intercambio, pero se puede especificar un tamaño inferior si se desea 
como segundo parámetro.


> El REPAIR TABLE fue una de las primeras cosas que hice ayer. Además de
> hacer la reparación de esa tabla hice un chequeo con auto-reparación de
> todas las bases de datos con "mysqlcheck --all-databases --auto-repair"
> y todo pareció funcionar bien.


Aún así sigo sin poder acceder a la página:
http://jderobot.org/index.php/Oscar_Garcia_WP

:(


>     He hecho una búsqueda rápida en los bugs de debian y he encontrado esto:
>     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535148#65
>
> Está instalada la última versión disponible, la 0.9.32.1-1, que es de
> 2010 según el changelog. En él no he visto referencia a que se arregle
> este error, pero como tampoco sabemos por qué ha sido provocado lo mismo
> sí que aparece como arreglado en alguna de las líneas del changelog.


No creo que eso fuera la causa del problema que nos traemos entre manos 
debido a que no se produce en las horas problemáticas, si no en horas 
normales de trabajo. Desactivar o activar suhosin podría eliminar esos 
mensajes pero posiblemente no el problema de paginación.


> No he hecho un fsck, pero lo dejaré ahora programado para el próximo
> reinicio.


Perfecto. Espero que, al menos, pueda consultar el artículo de la wiki 
conflictivo tras él.

¿Cuál es la URL del zabbix?

Como mínimo debería haber un usuario administrador y otro de sólo 
lectura que reciba alertas por email cuando se produzcan eventos (se 
dispare algún iniciador) que habitualmente es un operador.

Para configurar envíos por correo electrónico debes ir a Administración 
 > Tipos de medios y editar el Email para agregar el servidor de correo, 
remitente, etc. El servidor SMTP debe tener abierto el envío de correos 
sin autenticación desde la IP del servidor o bien montar un servidor 
local que sólo acepte envío de correos originados desde localhost.

Por desgracia zabbix no es capaz de enviar SMTP autenticado sin el uso 
de un script externo.

Una vez configurado "el medio de comunicación" del email ya se podrá 
usar en los usuarios un destinatario (o varios) de correo y el horario 
de recepción de mensajes (yo siempre lo dejo en 24x7) pulsando en añadir 
medios.

También se puede configurar un módem GSM (o un móvil que lo soporte) 
para enviar avisos SMS en vez de correos electrónicos. Así es como lo 
tenemos aquí para avisar a los VIPs (directivos y responsables de áreas 
de negocio), a los administradores de sistemas y operadores todos los 
avisos son por email (a ver si se estiran un poco :).

Por último hay que configurar en "configuración" las "acciones" que 
conllevarán el envío de un aviso por correo a ese usuario.

Le das a crear acción y puedes crear uno genérico que envíe correos 
cuando la gravedad del iniciador sea superior o igual a "Medio" (dándole 
a agregar condición). Luego debes agregar una acción (a la derecha) 
dándole a añadir y eligiendo enviar un email a un usuario, a un grupo o 
a una combinación de uno o varios usuarios y grupos.

Ya está, con esta pequeña mini-guía habrás conseguido que zabbix te 
avise por email cuando ocurran eventos predeterminados. El segundo paso 
es crear nuestros monitores propios e iniciadores

Procura hacerlo en plantillas nuevas creadas por ti, no modifiques las 
plantillas por defecto, así te será más fácil localizar tus 
modificaciones/trabajos/creaciones/pruebas/etc entre tropecientos 
monitores/iniciadores/etc que pueda contener cada plantilla.

Un saludo.


More information about the Jderobot-admin mailing list