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
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:
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