Jika Anda pernah perlu berurusan dengan SNMP, dan khususnya dengan SNMP di PHP, Anda pasti tahu betapa pentingnya nama akurat untuk pemetaan OID. Pustaka ini menawarkan hal itu, dan lebih banyak lagi mengekspos pustaka SNMP - Net-SNMP
- ke PHP!
Jika Anda membenci SNMP, saya harap perpustakaan ini dapat meyakinkan Anda untuk berhenti;)
SNMP adalah protokol jaringan yang memungkinkan pertukaran informasi antar host, anggap saja seperti REST dari tahun 1990-an. Meskipun protokolnya sudah kuno, protokol ini masih digunakan di mana-mana... dan dengan demikian tersedia di hampir semua perangkat keras yang mendukung jaringan.
Saat ini SNMP digunakan sebagian besar untuk menarik metrik (misalnya daftar perangkat yang terhubung ke titik akses WiFi, atau ruang disk kosong di server)... tetapi tidak ada yang mengatakan itu tidak dapat digunakan untuk mengontrol teko kopi Anda!
MIB, atau basis informasi manajemen , adalah kumpulan file tekstual yang berisi deskripsi data yang ada pada sistem jarak jauh. Tanpa file-file ini sebagian besar informasi hanyalah sekumpulan angka dan string yang tidak berarti. Lebih buruk lagi, tanpa MIB Anda tidak dapat meminta sysUpTime.0
tetapi 1.3.6.1.2.1.1.3.0
... astaga!
MIB yang diinstal pada sistem yang memanggil host SNMP jarak jauh memungkinkan kueri dan validasi data yang sederhana. Mereka juga menjelaskan dengan tepat APA yang dapat diminta dari sistem jarak jauh.
Hampir setiap sistem *nix dilengkapi dengan perpustakaan Net-SNMP
dan alat-alatnya. Misalnya untuk melihat struktur yang menjelaskan disk yang diinstal pada NAS Synology, Anda dapat menggunakan satu perintah untuk mencetak pohon yang bagus:
% snmptranslate -Tp 'SYNOLOGY-DISK-MIB::diskTable'
+--diskTable(1)
|
+--diskEntry(1)
| Index: diskIndex, diskStatus
|
+-- ---- Integer32 diskIndex(1)
| Range: 0..2147483647
+-- -R-- String diskID(2)
+-- -R-- String diskModel(3)
+-- -R-- String diskType(4)
+-- -R-- Integer32 diskStatus(5)
| Range: 1..5
+-- -R-- Integer32 diskTemperature(6)
Namun, tidak ada akses terprogram ke semua informasi yang disajikan dalam pohon tersebut (dan menguraikannya adalah mimpi buruk yang rapuh).
Net-SNMP
menyediakan semua yang dibutuhkan, dan merupakan perpustakaan untuk interaksi SNMP & penguraian MIB. Sayangnya, ini ditulis dalam C
is , tidak ada pengikatan PHP. Karena standar MIB sedang dalam pengembangan aktif selama hampir 35 tahun, hampir tidak ada opsi yang sepenuhnya kompatibel selain Net-SNMP
.
Net-SNMP
di PHP?! Ya! Sejak PHP 7.4 itu mungkin berkat FFI. Ini tidak mudah, karena banyak sekali sihir C kuno yang ada di banyak tempat, namun mungkin.
Pustaka ini menyembunyikan kerumitan di balik antarmuka berorientasi objek yang bagus.
(contoh di atas disertakan dalam direktori examples
)
libnetsnmp
/usr/lib/libnetsnmp.25.dylib
), serta semua alat seperti snmptranslate
snmp
) Perpustakaannya sendiri berlisensi MIT. Namun, kode tersebut menggunakan & menyertakan bagian dari Net-SNMP. Pohon sumber kode berisi bagian file header Net-SNMP, serta struktur (misalnya konstanta) yang diterjemahkan dari C ke PHP.
Untuk rincian tentang lisensi NET-SNMP lihat LISENSI-NETSNMP.
Saya bukan seorang pengacara, tetapi hal ini gratis & bersumber terbuka dan Anda dapat menggunakannya - bersikap adil dan sertakan lisensinya ;)