При возникновении каких-либо проблем в первую пришлите нам на адрес «avreg-support на mail.ru» архив с информацией об установленной системе AVReg.
Получить такой архив можно двумя способами:
root-а
(или
через sudo) команду
# avreg-reportbug > /tmp/avreglog.tgz
Дополнительно, если вы смогли определить приложение(пакет) AVReg в котором возникает ошибка или проблема, будет полезна информация, получить которую можно выполнив инструкции ниже по тексту.
При аварийных крахах демона avregd (чаще всего segfault, далее по тексту - вылет) работа системы AVReg (захват, запись видео, наблюдение) прекращается полностью.
Момент вылета отмечается в «/var/log/daemon.log
»
(Debian) «/var/log/syslog
» (Ubuntu) или подобной
строкой:
Mar 5 12:03:48 host avreg-super: avregd[9321] exiting abnormally
После вылета, демон нельзя запустить с веб-интерфейса и командой
«service avreg start
» в терминале:
avregd - остановлен # service avreg status Status of AVReg surveillance system server: avregd stopped, but /var/run/avreg/avregd.pid exists;
Для этого нужно включить сохранение файлов core в системе, запустить демон avregd заново и дождаться вылета.
На многих дистрибутивах генерация файла core уже «настроена».
$ cat /proc/sys/kernel/core_pattern
core
В этом случае, в каталоге архива AVReg (см.
{storage-dir}
в /etc/avreg/avreg.conf
)
после вылета демона avregd (см. выше как в логе это заметить)
появится файл core, например,
/var/spool/avreg/core
.
Если вылет был, а файла core нет, то core нужно включить:
Нужно создать файл «/etc/sysctl.d/coredump.conf
»
следующего содержания:
$ cat /etc/sysctl.d/coredump.conf
kernel.core_pattern=core
и выполнить:
# service procps restart
Перезапустите демон с терминала:
# service avreg restart
и дождитесь следующего вылета, зайдите в каталог
{storage-dir}
, возьмите файл core
,
сожмите его LZMA/7Z/BZIP2/RAR/GZIP и пришлите файл нам или
выложите на публичные файл-сервера, чтобы мы смогли скачать
его.
respawn
в задании /etc/init/avreg-worker)После получения и отправки coredump-файла можно настроить
автоматический перезапуска «упавшего» avregd с максимальным
временем простоя 1 мин, для чего удалите знак комментария
#
в строке-задании cron:
/etc/cron.d/avregd, последняя строка
*/1 * * * * root /usr/sbin/avregd-check > /dev/null
Проверка:
service avreg
restart
.# killall -9 avregd
.Если камера часто «отваливается» и вы хотите попытаться разобраться почему, нужно перехватывать сетевой трафик (tcpdump) в момент проблемы и анализировать его (wireshark).
Основная сложность перехвата трафика - остановить захват несколькими секундами позже возникновения проблемы, т.к. иначе файлы будут огромными. Как _один_ из вариантов, мы предлагаем использовать «Внешний сборщик/обработчик событий (event-collector).» для решения этого вопроса.
Суть решения такая:
event-collector.sh
по событиям захвата
создаёт файлы: /tmp/cam{номер}-capture-{состояние}
,
например, при сбое захвата камеры 17 будет создан файл
/tmp/cam17-capture-failed
.tcpdump
с записью трафика в файлы с ротацией и
ограничением размера.tcpdump-killer.sh
, который по появлению файла признака
сбоя /tmp/cam17-capture-failed
останавливает запись
сетевого трафика.Пошаговый алгоритм для камеры с номером 5 и ip-адресом 192.168.0.5, захват c которой осуществляется по сетевому интерфейсу eth0:
$ sudo service avreg restart
event-collector
:
$ ps u -U avreg
, если нет - см. системный лог (daemon.log
или
syslog
), а также содержимое лога
/var/log/avreg/evtcoll.err
, устраняете проблему с
запуском;
$ cd
tcpdump
(разумеется,
он должен быть установлен):
$ sudo tcpdump -i eth0 -nN -C3M -W2 -w cam5.pcap host 192.168.0.5 &
(обратите внимание на символ & в конце команды);
$ sudo rm -f /tmp/cam*
$ chmod a+x tcpdump.killer.sh
и запускаете в фоне “останавливалку” tcpdump-а:
$ sudo ./tcpdump.killer.sh 5 failed &
(обратите внимание на символ & в конце команды);
tcpdump
в списке процессов, как завершился - можно
забирать файлы дампы cam5.pcap*
и отправлять нам на
анализ, сопроводим письмо комментарием и системным логом за период
сбоя (/var/log/daemon.log*
или
/var/log/syslog*
).В терминале root-а
выполните следующие команды и
пришлите нам их вывод:
# df -hTP # avreg-unlink -vv
Запустите avreg-mon в терминале и пришлите нам текстовые сообщения программы:
$ avreg-mon -vv