Jump to content

Search the Community

Showing results for tags 'rrdcgi'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Keenetic Community
    • Forum policy
    • Community Support & Knowledge Exchange
    • Off-topic lounge
  • Keenetic Updates
    • KeeneticOS
    • Keenetic mobile application
    • Keenetic RMM system
  • Форум пользователей Keenetic
    • Обмен опытом
    • KeeneticOS
    • Мобильное приложение
    • Keenetic RMM

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Web-site


Interests


Occupation


AOL Account


ICQ Account


WLM


YAHOO


Facebook Account


Twitter Account


Skype Account


Youtube Account


Google+ Account


Keenetic

Found 1 result

  1. Collectd - это простой и легкий сервис, который собирает данные о производительности системы и приложений и предоставляет механизмы для хранения полученных значений в различных форматах, например в RRD файлах. Сбор статистики производится с помощью подключаемых плагинов. В данном примере будет рассмотрена возможность использования плагина для работы с SNMP (получения данных со встроенного в роутер SNMP-сервера), плагина для работы с дисковой подсистемой и плагина для записи полученных данных в RRD БД. Задача collectd только собирать данные. Отрисовка графиков производится с помощью rrdcgi, который позволяет использовать некое подобие шаблонов, упрощающих формирование html-файлов и облегчающих процесс их настройки. Создание графиков выполняется только по запросу пользователя (при обращении к веб-скриптам), соответственно, нагрузка на систему незначительная. До графических возможностей netdata, недавно включенного в состав готовых пакетов, конечно, далеко, но здесь в первую очередь обеспечивается задача долговременного хранения данных статистики. Примеры отображения полученной информации: Этим возможности программы не ограничиваются. Существует дополнительные плагины, открывающие другие варианты сбора статистики (в том числе с определенных сервисов). Например, плагин iptables, позволяющий собирать данные по помеченным цепочкам правил (в планах отрисовывать графики по определенным клиентам wi-fi), плагин ping, формирующий данные по задержкам до определенного хоста и т.п.. Также есть возможность формирования нотификаций при достижении определенных значений полученной информации с помощью плагина threshold. Этап 1. Формирование данных статистики. Включаем через CLI поддержку snmp на роутере: service snmp system configuration save Ставим в entware SNMP-утилиты и проверяем работу протокола SNMP на роутере: opkg install snmp-utils snmp-mibs snmpwalk -c public 127.0.0.1 . >/opt/tmp/snmp.txt Если все прошло успешно, то должен создаться файл, содержащий все возможные OID роутера. Распаковываем содержимое приложенного архива files.zip во временную папку и устанавливаем collectd c необходимыми для нашего примера плагинами: opkg install collectd collectd-mod-logfile collectd-mod-disk collectd-mod-snmp collectd-mod-rrdtool Создаем каталог для rrd файлов: mkdir -p /opt/var/lib/collectd/rrd Копируем файл кастомных типов из архива share/custom-types.db в /opt/share/collectd Заменяем конфигурационный /opt/etc/collectd.conf на файл conf/collectd.conf Некоторые пояснения по конфигурационному файлу. Вначале указываются рабочие каталоги, а также подключается файл с кастомными типами (в нем описывается хранение характерных для keenetic данных: оперативной памяти и CPU). Далее указывается интервал (в примере 180 сек.) сбора статистики для плагинов (в настройках плагина snmp д.б. такой же интервал). Изменение интервала в дальнейшем допускается только при удалении всех rrd файлов (обнуление статистики). Но также можно выполнить их тюнинг вручную. В противном случае получим некорректную статистику. Плагин logfile нужен для записи журналов самого сервиса collectd. В нем и будем смотреть возникающие при настройке и работе сервиса ошибки. Плагин disk пишет информацию о работе выбранных дисков (разделов). В примере указаны только хардварные диски (производительность отдельных разделов не учитываю, т.к. у меня в этом необходимости нет). Информация начинает записываться в БД через 3*интервал_опроса после запуска collectd. Плагин rrdtool собственно и обеспечивает сохранение данных в БД RRD. Размер каждого созданного файла БД фиксированный, информация записывается по кругу, переписывая устаревшие данные. Наибольшая точность данных получается для статистики за последние сутки (в примере точность до 3 минут). Данные за неделю, месяц и год усредняются и хранятся с большими интервалами времени. Но при этом существует возможность считывания максимальных значений статистики, которые были в указанные периоды (эти данные не усредняются, и в отрисовке графиков мы их также будем отображать). Значение “RRARows 480” определяет количество записей для каждого раздела данных (сутки, неделя, месяц, год). 480 соответствует точности для записи данных за сутки с интервалом три минуты (24*60/3). Плагин snmp выполняет сбор статистики по протоколу SNMP. В разделе Host указывается узел, с которого собираются данные, а также имена разделов с данными для опроса определенных OID (информацию по нужным мне OID брал из временного файла /opt/tmp/snmp.txt). Запускаем collectd /opt/etc/init.d$ /opt/etc/init.d/S??collectd start Проверяем лог /opt/var/log/collectd.log на наличие ошибок. Если все прошло успешно, то через несколько минут в БД RRD можно посмотреть вносимые сервисом данные, например по uptime системы. Для этого установим rrdtool: opkg install rrdtool rrdtool dump /opt/var/lib/collectd/rrd/localhost/snmp/uptime.rrd | less На этом данный этап закончен. Можно спокойно передохнуть, а настройку отрисовки графиков продолжить в следующий раз. Этап 2. Формирование графиков статистики. Приступим к настройке визуальной части системы. Для этого установим http-сервер. В примере будет использоваться lighttpd с модулем lighttpd-mod-cgi. Можете использовать другой http-сервер, но необходимо будет в соответствии с документацией на сервер настроить поддержку выполнения CGI-скриптов. Также необходимо установить rrdcgi для формирования динамических HTML-файлов. Устанавливаем сервер и необходимое ПО: opkg install lighttpd lighttpd-mod-cgi rrdcgi Настраиваем сервер. В /opt/etc/lighttpd/lighttpd.conf меняем порт на 8000 и убираем комментарий: server.port = 8000 И добавляем в index-file.names запуск индексной страницы с именем index.rcgi: index-file.names = ( "index.php", "index.html", "index.htm", "default.htm", "index.lighttpd.html", "index.rcgi" ) В /opt/etc/lighttpd/conf.d/30-cgi.conf корректируем cgi.assign для выполнения скриптов с расширением .rcgi: cgi.assign = ( ".pl" => "/opt/bin/perl", ".cgi" => "/opt/bin/perl", ".rb" => "/opt/bin/ruby", ".erb" => "/opt/bin/eruby", ".py" => "/opt/bin/python", ".rcgi" => "/opt/bin/rrdcgi" ) Запускаем сервер: /opt/etc/init.d/S80lighttpd start Копируем содержимое архива www/* в каталог /opt/share/www. В переменной RRDPATH файлов 3*.rcgi нужно указать правильный путь к каталогу статистики, т.к. он зависит от названия вашего роутера. Также у меня для доступа в Интернет используется PPPoE, физическое подключение имеется только к WAN и к трем интерфейсам роутера. Поэтому набор файлов редактируйте под свои нужды. Но скрипты для общей статистики системы должны работать без каких-либо изменений. Подключаемые шаблоны находятся в /opt/share/www/include. Их тоже можно корректировать, если возникнет необходимость (например, изменить дизайн страницы, поменять цвет и форму графиков и т.п.). Документацию смотрите на официальной странице RRDTOOL. Если требуется выполнить какие-то дополнительные вычисления над данными в RRD (а в некоторых шаблонах это используется), то они производятся в обратной польской записи (RPN), в конце статьи есть ссылка на он-лайн конвертер. В общем шаблоне /opt/share/www/include/0-page.tmpl используется параметр <RRD::SETVAR ADDOPT5 --lazy>, необходимый для того, чтобы каждый раз не пересоздавать изображения с графиками, если информация в RRD файле не менялась. При отладке (например, подборе цвета линий на графике или изменении шрифтов) можно данный параметр изменить на заглушку <RRD::SETVAR ADDOPT5 --title=''>. В этом случае картинка будет перерисовываться каждый раз при открытии страницы со статистикой. Делаем исполняемым скрипт формирования индексной страницы и запускаем его для создания файла index.cgi: chmod +x /opt/share/www/scripts/index.sh /opt/share/www/scripts/index.sh Если потребуется изменить дизайн индексной страницы, то его придется изменять непосредственно в скрипте. Выносить HTML-код в отдельный файл пока не планировал. Открываем сайт со статистикой в браузере по адресу http://адрес_роутера:8000/ Архив (конфигурация, шаблоны, скрипт для создания индексной страницы): files.zip Список используемой литературы: Официальная страница collectd Collectd Wiki Официальная страница rrdtool Он-лайн конвертер для обратной польской записи Названия и коды цветов в HTML, CSS и JavaScript
×
×
  • Create New...