Optimización especifica para zabbix

Hola buenas,

Como creo que uno de los puntos flojos de zabbix en cuanto a su rendimiento puede ser la bbdd (en este caso MySql), el I/O del disco y una mala configuración del Zabbix_Server voy a dar unas pinceladas sobre cómo optimizar y mejorar sustancialmente el rendimiento de nuestro entorno.

Lo primero que debemos analizar en nuestro sistema zabbix es qué tipo de disco tenemos, hay mucha diferencia en tener la bbdd en discos de 10k, 15k o SSD.. mucha.

El I/O del disco donde se aloja la bbdd tiene que ser el mejor que nuestra empresa se pueda permitir ya que es una de las mejoras que más va a notarse en cuanto al uso de la herramienta.

Algunos datos sobre esto:

Un disco de 15k rpm  puede realizar 250 random operations (IO) un SSD unas 15K o 16K… como se puede observar es una diferencia como para tener en cuenta.

Ahora le toca a MySql 🙂

El fichero my.cnf de MySql es el core de nuestro motor de BBDD, según lo tengamos configurado así de bien (o mal) podemos hacer que funcione nuestro Zabbix.

Vamos a tocar algunos valores:

innodb_buffer_pool_size: Este valor lo dejaremos lo más alto posible, cerca del 75% de la RAM que tengamos en el servidor, es necesario previamente calcular cuanta RAM gastan el resto de procesos para asignar un valor seguro pero cuanto más alto tengamos este valor más valores tendremos en buffer y más rápido se gestionaran las operaciones de I/O.

query_cache_size=0, query_cache_type=0: Esto quita la caché para las querys, en zabbix no es necesario que tengamos las querys en caché.

tmpdir: Es muy recomendable configurar el directorio temporal de MySql en /dev/shm; ya que es una porción de memoria reservada como directorio, la velocidad de los temporales de MySql será mayor que en uno físico. (más info:  http://www.cyberciti.biz/tips/what-is-devshm-and-its-practical-usage.html).

Y por supuesto nos queda comentar una buena configuración del zabbix_server.

Para ello desde la versión 2.0 se puede aplicar una template al propio servidor de zabbix (Template_Zabbix_Server) que añade monitorizaciones muy efectivas sobre los procesos del propio zabbix para poder mejorar su rendimiento.

Las monitorizaciones de los procesos de zabbix_server de esa template  nos ofrecen los resultados en porcentajes, esto es bastante útil si añadimos en una screen todos los valores y lo revisamos un par de veces por semana 🙂 para ajustar la configuración al crecimiento del entorno.

Zabbix configuration cache, % free
Zabbix busy unreachable poller processes, in %
Zabbix busy trapper processes, in %
Zabbix busy timer processes, in %
Zabbix busy self-monitoring processes, in %
Zabbix busy proxy poller processes, in %
Zabbix busy poller processes, in %
Zabbix busy icmp pinger processes, in %
Zabbix busy http poller processes, in %
Zabbix busy housekeeper processes, in %
Zabbix busy history syncer processes, in %
Zabbix busy escalator processes, in %
Zabbix busy discoverer processes, in %
Zabbix busy db watchdog processes, in %
Zabbix busy configuration syncer processes, in %
Zabbix busy alerter processes, in %

En estos momentos mi servidor principal de Zabbix tiene estos NVPS:

Required performance of Zabbix server, new values per second 2014-11-27 16:48:03 935.06

Pero ninguno de mis procesos superan el 40% de busy ya que cuando detecto que alguno de ellos se acerca a ese valor modificamos el número de procesos que están arrancados para esa funcionalidad y evitamos cuellos de botella.

Espero que os guste!


2 respuestas a “Optimización especifica para zabbix

Deja un comentario