Saludos amigos, en Agosto de 2017 os mostraba cómo monitorizar vuestro entorno de Zimbra Collaboration, tuvo mucho éxito y muchas descargas, más de 600, pero si bien es cierto que funcionaba sin problema, en entornos muy grande con cientos o miles de usuarios podría ralentizar la MTA, al tener que leer todo usando el script de perl.
NOTA: Antes de realizar ninguna operación, os recomiendo tener un backup con Zextras, que se puede obtener una trial de manera gratuita usando el link, para curarnos en salud.
Pues bien, hoy traigo buenas noticias, ya que telegraf tiene desde hace un tiempo dos nuevos output, uno para OpenLDAP, y otro para Postfix, con lo que usando de manera nativa estos dos plugins, podemos tener una monitorización muy detallada de nuestros entornos, de manera más eficiente.
Al terminar este Blog post podrás tener un Dashboard similar a este:
Como siempre, si lo desplegáis, por favor comentar por si hay que modificar algo.
Topología de la Infraestructura
Para los más despistados, os dejo la topología seguida en este diseño, en ella tenemos:
- El entorno Zimbra Collaboration en la izquierda de la imagen, con el agente de Telegraf que recopila información que le pasamos mediante scripts
- La base de datos InfluxDB donde se almacenan todas estas métricas que recibe desde Telegraf
- El Dashboard Grafana que muestra la información almacenada en InfluxDB
Script para recopilar información de Zimbra Collaboration
Para recopilar información de Zimbra Collaboration, en concreto la versión del mismo, he usado un script que tenéis en GitHub, y con él he modificado el output para que sea en formato InfluxDB.
Nos iremos, como usuario root, a /opt/zimbra/common/bin y descargaremos el fichero llamado checkzimbraversion.sh, tendremos que otorgarle permisos de ejecución:
chmod +x /opt/zimbra/common/bin/checkzimbraversion.sh
Configuración de Telegraf en los agentes Zimbra Collaboration
En los servidores de Zimbra Collaboration tendremos que instalar Telegraf, tienes todos los pasos en el siguiente Blog post, una vez tengamos Telegraf instalado, tendremos que configurar nuestros Scripts adicionales.
Recomiendo crear un fichero en la siguiente ruta /etc/telegraf.d/zimbra.conf y allí pegar todo lo que os dejo a continuación, así luce mi fichero con todo lo relacionado a monitorizar Zimbra y los demás para monitorizar el estado del servidor:
[[inputs.cpu]] percpu = true totalcpu = true fielddrop = ["time_*"] [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs"] [[inputs.diskio]] [[inputs.kernel]] [[inputs.mem]] [[inputs.processes]] [[inputs.swap]] [[inputs.system]] [[inputs.procstat]] exe = "memcached" prefix = "memcached" [[inputs.procstat]] exe = "java" prefix = "java" [[inputs.procstat]] exe = "mysqld" prefix = "mysqld" [[inputs.procstat]] exe = "slapd" prefix = "slapd" [[inputs.procstat]] exe = "nginx" prefix = "nginx" [[inputs.net]] [[inputs.exec]] commands = ["/opt/zimbra/common/bin/checkzimbraversion.sh"] name_override = "zimbra_stats" data_format = "value" data_type = "string
Monitorización de OpenLDAP con InfluxDB, Telegraf y Grafana
Además, como os mencionaba, queremos monitorizar OpenLDAP, para ello, tendremos que conocer la password del LDAP, que podemos encontrar ejecutando este comando como usuario zimbra desde SSH:
zmlocalconfig -s zimbra_ldap_password ldap_master_url
Ahora, en el fichero que hemos creado anteriormente /etc/telegraf.d/zimbra.conf, añadir al final lo siguiente:
[[inputs.openldap]] host = "TUFQDNDETUSERVERZIMBRA" port = 389 insecure_skip_verify = true bind_dn = "uid=zimbra,cn=admins,cn=zimbra" bind_password = "TULDAPPASSWORD" reverse_metric_names = true
Monitorización de las colas de Postfix con InfluxDB, Telegraf y Grafana
Además, como os mencionaba, queremos monitorizar Postfix también, las colas de correo, para ello, tendremos que conocer la ruta del spool, que en Zimbra se encuenta en la siguiente ruta – /opt/zimbra/data/postfix/spool si hacemos un ls podremos ver todas las colas:
ls -la /opt/zimbra/data/postfix/spool total 72 drwxr-xr-x 16 root root 4096 Sep 19 00:31 . drwxr-xr-x 4 postfix zimbra 4096 Sep 19 00:22 .. drwxr-s---+ 2 postfix telegraf 4096 Sep 22 22:50 active drwx------ 2 postfix root 4096 Sep 19 00:31 bounce drwx------ 2 postfix root 4096 Sep 19 00:31 corrupt drwx------ 18 postfix root 4096 Sep 20 14:20 defer drwxr-s---+ 18 postfix telegraf 4096 Sep 20 14:20 deferred drwx------ 2 postfix root 4096 Sep 19 00:31 flush drwxr-s---+ 2 postfix telegraf 4096 Sep 19 00:31 hold drwxr-s---+ 2 postfix telegraf 4096 Sep 22 22:50 incoming drwxrwx--- 2 postfix postdrop 12288 Sep 22 20:36 maildrop drwxr-xr-x 2 postfix root 4096 Sep 19 19:41 pid drwx------ 2 postfix root 4096 Sep 22 20:17 private drwx--x--- 2 postfix postdrop 4096 Sep 22 20:17 public drwx------ 2 postfix root 4096 Sep 19 00:31 saved drwx------ 2 postfix root 4096 Sep 19 00:31 trace
Ahora, en el fichero que hemos creado anteriormente /etc/telegraf.d/zimbra.conf, añadir al final lo siguiente:
[[inputs.postfix]]
queue_directory = "/opt/zimbra/data/postfix/spool"
interval = "1s"
Y como root, modificar lo siguiente para que telegraf tenga acceso a ellas:
sudo chgrp -R telegraf /opt/zimbra/data/postfix/spool/{active,hold,incoming,deferred}
sudo chmod -R g+rXs /opt/zimbra/data/postfix/spool/{active,hold,incoming,deferred}
sudo usermod -a -G postdrop telegraf
sudo chmod g+r /opt/zimbra/data/postfix/spool/maildrop
Una vez realizado esto, podremos realizar un reinicio del servicio:
service telegraf restart
Comprobando que estamos ingiriendo información con Chronograf
Lo normal a estas alturas, si hemos realizado bien todos los pasos, es que ya estemos mandando información recopilada por el script hacía InfluxDB, si realizamos una búsqueda usando el maravilloso Chronograf, podremos comprobar que tenemos información:
Todas las variables de estos dos outputs y el script se guardan o bien en zimbra_stats, o en postfix_queue o en openldap, con lo que es realmente sencillo encontrarlas.Importando el Dashboard en Grafana
Para haceros la vida más sencilla, os dejo el .json de Grafana ya listo para ser importado, podéis descargarlo desde aquí:
Quiero agradecer el trabajo de Lex Rivera, que es el creador del resto del Dashboard para las métricas de Linux, CPU, Disco, RAM, etc.
Los pasos para importarlos son los siguientes, irnos hasta nuestros Dashboards, y presionar Import:
Nos aparecerá la siguiente pantalla, y podremos o bien subir el fichero .json descargado, o bien introducir el ID del Dashboard de Zimbra: 2846, nos aparecerá automáticamente lo siguiente, seleccionamos nuestro datasource y le damos a Import.
Después de tan solo unos minutos ya podremos empezar a ver un Dashboard lleno de vida como es el siguiente:
Espero que os guste, y me gustaría dejaros la serie completa aquí, para que empecéis a jugar con los plugins que os he ido contando todos estos años:
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte I (Instalando InfluxDB, Telegraf y Grafana)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte II (Instalar agente Telegraf en Nodos remotos Linux)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte III Integración con PRTG
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IV (Instalar agente Telegraf en Nodos remotos Windows)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte V (Activar inputs específicos, Red, MySQL/MariaDB, Nginx)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VI (Monitorizando Veeam)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VII (Monitorizar vSphere)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VIII (Monitorizando Veeam con Enterprise Manager)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IX (Monitorizando Zimbra Collaboration)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte X (Grafana Plugins)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XI
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XII – Plugin nativo de Telegraf para vSphere
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIII – Veeam Backup for Microsoft Office 365
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIV – Veeam Availability Console
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XV – Monitorización IPMI de nuestros Hosts ESXi
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVI – Rendimiento y seguridad avanzada de Veeam Backup for Microsoft Office 365
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVII – Mostrando los Dashboards en dos monitores usando Raspberry Pi 4
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVIII – Monitorizar temperatura y estado de Raspberry Pi 4
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIX (Monitorizando Veeam con Enterprise Manager) Shell Script
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XX (Monitorizando Certificados SSL x.509)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXI (Monitorizando HTTP Responses)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXII (Monitorizando Cloudflare con Mapa)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIII (Monitorizando WordPress con Jetpack RESTful API)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIV (Monitorizando de Veeam for Microsoft Azure)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXV (Monitorizando Consumo Eléctrico)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVI (Monitorizando Veeam Backup for Nutanix)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVII (Monitorizando ReFS y XFS (block-cloning y reflink)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVIII (Monitorizando HPE StoreOnce)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIX (Monitorizando PiHole)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXX (Monitorizando Veeam Backup for AWS)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXI (Monitorizando Unifi Protect)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXII (Monitorizando Veeam ONE – experimental)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXIII (Monitorizando NetApp ONTAP)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXXIV (Monitorizando Goldshell Miners – JSONv2)


Saludos Jorge.
He realizado los pasos y me aparcen ya los plugins de zimbra en la base de telegraf, pero me aparece este error cuando trato de importar el archivo json .
Dashboard init failed
Template variables could not be initialized: Datasource named ${DS_INFLUXDB} was not found.
ya he creado el datatasource varias veces con distintos nombres y nada.
mi version de zimbra es la 8.8.12 , ubuntu 16
que estoy haciendo mal?
gracias por tu apoyo
Saludos, cuando lo importas tienes que seleccionar tu influx server
Hola! excelente tutorial! Tengo un problema, no me grafica las colas del postfix. verifiqué los permisos y nada. Agradecería algún tip 🙂 Muchas gracias!
Saludos Orlando,
Que versión de Zimbra tienes?
Hola Jorge!
De más comentarte que soy un seguidor adicto de tu contenido y agradezco que me dediques algo de tu tiempo dentro de tu seguramente complicada agenda.
Actualmente estoy usando 8.8.11 GA version OSE
Tengo corriendo en modo depuración el influxd y telegraph para ver si detecto algún problema y me llama la atención los siguiente logs:
– E! [inputs.postfix] Error in plugin: error scanning /opt/zimbra/data/postfix/spool/incoming: lstat /opt/zimbra/data/postfix/spool/incoming/27432.16484: no such file or directory
2019-10-04T09:26:04Z
– E! [inputs.postfix] Error in plugin: error scanning /opt/zimbra/data/postfix/spool/active: lstat /opt/zimbra/data/postfix/spool/active/843634A720A: no such file or directory
2019-10-04T09:32:24Z E! [inputs.postfix] Error in plugin: error scanning /opt/zimbra/data/postfix/spool/incoming: lstat /opt/zimbra/data/postfix/spool/incoming/978453.16484: no such file or directory
accedí al directorio /opt/zimbra/data/postfix/spool/ y veo las colas antes mencionadas en el error pero sin ficheros.
captura del grafana:
https://ibb.co/5LNnKXG
Saludos y abrazos cordiales colega!
Saludos,
Ohh, tengo que mirar los paths para 8.7.x, luego lo corrijo 🙂
un saludo
Que tal Jorge, gracias por tu aporte tengo un problema con mi dashboard de Zimbra actualmente no me trae la información de la cola postfix que puede ser?
Buenas Tardes Jorge, un gusto en saludarte
Tengo un problema con una cuenta de correo en zimbra el cual radica es que no me permite enviar correo entre las cuentas de correo interna ni correo externo. Sin embargo si puedo recibir correo externo. A continuación se envié el error que siempre envía al correo :
host 127.0.0.1[127.0.0.1] said: 451 4.7.1 id=16525-01 –
Temporary MTA failure on relaying, from MTA(smtp:[127.0.0.1]:10030): 451
4.7.1 Service unavailable – try again later (in reply to end of DATA
command)
A la espera de tu comentarios
María Alejandra Moreno
Saludos,
Usas dnsmasq para tu dominio interno como recomienda Zimbra?
un saludo
Hola,
Queiro saber si puedo usar ese tutorial para zimbra 8.6.0?
Saludos!
Saludos Ethar,
Deberia funcionar, pero pruebalo y dime si no es asi
Hey Jorge, great job with this. So I can get the system stats to work, but I cant “Zimbra Collaboration” status to work, everything shows as N/A, I followed every step in your tutorials and even made sure telegraf had permissions to the postfix directory, any help would be very welcomed.
Ei Jorge, ótimo trabalho com isso. Para que as estatísticas do sistema funcionem, mas não consigo o status “Zimbra Collaboration”, tudo aparece como N / A, segui todas as etapas dos seus tutoriais e até verifiquei se o telegraf tinha permissões para o diretório postfix, qualquer ajuda seja muito bem-vindo. – Google translate sorry
Not show zimbra data query in zimbra 8.8.15
Hello,
Please download the latest dashboard – https://grafana.com/grafana/dashboards/2846
Hola Jorge, quiero agradecerte por compartirnos tus conocimientos y también preguntarte si InfluxDB, Telegraf y Grafana son open source. Actualmente uso Zimbra Open Source Edition 8.8.15 p1
Saludos Mile,
Gracias por comentar, si, todo gratis y libre, open source.
Un saludo
Hola Jorge, me preguntaba si este dashboard y sus instrucciones tienen algun update ahora que ya es febrero 2022. Especialmente para el zimbra 8.8.15 y el 9.x
Saludos,
Saludos, no lo he tocado en meses, pero la ultima vez usaba el postfix y el plugin de openldap, deberia funcionar.
A ver si me pongo a ello y lo actualizo, creo que leyendo los csv que guarda zimbra
Hola Jorge, gracias por el aporte y lo detallado
Actualmente conecto telegraf con un host externo que es el que tiene influxdb_v2 y Grafana.
Puedo ver que influxdb recolecta datos y Grafana a su vez de influxdb, pero no me carga contenido en el dashboard que descargue
Mi duda es si el dashboard esta pensado para Flux o InfluxQL , porque todo esta conectado mediante bucket y token
Gracias!
Saludos, este en concreto para InfluxQL, saludos
Hola jorge,
se que el tema tiene varios años, estoy queriendo implementar con zimbra 8.8.15 ultimo parche peropareciera no funcionar, ni siquiera la version me trae solo los datos de host.
debo modificar algunos parametros o ya esta obsoleto esta funcion.
que deberia utilizar para monitorear zimbra y rafana, gacias y saludos.
Buenas tardes Jorge,
un gusto volver a saludarte, con respecto a la conexión con Zimbra, tienes implementado sobre influxdb 2.0? es la versión que tengo actualmente y veo que lo realizado es sobre la 1.0.
Saludos, quedo a espera de tu respuesta, muchas gracias
Álvaro