Deltahost

Facebook

Rexbike

Strava

🏠 Oleksandr Rudenko blog

📉 Перегляд графіків, що генеруються MRTG

21.06.2022 | Олександр

До вашої уваги (MRTG cover) – простий переглядач статистики, що генерується пакетом MRTG (Multi Router Traffic Grapher), написаний на JavaScript, але по суті це BASH-скрипт, який працює через CGI-інтерфейс, тому не потребує додатково жодного ПЗ на сервері. Програма генерує індекс всіх графіків, відокремлює швидкісні графіки від кількісних, наводить одиниці відображення швидкостей до обраних одиниць, дозволяє виконувати сортування в обох напрямках по кожному полю. Перегляд графіків також перероблено для кращого сприйняття.

Написана дана утиліта була через необхідність тримати на роутерах невеликий набір графіків, бо не хотілося для їх перегляду постійно малювати якусь індексну сторінку – з'явилося це рішення. Це друга реалізація, перша була написана на Perl.

Скріншоти

індексна сторінка:



сторінка перегляду графіків:



Завантажити:

Встановлення Переініціалізувати apache2 ("systemctl reload apache2"), після цього можна спостерігати індекс графіків за адресою "http://yoursite/mrtg/"

Слід зазначити, що опис для індексу та параметри при відображенні графіка беруться зі згенерованого MRTG html-файлу.

Приклади конфігураційних файлів MRTG

/etc/mrtg/mrtg.cfg:
HtmlDir: /var/www/mrtg
ImageDir: /var/www/mrtg
LogDir: /var/lib/mrtg
ThreshDir: /var/lib/mrtg
Include: /etc/mrtg/mrtg-local.conf
Include: /etc/mrtg/mrtg-best.conf
Include: /etc/mrtg/mrtg-ilan.conf
Include: /etc/mrtg/mrtg-temperature_cpu.conf
Include: /etc/mrtg/mrtg-temperature_sda.conf
Include: /etc/mrtg/mrtg-temperature_sdb.conf
Include: /etc/mrtg/mrtg-temperature_sdc.conf
Include: /etc/mrtg/mrtg-uptime.conf
Include: /etc/mrtg/mrtg-cpu.conf
/etc/mrtg/mrtg-best.conf:
Target[best]: `/etc/mrtg/scripts/dev.sh enp5s0`
MaxBytes[best]: 62500000
AbsMax[best]: 125000000
Options[best]: bits,unknaszero,growright
Title[best]: best.net.ua
PageTop[best]: <h1>best.net.ua</h1>
Скрипт, зняття лічильників трафіку з інтерфейсу, йому передається параметр — ім'я інтерфейсу, за яким вибираються лічильники з /proc/net/dev, якщо пристрою немає — видаються нулі:

/etc/mrtg/scripts/dev.sh:
#!/bin/bash

DEVICE=$1
if [ "$DEVICE" = "" ] ; then
  echo "Usage: $0 DEVICE"
  exit 1
fi

LINE=`grep -P "^\s*$DEVICE:" /proc/net/dev | cut -d : -f 2`
if [ "$LINE" = "" ] ; then
  echo 0
  echo 0
else
  echo $LINE | awk '{print $1}'
  echo $LINE | awk '{print $9}'
fi
Ліцензія

You may freely distribute and/or modify this module under the terms of either the GNU General Public License (GPL, www.gnu.org/licenses/gpl.txt).

Посилання:


Коментарі

⬆️ Наверх сторінки