Memulai dengan Cockpit
Cockpit bertindak sebagai panel kontrol terpusat untuk semua mesin virtual dan server Anda. Sebelum mulai memasangnya, penting untuk memahami bagaimana komponen-komponen di dalamnya saling berkomunikasi dan spesifikasi perangkat keras apa saja yang Anda butuhkan.
Kamus Istilah (Jargon Buster) 📖
Dunia virtualisasi memiliki banyak istilah teknis yang rumit. Berikut adalah penjelasan sederhananya dalam bahasa sehari-hari:
💡 Penjelasan Istilah
- Hypervisor: Komputer fisik yang menjalankan perangkat lunak khusus agar dapat menjalankan beberapa komputer virtual (Virtual Machines atau VM) secara bersamaan.
- REST API: Cara komunikasi sistem. Bayangkan seperti menu makanan di restoran: browser web Anda memesan tindakan tertentu (seperti "nyalakan VM #2"), lalu server akan mengirimkan hasilnya.
- WebSocket: Koneksi dua arah yang terus terbuka secara langsung. Alih-alih browser Anda terus-menerus bertanya tiap detik "Apakah backup sudah selesai?" (yang disebut polling), server akan tetap membuka jalur komunikasi dan membisikkan pembaruan saat itu juga terjadi.
- Advisory Lock (Kunci Pengaman): Kesepakatan digital di dalam database yang berfungsi seperti "tongkat bicara" dalam rapat kelompok. Hanya server yang memegang tongkat tersebut yang boleh memberikan instruksi ke server Vapor tertentu, untuk menghindari instruksi ganda atau bentrokan perintah.
pg_notify: Sistem interkom bawaan di dalam database. Ketika satu server Cockpit menerima pembaruan (misalnya VM baru menyala), ia menggunakan interkom ini untuk memberi tahu semua server Cockpit lainnya dalam sekejap.
Bagaimana Cockpit Berkomunikasi (Arsitektur)
Cockpit berada di tengah-tengah antara Anda (administrator) dan server fisik yang menjalankan mesin virtual Anda (host Vapor).
Cockpit menggunakan arsitektur dua tingkat (dua lapisan struktur):
- Downstream (Cockpit ke Vapor): Cockpit berbicara dengan server fisik yang menjalankan Vapor. Ia terhubung ke server tersebut untuk menarik informasi perangkat keras, memeriksa status VM, dan menerima statistik kinerja secara langsung.
- Upstream (Klien ke Cockpit): Browser web Anda terhubung ke Cockpit. Cockpit memeriksa siapa Anda (kredensial login), memverifikasi apa saja yang boleh Anda lakukan (hak akses), dan menampilkan halaman dashboard terpadu.
┌────────────────────────────────┐
│ Cockpit Web UI │
│ (Apa yang Anda lihat di web) │
└──────────────┬─────────────────┘
│
▼ (REST / WebSockets - Komunikasi langsung)
┌────────────────────────────────┐
│ Cockpit API Gateway │
│ (Otak Pusat / Koordinator) │
└──────────────┬─────────────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Vapor Host 1 │ │ Vapor Host 2 │ │ Vapor Host 3 │
│ (Server Fisik) │ │ (Server Fisik) │ │ (Server Fisik) │
└─────────────────┘ └─────────────────┘ └─────────────────┘Komponen Infrastruktur Utama
Di balik layar, Cockpit menggunakan beberapa program pembantu agar semuanya tetap sinkron:
- Collector Service (Layanan Pengumpul): Pekerja latar belakang di Cockpit yang bertindak sebagai manajer lapangan. Tugasnya adalah terus berkomunikasi dengan server Vapor dan mencatat apa saja yang mereka lakukan ke dalam database Cockpit.
- PostgreSQL Database: Pusat penyimpanan data. Database ini menyimpan semua informasi: akun pengguna, siapa saja yang boleh menekan tombol tertentu, dan daftar server fisik yang terdaftar.
- PostgreSQL Advisory Locks (Pembagian Beban Kerja): Jika Anda menjalankan beberapa server Cockpit untuk keandalan (ketersediaan tinggi), mereka mungkin berebut untuk mengelola server Vapor yang sama. Untuk mencegah hal ini, mereka berebut "kunci pengaman" (advisory lock) di dalam database. Pemenangnya akan mengelola server Vapor tersebut; jika pemenang tersebut mati, kunci akan dilepas dan server Cockpit lain akan langsung menggantikannya.
- WebSocket Event Hub (Penyiar Real-time): Ketika sebuah mesin virtual menyala atau mati, hub ini akan menyiarkan kejadian tersebut ke browser Anda agar Anda dapat langsung melihat perubahan statusnya di layar tanpa perlu me-refresh halaman. Jika Anda memiliki beberapa server Cockpit, mereka menggunakan interkom database
pg_notifyagar semua administrator melihat informasi yang sama, tidak peduli ke server Cockpit mana browser mereka terhubung.
Persyaratan Sistem
Pastikan perangkat keras Anda memenuhi persyaratan minimum berikut sebelum menginstal Cockpit:
| Komponen | Spesifikasi Minimum | Spesifikasi yang Disarankan | Mengapa ini dibutuhkan? |
|---|---|---|---|
| CPU Cores | 2 vCPUs | 4+ vCPUs | Untuk memproses data metrik yang masuk dan mengelola koneksi server. |
| System RAM | 4 GB | 8+ GB | Untuk menangani koneksi WebSocket aktif dari admin dan menjalankan pekerja latar belakang. |
| Storage | 20 GB (SSD disarankan) | 50+ GB | Menyimpan catatan database, log audit keamanan, dan log sistem. |
| Database | PostgreSQL 15 ke atas | Clustered PostgreSQL (Patroni) | Tempat semua pengaturan dan status sistem disimpan. |
| Network | 1 Gbps NIC | 10 Gbps jaringan khusus | Sangat penting untuk kecepatan transfer data dan memindahkan VM antar server. |
| Vapor Nodes | Vapor 1.0.0 ke atas | Konfigurasi HTTPS dengan sertifikat valid | Server fisik yang ingin Anda kelola melalui Cockpit. |