How do I monitor Zimbra server with Grafana and InfluxDB?. This monitoring has bee done on an all in one Zimbra server deployment, but the setup is similar for other Zimbra installations. We assume you have already installed Zimbra Server or any other version before proceeding. If not, check Zimbra guides:

Install Zimbra Collaboration on Ubuntu 18.04 LTS

“If you are irritated by every rub, how will your mirror be polished?” 
 Rumi

Step One: Install InfluxDB

Install InfluxDB using our guides below.

Install InfluxDB on Ubuntu 18.04 and Debian 9

Install InfluxDB on CentOS 7

Step Two: Configure influxdb

Open influxdb configuration file.

sudo vim /etc/influxdb/influxdb.conf

Set like below:

# Uncomment line 15
bind-address = "127.0.0.1:8088"
# On line 247 under http, uncomment it if you need http authentication
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# On line 256, make sure that:
bind-address = ":8086"

Enable ports on firewall

# CentOS 7
sudo firewall-cmd --add-port=8086/tcp --permanent
sudo firewall-cmd --reload

# Ubuntu
sudo ufw allow 8086/tcp

Step Three: Install Telegraf

Since the repository has been added already, just install telegraf

# CentOS
sudo yum -y install telegraf

# Ubuntu
sudo apt-get -y install telegraf

Follow this article covering installation of Telegraph on RHEL 8/ Centos 8:

Install and Configure Telegraf on RHEL 8 / CentOS 8

A comprehensive guide on how to install Telegraph on Centos 7 is on our blog. Visit:

Monitor Linux System with Grafana and Telegraf

Step Four: Configure Telegraf

Use your favorite text editor to modify Telegraf configuration file.

sudo vim /etc/telegraf/telegraf.conf

Set to look like this:

[global_tags]
# Configuration for telegraf agent
[agent]
interval = "10s"
debug = false
hostname = "server-hostname"
round_interval = true
flush_interval = "10s"
flush_jitter = "0s"
collection_jitter = "0s"
metric_batch_size = 1000
metric_buffer_limit = 10000
quiet = false
logfile = ""
omit_hostname = false
###########################################################
# OUTPUTS #
###########################################################
[[outputs.influxdb]]
urls = ["http://influxdb-ip:8086"] # Input valid InfluxDB URL, IP address, and port
database = "database-name" # Input InfluxDB database name for this host
timeout = "0s"
username = "auth-username" # Input InfluxDB http authentication username.
password = "auth-password" # Input InfluxDB http authentication password.
retention_policy = ""
##########################################################
# INPUTS #
##########################################################
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
[[inputs.io]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]
## Add the following for Zimbra Specific statistics..
[[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.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"

Download the Perl script to collect information from Zimbra Collaboration:

curl -sL https://raw.githubusercontent.com/jorgedlcruz/zimbra-grafana/master/zimbra_pflogsumm.pl | sudo tee /opt/zimbra/common/bin/zimbra_pflogsumm.pl
chmod +rwxr+xr+x /opt/zimbra/common/bin/zimbra_pflogsumm.pl

You can prove that it returns content to you and that the telegra user can run it by launching:

sudo -u telegraf /opt/zimbra/common/bin/zimbra_pflogsumm.pl /var/log/zimbra.log

Once done, restart telegraf service

sudo systemctl restart telegraf

Step Five: Install Grafana

Install Grafana server on your server:

Install Grafana on CentOS 7

How to Install Grafana on Ubuntu 18.04

The default HTTP port is 3000, and default user and group is admin.

Add the port to firewall..

# CentOS 7
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

# Ubuntu
sudo ufw allow 3000/tcp

Once done, head over to http://ip-address:3000

Username: admin
Password: admin

Reset the password after initial login.

Step Six: Import Data Sources

Login to Grafana and Add InfluxDB data source

Click on InfluxDB

On the above screen, input any name and on the InfluxDB Details, input the database as specified in telegraf.conf file, and username and password as well from the same file.

Yous should see a message in green as shown above. After that is done, we can import a dashboard. This dashboard was created by Jorge de la Cruz (jorgedelacruz.es) and all credit goes to him.

Head over to Here to view it. Otherwise, you can just put 2846 as the dashboard id and click on load.

You should see a dashboard as shown below:

Thank you guys for following through. You can check other helpful and resourceful articles and guides with links below:

Monitoring Ceph Cluster with Prometheus and Grafana

How to Monitor Linux Server Performance with Prometheus and Grafana in 5 minutes

How to Monitor Apache Web Server with Prometheus and Grafana in 5 minutes