Jump to content

gvan

Forum Members
  • Content Count

    176
  • Joined

  • Days Won

    2

gvan last won the day on April 3 2018

gvan had the most liked content!

Community Reputation

80 Excellent

2 Followers

About gvan

  • Rank
    Advanced Member

Equipment

  • Keenetic
    Giga II, Extra II

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Сам сервис запускается через watchguard скрипт collectdmon. Соответственно, предполагаю, что из-за ошибок в конфиге/окружении collectd нормально не стартует, а collectdmon пытается его несколько раз перезапустить. Смотрите, конфиг на наличие ошибок. Пробуйте запустить collectd вручную: /opt/sbin/collectd и смотреть на терминале или в логе ошибки.
  2. gvan

    А на 2.15 высокий Load Average на Giga II не починили? Можно проверить командой top в entware. Проблема наблюдалась на 2.13 и 2.14. 2.15 пока себе не ставил.
  3. Скорее всего, что-то не так с http-сервером. Какой устанавливали и настраивали? Как в инструкции - lighttpd? Нужно проверить, реально ли он запускается. Он также должен писать лог в /opt/var/log/lighttpd, если в его конфиге включена опция server.errorlog = "/opt/var/log/lighttpd/error.log" Возможно, для этого также потребуется включить службу syslong-ng (информация есть в каталоге готовых решений).
  4. Сбор статистики определяется не этим каталогом, а конфигом collectd. В данном каталоге находятся только шаблоны для отображения статистики. В самом конфиге collectd сбор данных с интерфейсов (в т.ч. и PPPoE) выполняется по шаблону. Т.е. для отключения сбора данных по конкретному интерфейсу его нужно будет добавить в правило Ignore. После этого удалить соответствующие файлы rrd в /opt/var/lib/collectd/rrd/. Либо вообще их не трогать - пусть данные пишутся (но не нужно было вручную удалять файлы rrd), но сами шаблоны отображения данных убрать.
  5. gvan

    Я об этом уже давно писал. Прошло полгода. Ставьте последнюю версию alreader и будет все нормально работать. Удалил уже, ибо все равно медленно для меня работала на роутере, да и для уменьшения БД пришлось урезать текстовую информацию (описание найденных книг). Думал попробовать mysql БД, но потом нашел для себя альтернативный вариант (ниже в оффтопе есть пример, или в крайнем случае можно использовать tor на том же самом роутере).
  6. Дополнение к первому посту: Сбор и отображение статистики для клиентов wi-fi. Сбор данных производится через shell-скрипт посредством выполнения в нем команды ndmq -p 'show associations' -x . Работа скрипта обеспечивается плагином exec для collectd. Устанавливаем модуль exec и gawk (если еще не установлен): opkg install collectd-mod-exec gawk Размещаем из архива wifi.zip файлы по указанным каталогам (скрипт для модуля exec, CGI-скрипт для отображения статистики и шаблон для wi-fi). Редактирование CGI-скриптов (если устройств будет несколько) и шаблона под свое окружением выполним позже. В файле /opt/etc/collectd.conf добавляем загрузку модуля exec и запуск скрипта для сбора статистики wi-fi клиентов: LoadPlugin exec <Plugin exec> Exec "nobody" "/opt/etc/collectd/scripts/wifi-clients" </Plugin> Делаем указанный выше скрипт исполняемым файлом. chmod +x /opt/etc/collectd/scripts/wifi-clients Добавляем в систему пользователя nobody (если его еще нет), прописывая следующую строку в файл /opt/etc/passwd: nobody:*:65534:65534:user "nobody"::/opt/bin/nologin Перезапускаем collectd и примерно через 10 минут в каталоге /opt/var/lib/collectd/rrd/APG3/wifi (у вас имя будет отличаться в зависимости от названия роутера) должны появиться файлы для активных клиентов wi-fi. Проверяем логи collectd для выявления возможных ошибок, если вдруг что-то не заработало. Далее создаем необходимое количество CGI-скриптов для wi-fi клиентов, для которых планируем отображать статистику (на основе файла 710-notebook.rcgi). В них меняем путь до файлов статистики, название, MAC-адреса клиентов. Запускаем скрипт index.sh для обновления общего индексного файла статистики.
  7. Дополнение к первому посту в теме: "Сбор и отрисовка данных по сетевому принтеру на примере Samsung M2070W" Дано: Сетевой принтер, подключенный в сеть keenetic по витой паре или посредством wi-fi, IP-адрес принтера, например, 192.168.1.20. Сетевой принтер должен поддерживать протокол SNMP, и необходимые настройки для его включения на принтере предварительно выполнены. С помощью snmpwalk опрашиваем принтер и определяем, в каких OID "лежит" нужная нам информация: snmpwalk -c public 192.168.1.20 . >/opt/tmp/printer.txt В файле /opt/share/collectd/custom-types.db добавляем необходимые типы данных. У меня это уровень картриджа в процентах, количество напечатанных страниц, сколько всего можно напечатать страниц на этом картридже и работа в часах (эту статистику собираю, но не рисую). m2070w cartlevel:GAUGE:0:U, cartprintedpages:GAUGE:0:U, cartallowedpages:GAUGE:0:U, transfrollerhours:GAUGE:0:U Далее в конфигурационном файле /opt/etc/collectd.conf добавляем тип данных, само устройство и что с него "собирать": <Data "m2070w"> #m2070w cartlevel:GAUGE:0:U, cartprintedpages:GAUGE:0:U, cartallowedpages:GAUGE:0:U, transfrollerhours:GAUGE:0:U Type "m2070w" Table false Instance "" Values "1.3.6.1.4.1.236.11.5.11.53.61.5.2.1.13.1.1" "1.3.6.1.4.1.236.11.5.11.53.61.5.2.1.14.1.1" "1.3.6.1.2.1.43.11.1.1.8.1.1" "1.3.6.1.4.1.236.11.5.1.1.3.27.0" </Data> <Host "m2070w"> Address "192.168.1.20" Version 1 Community "public" Collect "m2070w" Interval 180 </Host> Перезапускаем collectd и через несколько минут убеждаемся, что данные по принтеру собираются в файле /opt/var/lib/collectd/rrd/m2070w/snmp/m2070w.rrd Далее добавляем CGI-скрипт и шаблон (архив printer.zip) для отображения статистики. Редактируем их, если требуются.
  8. Также для себя делал "рисование" картинок для клиентов wi-fi. Используется плагин exec для collectd и скрипт, который "висит" в памяти и периодически обновляет данные по wi-fi клиентам через команду "ndmq -p 'show associations' -x". Для ориентировочного анализа активности wi-fi клиентов мне хватает. Правда минус в том, что ndmq в журнал системы для каждого вызова этой команды бросает сообщение. Еще шаблон для wi-fi принтера дополнительно делал (количество страниц всего, напечатано, осталось % картриджа). Но это в принципе не сложно сделать самостоятельно, если принтер поддерживает SNMP протокол. Если есть интерес, то могу добавить информацию по этим задачам.
  9. Возможность редактирования первого поста у меня по какой-то причине пропала. Написал запрос о восстановлении доступа. Пока выкладываю обновленный архив с исправленным скриптом в этом посте (вызов awk заменен на gawk, добавлено прерывание обработки файла, если он не может прочитаться): files.zip
  10. Явно неправильно отрабатывается регулярное выражение. Т.е. в первой строке DEBUG должно получиться на выходе DEBUG: include/0-page.tmpl, а получается оригинальная строка без изменений. У меня воспроизвести баг не получается на моей системе. Можно еще попробовать в коде скрипта заменить awk на gawk (если его нет, то установить через opkg), т.к. по умолчанию используется awk из busybox. И если entware еще от версии прошивки 2.06, то возможно какая-то старая версия используется. Хотя все должно по идее и со старой версией awk обрабатываться аналогично.
  11. Если в дебажной версии скрипта строку tmplfile=gensub(/.+\s+(.+)>.*/, "\\1", 1); поменять на tmplfile=gensub(/.+\s+(.+)>/, "\\1", 1); ничего не изменится? И сюда просьба выложить полученный index.rcgi.
  12. Хотя не нужно. Я вижу теперь в вашем файле, что при чтении шаблона возникает ошибка: DEBUG: <RRD::INCLUDE include/0-page.tmpl> DEBUG: READ STATUS: -1 Т.е. он не может прочитать файл include/0-page.tmpl по указанному пути. Он точно там лежит и есть права на чтение? P.S.: Неправильно awk обрабатывает регулярное выражение. Поэтому имя файла получается неправильное. Возможно, версии awk у нас не совпадают, поэтому разное поведение. Еще посмотрю, может что придет на ум
  13. Да, так и должно быть. Строчку awk -v file=$file -v DEBUG=1 'BEGIN нужно поменять на awk -v file=$file -v DEBUG=0 'BEGIN и запустить его заново.
  14. Вот этот скрипт index.sh.new нужно попробовать (только нужно сделать его исполняемым) и созданный им файл index.rcgi выложить сюда. Добавил прерывание, если файл не может прочитаться, а также вывод дебаг-информации. Такое ощущение, что по какой-то причине не может нормально прочитать 0-page.tmpl
  15. А в файле 0-page.tmpl есть строка <RRD::INCLUDE <RRD::GETVAR TMPLNAME>? Ее не удалили случайно? За ней перевод строки на новую строку есть? Дело в том, что скрипт обрабатывает файл до того, как встретит эту строку. Если ее нет, то как раз подвиснет, т.к. никакой защиты от этого не делал. awk установлен? Основная логика обработки файлов на нем висит. Хотя, если бы не был установлен, то скрипт бы сразу ругался на это. Навскидку, пока идей нет. Если есть желание все-таки автоматизировать процесс создания индексного файла, то могу покопаться с целью отладки. Но нужен будет временный shell-доступ на систему. Или, если есть навыки программирования, то можно будет самому в коде добавить вывод отладочной информации в промежуточных стадиях. И, если файл index.rcgi разрастается, пока не прибьешь по ctrl+c скрипт, то в нем может быть то, что натолкнет меня на мысль. Если есть возможность, то приложите сюда этот огрызок после пяти секунд запуска до нажатия на ctrl+c.
×
×
  • Create New...