Користувальницькькі налаштування

Налаштування сайту


snmphelper

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
snmphelper [2021/11/27 16:27]
snmphelper [2023/06/17 14:06] (поточний)
skybetik
Рядок 1: Рядок 1:
 +====== SNMPHelper ======
 +
 +Являє собою шар абстракції для взаємодії з різноманітними пристроями за допомогою SNMP. Поведінка трішечки керується відповідними опціями SNMP_* в [[alteriniconf|alter.ini]].
 +
 +Ініціалізація:
 +<code php>
 +  $snmp=new SNMPHelper();
 +</code>
 +
 +
 +Типу робимо walk:
 +<code php>
 +    $ip = '192.168.0.151';
 +    $community = 'public';
 +    $oid = '.1.3.6.1.2.1.1.1.0';
 +    $cache = true;
 +    $result = $snmp->walk($ip, $community, $oid, $cache);
 +</code>
 +
 +Ну або в один рядок, якщо так простіше сприймати:
 +<code php>
 +    $result = $snmp->walk('192.168.0.151', 'public', '.1.3.6.1.2.1.1.1.0', true);
 +</code>
 +
 +І отримуємо в result на вихлопі sysDescr. Оскільки версія хост-системи в нашому прикладі у нас змінюється не щомиті, ми можемо вільно покладатися на кешовані дані. Там де нам потрібно отримувати дані realtime, природно, краще використовувати кеш у false. Але здебільшого на практиці ми робимо періодичні опитування обладнання і хочемо надалі використовувати ці результати десь. Тобто приклад із кешем у true з нашого прикладу є в цьому контексті повністю валідним. Ось ми типу отримали версію системи пристрою, а потім хочемо її десь показати. У такому разі, за наявності кешованих даних наш walk() для цього ж пристрою з цим же OID-ом миттєво поверне ці дані з кешу, не роблячи чергового безглуздого запиту. Якщо ж кеш відсутній або вже протух за часом - він їх запитає, і закешує для своїх наступних викликів на час з опції SNMPCACHE_TIME. Коротше це все просто про швидкодію і юзабіліті.
 +
 +Типу робимо set:
 +<code php>
 +    $ip = '192.168.0.151';
 +    $community = 'private';
 +
 +
 +    $data[] = array(
 +        'oid' => '.1.3.6.1.2.1.1.6.0',
 +        'type' => 's',
 +        'value' => 'some location'
 +    );
 +
 +
 +    $resut = $snmp->set($ip, $community, $data);
 +</code>
 +
 +І загалом так, це все, що вам у базі потрібно знати про цей клас. Ми ж обіцяли, що все буде до неподобства просто? ;)