Если новый стример добавляется вторым в кластер, то, вероятнее всего, в настройках мастера указан IP-адрес 127.0.0.1, который необходимо изменить:
IP-адрес изменить значение 127.0.0.1 на значение IP-адреса сервера, на котором запущен мастер и который находится в той же сети (внутренней или внешней), в которой находится новый стример.IP вместо 127.0.0.1 указать тот же IP-адрес, который в предыдущем пункте был указан для мастера в поле IP-адресmaster.conf поменять все вхождения 127.0.0.1 на тот IP-адрес, который в предыдущем пункте был указан для мастера в поле IP-адресservice cctv-master restartstreamer.conf поменять все вхождения 127.0.0.1 на тот IP-адрес, который в предыдущем пункте был указан для мастера в поле IP-адресservice cctv-streamer restartПример итоговых настроек:
После выполнения указанных действий необходимо убедиться, что у стримера в административной панели на странице Обзор указан статус OK.
Для добавления в существующий кластер нового стримера необходимо в административной панели открыть страницу добавления нового стримера и заполнить форму:
wget https://fpst.ru/files/utils/installstreamer
chmod +x installstreamer
sudo ./installstreamer ССЫЛКА_НА_ДИСТРИБУТИВ_ФОРПОСТ
/data/cctv/etc/streamer.conf, заменив 127.0.0.1 в параметрах addr и master на IP-адрес, который ранее был указан в форме добавления стримераservice cctv-streamer restart
После выполнения указанных действий необходимо убедиться, что у нового стримера в административной панели на странице Обзор указан статус OK.
Новый мастер запускается на том же сервере, на котором уже запущен предыдущий мастер.
В административной панели открыть раздел Кластеры и нажать кнопку Добавить, далее заполнив форму:
На сервере, на котором уже запущен мастер, необходимо:
NEW_MASTER_FOLDER - заменить на требуемое название, например master2):mkdir /data/NEW_MASTER_FOLDER
mkdir /data/NEW_MASTER_FOLDER/log
mkdir /data/NEW_MASTER_FOLDER/run
mkdir /usr/local/etc/NEW_MASTER_FOLDER
ln -s /usr/local/etc/NEW_MASTER_FOLDER /data/NEW_MASTER_FOLDER/etc
chown cctv:cctv /data/NEW_MASTER_FOLDER/log
chown cctv:cctv /data/NEW_MASTER_FOLDER/run
/data/NEW_MASTER_FOLDER/etc/master.conf:{
addr: ["NEW_MASTER_IP", NEW_MASTER_STREAMER_PORT, NEW_MASTER_WEB_PORT],
portal: "NEW_MASTER_IP",
zabbix: ["ZABBIX_SERVER_IP", NEW_MASTER_ZABBIX_PORT],
db: { host: "localhost", schema: "cctv", user: "cctv", pass: "DB_CCTV_PASS" },
lock: ["NEW_MASTER_LOCK_NAME", "NEW_MASTER_LOCK_KEY"],
serialno: "NEW_MASTER_LOCK_SERIAL",
pidfile: "/data/NEW_MASTER_FOLDER/run/master.orig.pid",
outlog: "/data/NEW_MASTER_FOLDER/log/master.out.log",
errlog: "/data/NEW_MASTER_FOLDER/log/master.err.log",
disable_translation_ip_check: true,
}
где:
NEW_MASTER_FOLDER - название папки нового мастера
NEW_MASTER_IP - IP-адрес, который был выше указан в административной панели при добавлении нового мастера
NEW_MASTER_WEB_PORT - Порт мастера, к которому будет подключаться веб-портал и который был выше указан в административной панели при добавлении нового мастера
NEW_MASTER_STREAMER_PORT - Порт мастера, к которому при запуске будет с другого сервера подключаться стример (например 3088)
ZABBIX_SERVER_IP - IP-адрес Zabbix-сервера, подключения от которого будет принимать мастер
NEW_MASTER_ZABBIX_PORT - Порт мастера, на котором он будет принимать подключения от Zabbix-сервера (например 3085)
DB_CCTV_PASS - Пароль для подключения мастера к БД (см. master.conf первого мастера)
NEW_MASTER_LOCK_NAME, NEW_MASTER_LOCK_KEY, NEW_MASTER_LOCK_SERIAL - Параметры лицензионного ключа
/etc/init.d/cctv-master, например, в файл /etc/init.d/cctv-master2DESC="Cctv master" на DESC="Cctv master2"/data/cctv/ на /data/NEW_MASTER_FOLDER/update-rc.d cctv-master2 defaultsservice cctv-master2 start/etc/logrotate.d/cctv следующую секцию (заменив NEW_MASTER_FOLDER):/data/NEW_MASTER_FOLDER/log/master.err.log /data/NEW_MASTER_FOLDER/log/master.out.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
nodateext
create 644 cctv cctv
sharedscripts
postrotate
if [ -r /data/NEW_MASTER_FOLDER/run/master.orig.pid ]
then
kill -HUP `head -n 1 /data/NEW_MASTER_FOLDER/run/master.orig.pid`
fi
endscript
}
Для запуска стримера в новом кластере необходимо:
streamer.conf указать: master: ["NEW_MASTER_IP", NEW_MASTER_STREAMER_PORT],service cctv-streamer restartВнутри кластера новые камеры подключаются к стримерам по круговому циклу: каждая новая камера подключается к следующему стримеру.
Автоматический перенос камер с одного стримера на другие стримеры происходит, если на стримере не хватает места для записи камер. Также автоматический перенос камер происходит, если стример выходит из строя. Чтобы отключить автоматический перенос камер между стримерами, необходимо в конфигурационный файл мастера master.conf добавить параметры:
streamer_restart_timeout: 2592000,
streamer_space_timeout: 2592000,
Если необходимо принудительно переадресовать часть камер на другой стример, то можно воспользоваться скриптом change-camera-streamer:
./change-camera-streamer --src-streamer-id <стример, с которого нужно перенести камеры> --dst-streamer-id <стример, на который нужно перенести камеры> --count <количество камер для переноса>
Скачать скрипт change-camera-streamer можно по ссылке: https://fpst.ru/files/utils/change-camera-streamer
Скрипт пытается перенести запись указанного числа камер с одного стримера на другой. Попытка переноса записи включает в себя проверку доступности камеры, наличия свободного пространства и других параметров. Если попытка переноса камеры успешна, то запись со старого стримера будет отключена. Это может занять некоторое время, в течение которого запись будет вестись на оба стримера.
Также можно перенести камеру с одного стримера на другой, если в административной панели на странице камеры в адресной строке браузере поменять в конце строки /view.html на /setstreamer/<ID нового стримера> и перейти по этой ссылке.
Перенос камер между стримерами возможен только для камер, у которых включена запись.
Чтобы отключить запись камер на стример, необходимо:
./change-camera-streamer --src-streamer-id <стример, с которого нужно перенести камеры> --dst-streamer-id <стример, на который нужно перенести камеры> --count <количество камер для переноса>
Скачать скрипт change-camera-streamer можно по ссылке: https://fpst.ru/files/utils/change-camera-streamer
service cctv-master restart
Для подключения к существующему серверу, на котором уже работает стример, дополнительного хранилища, необходимо на этом сервере запустить дополнительный стример.
В инструкции ниже необходимо заменять N на число, которое равно количеству уже запущенных на сервере стримеров плюс 1. Например, если на сервере уже работает один стример и необходимо на сервере запустить второй стример, то N=2.
За основу настроек дополнительного стримера необходимо взять настройки предыдущего стримера, запущенного на этом сервере. Например, если на сервере уже работает один стример, то за основу необходимо взять настройки этого стримера.
В административной панели необходимо открыть страницу добавления нового стримера и заполнить форму, использую за основу параметры со страницы редактирования предыдущего стримера:
N необходимо заменить)На сервере стримера выполнить следующие действия:
N:mkdir /data/cctvN
mkdir /data/cctvN/log
mkdir /data/cctvN/run
mkdir /usr/local/etc/cctvN
ln -s /usr/local/etc/cctvN /data/cctvN/etc
mkdir /data/cctvN/data
cp /data/cctv/data/cctv-bg.jpg /data/cctvN/data/
chown cctv:cctv /data/cctvN/log
chown cctv:cctv /data/cctvN/run
MOUNT_POINT_DIR:mkdir MOUNT_POINT_DIR/archive
chown cctv:cctv MOUNT_POINT_DIR/archive
N:cp /data/cctv/etc/streamer.conf /data/cctvN/etc/
N (в качестве текстового редактора вместо mcedit можно использовать другой редактор):mcedit /data/cctvN/etc/streamer.conf
MOUNT_POINT_DIR:arch_dir: "MOUNT_POINT_DIR/archive",name: "cctvN",pidfile, outlog и errlog, заменив N:pidfile: "/data/cctvN/run/streamer.orig.pid",outlog: "/data/cctvN/log/streamer.out.log",errlog: "/data/cctvN/log/streamer.err.log",N:cp /etc/init.d/cctv-streamer /etc/init.d/cctv-streamerN
N (в качестве текстового редактора вместо mcedit можно использовать другой редактор):mcedit /etc/init.d/cctv-streamerN
N:cctv-streamer на cctv-streamerN/cctv/ на /cctvN/N и выполнив команду:update-rc.d cctv-streamerN defaultschkconfig cctv-streamerN onN:/data/cctvN/log/streamer.err.log /data/cctvN/log/streamer.out.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
nodateext
create 644 cctv cctv
sharedscripts
postrotate
if [ -r /data/cctvN/run/streamer.orig.pid ]
then
kill -HUP `head -n 1 /data/cctvN/run/streamer.orig.pid`
fi
endscript
}
При смене IP-адреса сервера стримера, необходимо:
streamer.conf в параметре addrcctv-streamer командой:service cctv-streamer restartВНЕШНИЙ_IP_АДРЕС_СТРИМЕРА и ID_СТРИМЕРА):UPDATE Streamer SET LinkIP = inet_aton('ВНЕШНИЙ_IP_АДРЕС_СТРИМЕРА') WHERE ID = ID_СТРИМЕРА;wget https://fpst.ru/files/utils/send-to-masterchmod 755 send-to-masterIP_АДРЕС_МАСТЕРА и ПОРТ_МАСТЕРА):./send-to-master IP_АДРЕС_МАСТЕРА ПОРТ_МАСТЕРА '{op:"update_vpn_streamer_list"}'IP_АДРЕС_МАСТЕРА=127.0.0.1ПОРТ_МАСТЕРА=2089select c.MasterID, c.IsActive, count(c.ID) from Camera c left join VpnCameraStreamer v on c.ID = v.CameraID join Master m on c.MasterID = m.ID where c.VpnStreamerID is not null and c.ParentID is null and c.LightParentID is null and v.ConfigUpdate < m.LinkConfigUpdate group by c.MasterID, c.IsActive;Чтобы перенести Форпост со старого сервера на новый, необходимо выполнить следующие действия:
service cctv-master stop
service cctv-streamer stop
service apache2 stop
mysql cctv и выполнить SQL-запрос drop database cctv;/var/lib/cctv/data/cctv/etc/master.conf/data/cctv/etc/streamer.conf (кроме параметра https)/var/www/cctv-portal/protected/config/local.php (из заменяемого файла на новом сервере сохранить параметр db)/var/www/cctv-portal/protected/runtime/config.php/var/www/cctv-portal/protected/runtime/decor.phpservice cctv-master stop
service cctv-streamer stop
service apache2 stop
mysqldump --skip-lock-tables -B cctv | gzip -c - > cctv-`date '+%Y%m%d-%H%M'`.sql.gz
Traffic и создать ее вручную при импорте дампа:mysqldump --ignore-table=cctv.Traffic --skip-lock-tables -B cctv | gzip -c - > cctv-`date '+%Y%m%d-%H%M'`.sql.gzservice mysql stopmysql -e"CREATE DATABASE cctv DEFAULT CHARACTER SET utf8;"
mysql cctv < ИМЯ_ФАЙЛА_ДАМПА
cd /var/www/cctv-portal
chgrp -R www-data images assets protected/runtime protected/config/local.php
chmod 775 images images/partner images/partner/camera images/screenshot assets protected/runtime
chmod 640 protected/config/local.php
service apache2 start/data/cctv/etc/master.conf все вхождения 127.0.0.1 поменять на тот IP-адрес нового сервера, к которому будет подключаться стример со старого сервераservice cctv-master start/data/cctv/etc/streamer.conf в параметре master поменять IP-адрес старого сервера на адрес нового сервераservice cctv-streamer startОКЧтобы видеоаналитику для камеры выполнял один сервер-стример, а запись архивов - другой сервер-стример, необходимо выполнить следующие действия: