Panduan System Admin Carbonio (Versi Ringkas)

Catatan singkat hasil belajar saya selama proses training dan praktik di lapangan. Bukan dokumentasi lengkap, tapi inti yang bisa dipakai sehari-hari.

Arsitektur singkat

Carbonio terdiri dari beberapa role utama yang bisa dipasang di satu server atau dipisah di multi-node:

  • Mailbox: tempat data email disimpan, sisi Java/Jetty
  • MTA: Postfix untuk kirim dan terima email, plus Amavis dan ClamAV
  • Proxy: nginx untuk handle koneksi user (HTTPS, IMAPS, POP3S)
  • Directory Server: OpenLDAP untuk identitas dan konfigurasi
  • Consul: service discovery dan health check

Service-service ini saling tergantung. Di multi-node, urutan startup dan restart penting.

Service management

Semua operasi dijalankan sebagai user zextras:

su - zextras
# Cek status semua service di node ini
zmcontrol status

# Restart semua service (handle dependency otomatis)
zmcontrol restart

# Start atau stop semua
zmcontrol start
zmcontrol stop

# Cek versi Carbonio
zmcontrol -v

# Info core dan environment
carbonio core core-info

Untuk service systemd modern Carbonio (untuk carbonio terbaru memerlukan kontrol melalui systemd):

systemctl status carbonio-*
systemctl restart carbonio-mailbox

pending-setups wajib di-cek setelah upgrade atau install komponen baru. Kalau ada langkah setup yang belum selesai, command ini akan ngasih tau.

Manajemen akun

Lewat CLI carbonio prov (versi baru) atau zmprov (warisan Zimbra, masih jalan):

# Masuk ke shell interaktif prov
su - zextras -c "carbonio prov"

# Buat akun baru
su - zextras -c "carbonio prov ca user@domain.com password123 displayName 'Nama User'"

# Reset password
su - zextras -c "carbonio prov sp user@domain.com newpassword"

# Lihat info akun
su - zextras -c "carbonio prov ga user@domain.com"

# List semua akun di domain
su - zextras -c "carbonio prov -l gaa domain.com"

# Delete akun
su - zextras -c "carbonio prov da user@domain.com"

Untuk domain dan COS (Class of Service), command-nya cd, gd, cc, gc. Detail lengkapnya bisa di-cek dengan help di dalam shell prov.

Log dan troubleshooting

Lokasi log utama:

  • /opt/zextras/log/mailbox.log: aktivitas mailbox (IMAP, POP3, autentikasi, index)
  • /opt/zextras/log/audit.log: autentikasi
  • /var/log/carbonio.log: MTA, Postfix, Amavis, ClamAV via syslog
  • /var/log/mail.log: Postfix langsung
  • journalctl -u carbonio-*: service systemd

Pola umum troubleshooting:

# Cari error di mailbox.log
grep -iE "error|fatal|exception" /opt/zextras/log/mailbox.log | tail -50

# Tail log realtime
tail -f /opt/zextras/log/mailbox.log

# Liat log dalam rentang waktu tertentu
journalctl -u carbonio-mailbox --since "2 hours ago"

# Debug per-user tanpa restart mailbox
su - zextras -c "zmprov addAccountLogger user@domain.com zimbra.imap debug"

Frasa “caused by” di stack trace biasanya pointer ke root cause.

Backup

Yang wajib di-backup:

  • /opt/zextras/ untuk data utama Carbonio (mailbox blob, config, LDAP)
  • Database MariaDB (metadata mailbox)
  • LDAP dump untuk recovery cepat tanpa restore filesystem penuh
  • Konfigurasi system di /etc/

Carbonio Enterprise punya backup native. Untuk Community Edition, strategi umum: snapshot di hypervisor, atau Proxmox Backup Server di level VM, plus dump LDAP berkala via slapcat atau equivalent.

Cek harian

Rutinitas pagi yang saya biasakan:

bash

# Status semua service
su - zextras -c "zmcontrol status"

# Mail queue (deferred message di Postfix)
su - zextras -c "mailq | tail"

# Disk usage partisi data
df -h /opt/zextras

# Pending setups
pending-setups

# Liat ada antrian yang stuck
su - zextras -c "postqueue -p | tail"

Mail queue yang menumpuk biasanya pertanda ada masalah delivery, baik dari sisi DNS, antivirus stuck, atau penerima yang menolak.

Penutup

Panduan ini cuma scratching the surface. Tiap deployment Carbonio punya konteks sendiri, jadi sesuaikan sama topologi yang kalian punya. Tapi untuk operasi harian, command-command di atas udah cover sebagian besar kebutuhan.

Sampai jumpa di catatan berikutnya.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *