Saludos amigos, la serie sobre Grafana, InfluxDB y Telegraf continua, y hoy lo hago con una de esas entradas que le tienes especial cariño, se trata de cómo monitorizar un entorno de Zimbra Collaboration, este dashboard es una versión muy temprana, v0.1 incluso. No he podido probarlo en una gran MTA con miles de correos, por lo que vuestro feedback es siempre bienvenido.
Al terminar este Blog post podrás tener un Dashboard similar a este:
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 recopiular información de las colas de correo de Zimbra Collaboration, así como calcular mensajes enviados, etc, he usado el propio pflogsumm, y con él he modificado el output para que sea en formato InfluxDB.
Podéis descargar el script desde aquí y ubicarlo en la siguiente ruta, yo le he llamado zimbra_pflogsumm.pl
/opt/zimbra/common/bin/zimbra_pflogsumm.pl
Podéis probar que os devuelve contenido, y que el usuario telegraf puede ejecutarlo lanzando:
sudo -u telegraf /opt/zimbra/common/bin/zimbra_pflogsumm.pl /var/log/zimbra.log
Si todo ha ido bien podréis ver un resultado similar a este, pero con vuestros números por supuesto:
zimbra-stats received=76 zimbra-stats delivered=327 zimbra-stats forwarded=0 zimbra-stats deferred=1 zimbra-stats bounced=5 zimbra-stats rejected=6 zimbra-stats reject_warnings=0 zimbra-stats held=0 zimbra-stats discarded=0 zimbra-stats bytes_received=11889 zimbra-stats bytes_delivered=32229 zimbra-stats senders=7 zimbra-stats sending_hosts_domains=5 zimbra-stats recipients=73 zimbra-stats recipient_hosts_domains=6
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 al final del fichero, así luce mi parte al final los Scripts de Zimbra y los demás para monitorizar el estado del servidor:
# Read metrics about cpu usage [[inputs.cpu]] ## Whether to report per-cpu stats or not percpu = true ## Whether to report total system cpu stats or not totalcpu = true ## Comment this line if you want the raw CPU time metrics fielddrop = ["time_*"] # Read metrics about disk usage by mount point [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs"] # Read metrics about disk IO by device [[inputs.diskio]] # Get kernel statistics from /proc/stat [[inputs.kernel]] # Read metrics about memory usage [[inputs.mem]] # Get the number of processes and group them by status [[inputs.processes]] # Read metrics about swap memory usage [[inputs.swap]] # Read metrics about system load & uptime [[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/zimbra_pflogsumm.pl -d today /var/log/zimbra.log"] name_override = "zimbra_stats" data_format = "influx" [[inputs.exec]] commands = ["sed 's/........................//' /opt/zimbra/jetty/webapps/zimbra/downloads/.git/HEAD"] name_override = "zimbra_stats" data_format = "value" data_type = "string"
Una vez realizado esto, podremos realizar un reinicio del servicio:
service telegraf restart
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:
Nada más amigos, espero que os guste, y me gustaría dejaros la serie completa aquí:
- 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



Muchas gracias, por todos tus aportes. En este caso tengo el siguiente error “error parsing query: expected field argument in difference()” en todos los valores que se optienen de Zimbra.
Saludos Oscar,
Umh, puedes hacer mas debugging, quiza en el telegraf.log ? Un saludo
Hola
Un saludo
y agradecerte pues tus publicaciones me han servido de mucho.
tengo problemas al jecutar esto
sudo -u telegraf /opt/zimbra/common/bin/zimbra_pflogsumm.pl /var/log/zimbra.log
sudo: /opt/zimbra/common/bin/zimbra_pflogsumm.pl: command not found
me he descargado el archivo modificado por ti
cuando ejeculo el pflogsumm.pl original me trae resultados pero no tienen el formato correcto
Saludos John,
Mira a ver que el fichero no se llame zimbra-pflogsumm.pl en mi github tengo zimbra_pflogsumm.pl pero no se quiza sea el nombre, chequea a ver.
Un saludo
He chequeado un par de veces ya. Lo he elminado y lo descargo nuevamente.
Cuando ejecuto hago esto:
chmod +x /opt/zimbra/common/bin/zimbra_pflogsumm.pl
entonces el error es este:
[root@correo bin]# sudo -u telegraf /opt/zimbra/common/bin/zimbra_pflogsumm.pl
/opt/zimbra/common/bin/zimbra_pflogsumm.pl: line 7: syntax error near unexpected token `newline’
/opt/zimbra/common/bin/zimbra_pflogsumm.pl: line 7: `’
Saludo
En /opt/zimbra tengo la el directorio bin pero no common.
Funciona si el script lo guardo alli?
si, puedes guardarlo donde desees 🙂 Un saludo!
Hola Jorge. Ha sido muy útil el artículo.
Solo tengo un problema, y es que al seleccionar rangos de tiempo distintos, como una semana o el mes anterior, algunos valores aparecen negativos. Algo que pueda ajustar??
Saludos.
Saludos Diego,
Tengo que darle una revision a este dashboard y a su script, no tengo Zimbra, tendre que descargar e instalarlo. Te ire comentando.
Buen día Jorge, antes que nada agradezco todos tus aportes que me han sido de gran utilidad, quería ver si podías ayudarme con algo. Recientemente actualice la versión de mi servidor zimbra a la 8.8.15 y en el campo de ZCS version no está tomando los datos aparecen números y letras, anteriormente con la versión 8.8.12 si la mostraba.
Agradezco tu pronta respuesta
Saludos,
Saludos Maykol,
Tengo que revisarlo, y actualizar este procedimiento de todas formas.
Un saludo
Que tal Jorge, problema resuelto el archivo checkzimbraversion.sh había desparecido después de actualizar el servidor Zimbra, volví a colocarlo y todo quedó funcionando correctamente gracias por la atención.
Hoa Jorge, tus aportes me han ayudado mucho, te agradezco que comprtas con nosotros tus conocimentos.
quiero monitorizar zimbra , pero no encuntro tu escrip zimbra_pflogsumm.pl el link esta roto y dice que no existe, podrias volverlo a comprtir?.
Muchas gracias y saludos.
Saludos, ya no se usa ese script, tengo un nuevo post sobre esto – https://www.jorgedelacruz.es/2019/09/23/en-busca-del-dashboard-perfecto-influxdb-telegraf-y-grafana-parte-xix-monitorizando-zimbra-collaboration-usando-output-oficiales/
Un saludo