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

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

Завантажити:
- mrtg_cover.gz (версія 2.06 від 19.07.2024, 6 кб.)
- ras_mrtg_cover.gz (стара версія 0.3a1 від 17.06.2009 на Perl, 4 кб.)
- Після встановлення та налаштування пакетів mrtg, apache2, розпакувати та помістити цей файл у каталог "/var/www/mrtg", перейменувати на "index.cgi" ("gunzip mrtg_cover.gz ; mv mrtg_cover index.cgi"). Встановити права на запуск ("chmod 755 index.cgi").
- Дозволити виконання CGI-скриптів у каталозі з графіками, для цього у файлі "/etc/apache2/conf-available/httpd.conf" додати строку "AddHandler cgi-script .cgi", та у розділі "<Location /mrtg>", додати рядок "Options ExecCGI".
- Додати до конфігурації web-сервера індексну сторінку "index.cgi", у файл "/etc/apache2/mods-available/dir.conf", у рядок "DirectoryIndex".
Слід зазначити, що опис для індексу та параметри при відображенні графіка беруться зі згенерованого 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).
Посилання: