Grafana dapat digunakan untuk melakukan monitoring Zimbra server. Hasil monitoring ditampilkan secara visual melalui Grafana Dashboard. Kombinasi Grafana + InfluxDB + Telegraf dapat menampilkan key value pada Zimbra. Artikel ini dibagi menjadi 3 bagian yaitu Instalasi InfluxDB, Telegraf, dan Grafana Dashboard.
Install Influx DB
- Masukkan repository resmi InfluxDB
$ echo “deb https://repos.influxdata.com/ubuntu focal stable” | sudo tee etc/apt/sources.list.d/influxdb.list<br>$ sudo curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
- Update packages lalu install InfluxDB
$ sudo apt update && sudo apt install influxdb
- enable influxdb as service
$ sudo systemctl enable --now influxdb
- edit configuration file
$ sudo nano /etc/influxdb/influxdb.conf
- Uncomment baris ke-15
- Mulai baris 247 sampai baris 256 uncomment bagian ini
[http]
enabled = true
bind-address = “:8086”
- Buat user dan password untuk akses InfluxDB
$ curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER admin WITH PASSWORD 'M4s4dm1n' WITH ALL PRIVILEGES"
- Tes akses ke InfluxDB
$ curl -G http://localhost:8086/query -u admin:StrongPassword —-data-urlencode “q=SHOW DATABASES”
Instalasi Telegraf pada Zimbra Server
- Langkah kedua adalah instalasi pada Zimbra Server, lakukan SSH ke dalam Zimbra Server untuk memulai proses instalasi.
- Telegraf sudah terdapat pada repository resmi Ubuntu, install dengan menggunakan command
apt-get install
$ sudo apt install telegraf
- Edit konfigurasi dengan menggunakan command
$ sudo nano /etc/telegraf/telegraf.conf
[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 = ""
- Buat file konfigurasi untuk zimbra
$ sudo nano /etc/telegraf.d/zimbra.conf
# Read metrics about cpu usage
[[inputs.cpu]]
percpu = true
totalcpu = true
fielddrop = ["time_*"]
# Read metrics about disk usage by mount point
[[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"
# # OpenLDAP cn=Monitor plugin
# # As zimbra user run the next to obatin the password zmlocalconfig -s zimbra_ldap_password ldap_master_url
[[inputs.openldap]]
host = "YOURZIMBRASERVERHOSTNAME"
port = 389
insecure_skip_verify = true
bind_dn = "uid=zimbra,cn=admins,cn=zimbra"
bind_password = "YOURZIMBRALDAPPASSWORD"
reverse_metric_names = true
[[inputs.postfix]]
queue_directory = "/opt/zimbra/data/postfix/spool"
interval = "1s"
- Buat script
checkzimbraversion.sh
$ sudo nano /opt/zimbra/common/bin/checkzimbraversion.sh
#!/bin/bash
if [ -f /etc/redhat-release ]; then
rpm -q --queryformat "%{version}" zimbra-core | awk -F. '{print $1"."$2"."$3 }' | awk -F_ '{print $1" "$2 }'
fi
if [ -f /etc/lsb-release ]; then
dpkg -s zimbra-core | awk -F"[ ',]+" '/Version:/{print $2}' | awk -F. '{print $1"."$2"."$3" "$4}'
fi
- Buat script menjadi executable
$ sudo chmod a+x /opt/zimbra/common/bin/checkzimbraversion.sh
- Set permission supaya
zimbra stats
dapat dibaca oleh telegraf
$ 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
- Restart service Telegraf
$ sudo systemctl restart telegraf
Instalasi Grafana Dashboard
- Langkah terakhir adalah instalasi dan konfigurasi Grafana Dashboard pada Monitoring Server
- Instalasi dependensi dan Masukkan repository Grafana Dashboard
$ sudo apt install -y gnupg2 curl software-properties-common
$ curl -fsSL https://packages.grafana.com/gpg.key|sudo gpg --dearmor -o /
> /etc/apt/trusted.gpg.d/grafana.gpg
$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
- Update dan install Grafana lalu enable as service
$ sudo apt update && sudo apt install grafana -y
$ sudo systemctl enable --now grafana-server
- Akses Grafana melalui web browser default login adalah
admin:admin
- Siapkan password baru, karena langsung ganti password saat pertama login.
- Setelah login, mulai hubungkan Zimbra ke Grafana. Klik icon Setting > Configuration
- Klik
Add data source
pada laman ini :
- Klik Influx DB pada tampilan ini :
- Ubah parameter di bawah ini
Name bebas
URL isi dengan IP Address dan port Influx DB
- Input parameter database seperti di bawah ini, lalu klik
save & exit
di pojok kanan atas
Jika berhasil akan muncul pesan
datasource is working
- Masuk ke laman import dashboard melalui menu bar sebelah kiri atas.
- Pada field ini, ketik 2846 untuk mencari Dashboard untuk Zimbra
- Pilih
Zimbra-Data
yang tadi telah dibuat lalu klikImport
- Tampilan dashboard awal adalah seperti ini
- Untuk parameter yang masih N/A, klik pada judul parameter, klik
edit
- Periksa pada
Value Options
sebelah kiri tampilan, lalu pilih dari dropdown pada bagianFields
lalu klikApply
- Lakukan langkah yang sama pada setiap parameter yang masih bernilai
N/A
- Tampilan Dashboard Zimbra
Dengan Dashboard Grafana, SySAdmin / Blue Team dapat memantau Zimbra secara real time. Sehingga jika ada akun yang menjadi zombie dan menyebarkan Spam, bisa langsung terdeteksi dan ditangani
Sumber :
Monitor Zimbra Server with Grafana, Influxdb and Telegraf | ComputingForGeeks