
Модуль виведення інформації про систему віддаленої еом
За допомогою цього модуля проходить вибірка даних системи з віддаленої машини. Такі параметри, як ім’я комп’ютера, операційна система, процесор та інше.
<?
session_start();
snmp_set_quick_print(1);
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.1.5.0"); // Назва ПК
echo $c;
echo '<br />';
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.1.1.0"); //Сімейство процесора, Операційна система
echo $c;
echo '<br />';
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.1.3.0"); //UpTime
echo $c;
echo '<br />';
$c = snmpwalk("192.168.1.2", "pub1", ".1.3.6.1.2.1.1");
echo $c[17]; //Виявлення модулю "The MIB module for managing TCP implementations"
echo '<br />';
echo $c[18]; //Виявлення модулю "The MIB module for managing IP and ICMP implementations"
echo '<br />';
echo $c[19]; //Виявлення модулю "The MIB module for managing UDP implementations"
echo '<br />';
echo $c[20]; //Виявлення модулю "The MIB module for SNMPv2 entities"
echo '<br />';
echo $c[21]; //Виявлення модулю "View-based Access Control Model for SNMP."
echo '<br />';
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.4.3.0");
echo '<br />';
echo '<br />';
echo '<p>Число отриманих пакетів IP: ' . $c . '</p>';
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.4.10.0");
echo '<br />';
echo '<br />';
echo '<p>Число відправлених пакетів IP: ' . $c . '</p>';
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.4.12.0");
echo '<br />';
$c = snmpget("192.168.1.2", "pub1", ".1.3.6.1.2.1.6.8.0");
echo '<br />';
echo '<br />';
echo $c;
?>
Snmpwalk проходить через все дерево по заданому OID та виводить інформацію у вигляді масиву. Необхідне значення ми можемо взяти, використавши $c[17]…$c[20] – визначення модулів, які підтримує сервер (агент).
Модуль формування графіків mrtg
Усі графіки формуються виключно на стороні клієнта, а створює їх браузер за допомогою JavaScript. В даній роботі було використано бібліотеку Moris.js. Яка дозволяє швидко і просто сформувати необхідний графік з вихідних даних.
Було використано два типи графіків – Bar і Line для відображення певних параметрів мережі, наприклад кількість прийнятих пакетів IP за день.
<script>
Morris.Bar({
element: 'line-example',
ymax: [1000000],
data: [
{ y: '192.168.1.1', a: 142584},
{ y: '192.168.1.2', a: 323832 },
{ y: '192.168.1.3', a: 455711 },
{ y: '192.168.1.4', a: 653646 },
{ y: '192.168.1.5', a: 933316 },
{ y: '192.168.1.6', a: 716421 },
{ y: '192.168.1.7', a: 564562 }
],
xkey: 'y',
ykeys: ['a'],
labels: ['Число TCP-з\'єднань Active-Open']
});
</script>
<script>
Morris.Line({
element: 'line-example',
ymax: [5000],
data: [
{ y: '2014-02-21', a: 127},
{ y: '2014-02-22', a: 461 },
{ y: '2014-02-23', a: 1084 },
{ y: '2014-02-24', a: 2539 },
{ y: '2014-02-25', a: 912 },
{ y: '2014-02-26', a: 1315 },
{ y: '2014-02-27', a: 3177 }
],
xkey: 'y',
ykeys: ['a'],
labels: ['Число невдалих TCP-з\'єднань']
});
</script>
Дані передаються із змінних MIB, надходять до скрипту php і тільки тоді JavaScript звертається до них і отримує інформацію по графікам. Після цього відбувається їх формування.
Перевагою в тому, що графіки формуються на стороні клієнта є те, що ви на навантажуєте сервер додатковими скриптами, а даєте змогу пере направити навантаження на браузер клієнта, таким чином покращується швидкодія сервера.
Дані, які стосуються мереж можна не тільки використовувати у графіках, а й записати їх в базу даних для подальшої роботи над ними.