Вечером обнаружил недоступность сервера. Приехав на место, обнаружил 100% загрузку CPU, это была сетевая подсистема swi1:net. Пока обновлял “мир” ОС, решил прикрутить мониторинг данной проблемы…

По данному вопросу Google посоветовал metalmind.ru. Человек тоже любитель писать скрипты на php как и я. Так что будем юзать. Сложность в скрипте отсутствует, все настолько просто, что дальше некуда.
У себя я создал отдельный mrtg конфиг, в будущем планирую запихнуть туда мониторинг процессора, памяти, температуры и т.д…
/usr/local/etc/mrtg/mrtg_syste.cfg

1
2
3
4
5
6
7
8
9
10
11
WorkDir: /usr/local/www/mrtg/system
Options[_]: gauge, noo,growright,nopercent
WithPeak[_]: ymwd
interval:5

Target[swi1]: `/usr/local/etc/mrtg/system/swi1.php`
MaxBytes[swi1]: 100
Title[swi1]: Analysis of SWI:NET load averages
PageTop[swi1]: <H1>SWI:NET Load Averages</H1>
ShortLegend[swi1]: %
YLegend[swi1]: % of Load

Скрипт снятия статистики /usr/local/etc/mrtg/system/swi1.php

1
2
3
4
5
6
7
8
9
10
#!/usr/local/bin/php
<?php
$swi=`top -S|grep swi1|awk '{print $11}'`;
#убираем знак процента (%)
$swi =substr($swi, 0, -2);
#Делаем вывод целым (необходимо для mrtg)
$swi=intval($swi);
#вывод значения. Осуществляется дважды из-за капризности mrtg.
echo $swi."n";
echo $swi."n";

Добавляем в cron

1
2
crontab -e
*/5     *       *       *       *       /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg_system.cfg

У меня html страница для отображения графика выглядит так

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
<body>
<table width="850" border="0">

  <tr>
    <td width="434"></td>
    <td width="406"></td>
  </tr>

  <tr>
    <td width="434"><a href="swi1.html"><img src="swi1-day.png" border="0"></a></td>
    <td width="406">SWI1:NET</td>
  </tr>
</table>
</body>
</html>

Все, теперь у нас есть наглядная статистика загрузки сетевой подсистемы FreeBSD

Нравится эта статья? Подпишитесь на RSS-ленту и получите еще больше классной информации!