Tips & Best Practices

Panduan praktis untuk operasional server ujian yang lancar.

Persiapan Sebelum Ujian

H-7: Persiapan Server

  • Jalankan examtool status — pastikan semua hijau
  • Jalankan examtool update — update ke versi terbaru
  • Cek SSL certificate belum expired
  • Cek disk space tersedia minimal 20% free
  • Pastikan backup database terjadwal

H-1: Uji Coba

  • Test akses dari 2-3 PC di lab ujian
  • Test login peserta dan dosen
  • Test SEB (jika digunakan) dari PC lab
  • Cek koneksi internet/intranet stabil
  • Siapkan nomor kontak tim pengelola pusat
  • Catat IP server dan kredensial di tempat aman

H-0: Hari Ujian

  • Restart semua service 30 menit sebelum ujian
  • Monitor examtool status selama ujian
  • Siapkan akses SSH untuk troubleshooting darurat
  • Jangan jalankan update/backup selama ujian berlangsung

Sizing yang Tepat

Pemilihan tier yang tepat sangat penting:

Jumlah PC Tier RAM Minimum CPU Minimum
1-100 SMALL 4 GB 2 core
101-250 MEDIUM 8 GB 4 core
251-500 LARGE 16 GB 8 core

Tips:

  • Hitung jumlah PC fisik + 10-20% cadangan
  • Lebih baik over-provision daripada under-provision
  • Jika ragu antara dua tier, pilih tier yang lebih tinggi

Keamanan

Password

  • Gunakan password minimal 12 karakter
  • Kombinasi huruf besar, kecil, angka
  • Jangan gunakan password yang sama untuk server lain
  • Ganti password secara berkala (minimal per semester)
  • Simpan password di password manager, bukan di sticky note

SSH

  • Gunakan SSH key authentication jika memungkinkan
  • Ganti port SSH default (22) ke port lain
  • Batasi akses SSH hanya dari IP admin:
    ufw delete allow 22/tcp
    ufw allow from 192.168.1.0/24 to any port 22
    

Firewall

  • Jangan buka port yang tidak diperlukan
  • Review ufw status secara berkala
  • Di jaringan lab, gunakan VLAN terpisah untuk ujian

File .env

  • File .env berisi kredensial sensitif
  • Jangan share file .env via email/chat
  • Jangan commit file .env ke git
  • Permission harus 0600: chmod 600 /etc/examtool.env

Backup

Rutin

# Backup database harian (crontab)
0 2 * * * /usr/local/bin/examtool backup-db

Sebelum Update

Selalu backup sebelum menjalankan update:

examtool backup-db
examtool update

Verifikasi Backup

Sesekali test restore ke server lain untuk memastikan backup valid:

# Di server test
examtool restore-db --file=/path/to/backup.sql.gz

Retensi

  • Simpan backup minimal 30 hari
  • Backup sebelum ujian penting: simpan lebih lama
  • Pindahkan backup ke storage external secara berkala

Monitoring

Cek Rutin (Harian)

# Quick health check
examtool status

Yang Perlu Diperhatikan

  • Disk usage > 80%: Bersihkan log lama, backup lama
  • Swap usage > 50%: Server butuh lebih banyak RAM
  • Memcached hit ratio < 80%: Cek konfigurasi cache
  • Error log banyak: Investigasi sebelum ujian
  • SSL expiry < 30 hari: Segera perpanjang certificate

Log Rotation

Log otomatis di-rotate oleh logrotate. Jika disk penuh karena log:

# Cek ukuran log
du -sh /var/log/nginx/ /var/log/mysql/ /var/log/php*/

# Bersihkan log lama manual
find /var/log/ -name "*.gz" -mtime +30 -delete

Update & Maintenance

Jadwal Update

  • Aplikasi (examtool update): Setiap ada notifikasi dari tim pusat
  • Script (examtool self-update): Setiap ada versi baru
  • OS (apt update && apt upgrade): Bulanan, di luar jadwal ujian
  • SSL Certificate: Sebelum expired

Window Maintenance

  • Lakukan update di luar jam ujian
  • Idealnya hari Sabtu/Minggu atau malam hari
  • Informasikan ke pengguna jika ada downtime

Rollback

Jika update bermasalah:

# Aplikasi: rollback git
cd /var/www/ujian && git checkout <commit-sebelumnya>

# Database: restore backup
examtool restore-db --file=/var/backups/examtool/backup_terbaru.sql.gz

# Script: download versi lama
# Hubungi tim pengelola pusat

Jaringan Lab Ujian

Topologi Ideal

Internet → Router → Switch Utama → Server Ujian
                         │
                    Switch Lab → PC 1..N

Rekomendasi

  • Server dan PC lab di VLAN yang sama (atau routing cepat)
  • Bandwidth minimal 100 Mbps antara server dan switch lab
  • Gunakan kabel ethernet, bukan WiFi untuk PC ujian
  • Siapkan spare switch dan kabel

DNS Internal

examtool menginstall DNSMasq untuk resolve domain dari LAN. Pastikan PC lab menggunakan IP server sebagai DNS server, atau tambahkan entry di hosts file masing-masing PC.