Latar Belakang
Sebagai lanjutan dari pembahasan mengenai jenis-jenis data pada SNMP Collector, tahap berikutnya adalah mempelajari implementasi SNMP Collector dalam sistem monitoring. Setelah memahami konsep dan arsitekturnya, penting untuk mengetahui bagaimana proses pengumpulan data tersebut benar-benar diterapkan dalam sebuah aplikasi.
Artikel ini dibuat dengan tujuan untuk mendokumentasikan hasil pembelajaran saya mengenai implementasi SNMP Collector menggunakan protokol Simple Network Management Protocol. Dengan memahami tahap ini, saya dapat melihat bagaimana teori yang telah dipelajari sebelumnya dapat diwujudkan dalam bentuk sistem yang berjalan.
Menyiapkan Software untuk SNMP
Langkah pertama yang perlu kita lakukan adalah memastikan semua perangkat lunak sudah terpasang dengan benar.
- Pastikan web server sudah berjalan
- Coba buka browser dan akses alamat http://localhost
- Jika muncul halaman awal, berarti web server sudah berjalan normal
Selanjutnya, kita perlu mengaktifkan ekstensi SNMP di PHP.
- Buka folder tempat PHP terpasang
- Cari file bernama php.ini
- Lalu buka dengan Notepad
- Cari baris yang bertuliskan ;extension=snmp
- Kemudian hapus tanda titik koma di depannya
- Simpan file tersebut
- Restart web server Anda
Langkah ini penting karena secara bawaan, fitur SNMP di PHP belum aktif.
Mencoba Koneksi SNMP Secara Manual
Sebelum menulis kode program, ada baiknya kita mencoba dulu apakah komputer kita sudah terkoneksi dengan SNMP. Caranya dengan menggunakan aplikasi snmpwalk melalui Command Prompt atau Terminal.
Buka Command Prompt, lalu ketik perintah berikut:
snmpwalk -v2c -c public 127.0.0.1
Perintah di atas artinya kita meminta komputer untuk menampilkan semua data SNMP yang tersedia di komputer sendiri. Jika muncul banyak tulisan yang berisi angka dan nilai, berarti koneksi SNMP sudah berfungsi. Jika muncul pesan Timeout, berarti ada yang belum benar, mungkin SNMP Service belum aktif atau community string-nya belum diatur.
Kita juga bisa mencoba mengambil satu data spesifik, misalnya nama komputer. Gunakan perintah:
snmpget -v2c -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0
Deretan angka .1.3.6.1.2.1.1.5.0 itu adalah kode khusus yang artinya "tolong beritahu saya nama perangkat ini". Jika berhasil, akan muncul tulisan seperti "STRING: NAMA-KOMPUTER-ANDA". Ini tandanya komputer kita sudah siap digunakan sebagai target latihan.
Membuat Program SNMP Collector Sederhana
Sekarang saya akan membuat program PHP sederhana yang fungsinya mirip seperti percobaan manual tadi, hanya saja hasilnya ditampilkan di halaman web.
- Buat folder baru di dalam folder web server, misalnya belajar-snmp, lalu buat file baru dengan nama collector.php.
Berikut kode program lengkapnya:
<?php
// Alamat perangkat yang akan dipantau
$alamat_perangkat = "127.0.0.1";
// Kata sandi SNMP (community string)
$kata_sandi = "public";
// Kode pertanyaan untuk nama perangkat
$kode_nama = ".1.3.6.1.2.1.1.5.0";
// Kode pertanyaan untuk lama perangkat menyala
$kode_uptime = ".1.3.6.1.2.1.1.3.0";
echo "<h2>Program SNMP Collector Sederhana</h2>";
echo "<p>Saya akan mencoba mengambil data dari perangkat: $alamat_perangkat</p>";
echo "<hr>";
// Mengambil data nama perangkat
echo "<h3>1. Mengambil Nama Perangkat</h3>";
$hasil_nama = @snmpget($alamat_perangkat, $kata_sandi, $kode_nama);
if ($hasil_nama) {
// Membersihkan hasil dari tulisan "STRING: "
$nama_bersih = str_replace("STRING: ", "", $hasil_nama);
$nama_bersih = trim($nama_bersih);
echo "<p>Hasil mentah: $hasil_nama</p>";
echo "<p style='color: blue; font-weight: bold;'>Nama perangkat ini adalah: $nama_bersih</p>";
} else {
echo "<p style='color: red;'>Maaf, gagal mengambil data nama perangkat.</p>";
echo "<p>Coba periksa: apakah SNMP Service sudah aktif? Apakah community string sudah benar?</p>";
}
echo "<hr>";
// Mengambil data lama perangkat menyala
echo "<h3>2. Mengambil Lama Perangkat Menyala</h3>";
$hasil_uptime = @snmpget($alamat_perangkat, $kata_sandi, $kode_uptime);
if ($hasil_uptime) {
// Membersihkan hasil dari tulisan "Timeticks: "
$uptime_bersih = str_replace("Timeticks: ", "", $hasil_uptime);
$uptime_bersih = trim($uptime_bersih);
// Mengubah nilai Timeticks menjadi jam, menit, dan detik
// Timeticks adalah satuan 1/100 detik, jadi dibagi 100 dulu
$total_detik = intval($uptime_bersih) / 100;
$jam = floor($total_detik / 3600);
$sisa_detik = $total_detik % 3600;
$menit = floor($sisa_detik / 60);
$detik = $sisa_detik % 60;
echo "<p>Hasil mentah: $hasil_uptime</p>";
echo "<p style='color: green; font-weight: bold;'>";
echo "Perangkat ini sudah menyala selama: ";
echo "$jam jam, $menit menit, $detik detik";
echo "</p>";
} else {
echo "<p style='color: red;'>Maaf, gagal mengambil data lama perangkat menyala.</p>";
}
echo "<hr>";
echo "<p><i>Program selesai dijalankan.</i></p>";
?>
Penjelasan Singkat Kode Program
Bagian Awal Program
Di bagian paling atas menentukan tiga hal penting:
- Alamat perangkat yang akan dipantau (127.0.0.1 artinya komputer sendiri)
- Kata sandi SNMP (biasanya "public")
- Kode-kode pertanyaan yang disebut OID. Dua OID yang kita gunakan adalah untuk menanyakan nama perangkat dan berapa lama perangkat sudah menyala.
Fungsi snmpget
Ini adalah fungsi utama yang bertugas bertanya ke perangkat. Fungsi ini membutuhkan tiga informasi yaitu alamat perangkat, kata sandi, dan kode pertanyaan (OID). Hasil dari fungsi ini adalah jawaban dari perangkat yang masih berupa teks mentah, misalnya "STRING: DESKTOP-ABC".
Membersihkan Hasil
Karena jawaban yang diterima masih mengandung kata "STRING:" atau "Timeticks:", saya perlu membersihkannya agar tampilannya lebih rapi. Caranya dengan menggunakan fungsi str_replace untuk menghapus kata-kata tersebut.
Mengubah Format Waktu
Untuk data lama perangkat menyala, jawaban yang diberikan dalam satuan Timeticks. Satu Timeticks sama dengan 1/100 detik. Oleh karena itu, kita perlu mengubahnya menjadi jam, menit, dan detik agar mudah dibaca oleh manusia biasa.
Hasil Pembelajaran
Melalui pembelajaran ini, saya memahami bahwa implementasi SNMP Collector dimulai dengan menyiapkan perangkat yang akan dipantau serta memastikan SNMP agent telah aktif pada perangkat tersebut. Selanjutnya, dilakukan konfigurasi pada sisi collector, seperti menentukan alamat IP perangkat, port, serta community string yang digunakan untuk mengakses data.
Setelah konfigurasi selesai, SNMP Collector akan mengirimkan request secara berkala ke perangkat menggunakan protokol Simple Network Management Protocol untuk mengambil data berdasarkan OID yang telah ditentukan. Data yang diperoleh kemudian diproses dan disimpan ke dalam database untuk keperluan monitoring.
Saya juga memahami bahwa hasil data yang telah disimpan dapat ditampilkan melalui dashboard dalam bentuk tabel atau grafik agar lebih mudah dipahami. Selain itu, sistem dapat dikembangkan dengan menambahkan fitur seperti notifikasi otomatis ketika terjadi kondisi tertentu pada perangkat.
Kesimpulan
Implementasi SNMP Collector menunjukkan bagaimana proses monitoring jaringan dilakukan secara nyata, mulai dari pengambilan data hingga penyajian informasi. Dengan memanfaatkan protokol Simple Network Management Protocol, data dari berbagai perangkat dapat dikumpulkan secara otomatis dan terpusat.
Pemahaman mengenai implementasi ini memberikan gambaran yang lebih konkret dalam membangun sistem monitoring jaringan. Hal ini juga menjadi dasar penting untuk mengembangkan fitur yang lebih lanjut, seperti analisis data dan sistem peringatan dini.