CShark Көрсетілім
Мәзір

CShark құжаттамасы

Әкімші нұсқаулығы

Тұтынушының сайтында CShark бағдарламалық жасақтамасын конфигурациялау және техникалық қызмет көрсету: мен топологияны басқарудан сақтық көшірмеге, диагностикаға және жаңартуға дейін.

2.0.3 нұсқасы

1. Құжаттың мақсаты және әкімші рөлдері

Құжат CShark бағдарламалық жасақтамасын тұтынушы сайтында конфигурациялайтын және қызмет көрсететін мамандарға арналған.

Жүйемен күнделікті жұмыс жеке құжатта сипатталған «Пайдаланушы нұсқаулығы», орналастыру - құжатта «Бағдарламалық құралдың көшірмесін орнату нұсқаулары».

РөлЖауапкершілік аймағы
Жүйе әкімшісіобъект топологиясы, құрылғылар, камералар, дисплейлер, интеграциялар, жүйе параметрлері, жаңарту
Автотұрақ әкімшісіоқиғаларды өңдеу ережелері, аймақ режимдері, операторлар және олардың құқықтары
Тұтынушы жүйесінің инженеріинфрақұрылым, резервтік көшірме, мониторинг, желі

Құқықтар үлгі бойынша белгіленеді (12-бөлім); жоғарыдағы рөлдерге бөлу ұйымдастырушылық болып табылады.

2. Бағдарламалық құралдың құрамы және компоненттердің орналасуы

ҚызметМақсатПорт
coreқолданбалы сервер: қолданба логикасы, REST API, WebSocket, оқиға тұтынушыларыішкі
gatewayқұрылғы шлюзі: камера оқиғаларын қабылдау және таблоны басқару18010/tcp
webвеб-интерфейс және API-ге кірудің жалғыз нүктесі8088/tcp
postgresPostgreSQL 17 дерекқорыішкі
natsNATS JetStream оқиға шинасыішкі
seaweedfsобъект кадрының сақтауы, S3 протоколы18333/tcp

Бақылану профилі тексеру жинағына енгізілген; Grafana баспасында жарияланған 13000/tcp, оның қалған қызметтері тек Compose желісінде қолжетімді.

Барлық қызметтер нысанның жабық желі периметрі шегінде контейнерлерде жұмыс істейді. Жұмыс кезінде сыртқы қызметтерге қоңыраулар орындалмайды.

3. Қызметті басқару

Жұмыс каталогы: /opt/cshark-stand.

# қызметтер күйі
sudo docker compose --env-file /opt/cshark-stand/.env \
  -f /opt/cshark-stand/compose.yml --profile obs ps

# іске қосу
sudo docker compose --env-file /opt/cshark-stand/.env \
  -f /opt/cshark-stand/compose.yml --profile obs up -d

# тоқтату
sudo docker compose --env-file /opt/cshark-stand/.env \
  -f /opt/cshark-stand/compose.yml --profile obs stop

# жеке қызметті қайта іске қосу
sudo docker compose --env-file /opt/cshark-stand/.env \
  -f /opt/cshark-stand/compose.yml restart core

# қызмет журналдары
sudo docker compose --env-file /opt/cshark-stand/.env \
  -f /opt/cshark-stand/compose.yml logs -f core

4. Параметрлер

Параметрлер орта айнымалылары арқылы орнатылады (file .env қызмет сипаттамасы файлының жанында). Параметрлерді өзгерткеннен кейін қызметті қайта іске қосу керек.

АйнымалыМақсатӘдепкі мән
CSHARK_DATABASE_URLдерекқорға қосылу жолы
CSHARK_NATS_URLоқиға автобусының мекенжайыnats://nats:4222
CSHARK_S3_ENDPOINT_URLобъектіні сақтау мекенжайыhttp://seaweedfs:8333
CSHARK_S3_PUBLIC_ENDPOINT_URLклиентке сілтемелер жасау үшін сақтау мекенжайы
CSHARK_S3_ACCESS_KEY, CSHARK_S3_SECRET_KEYжадқа кіру кілттері
CSHARK_S3_BUCKETнысан контейнеріcshark-media
CSHARK_AUTH_ENFORCEміндетті аутентификацияtrue
CSHARK_AUTH_SECRETсеанс белгісіне қол қою құпиясыорнату кезінде орнатыңыз
CSHARK_CORS_ORIGINSрұқсат етілген веб-интерфейс көздері
CSHARK_WEB_PORTвеб-интерфейсті жариялау порты8088
CSHARK_OTEL_ENDPOINTтелеметриялық коллектордың мекенжайыкөрсетілмеген

5. Объектіні бастапқы орнату

Жүйеге бірінші рет кіргенде, бастапқы орнату шебері қолжетімді болады. Кезектілігі:

  1. Кірістірілген әкімші тіркелгісі үшін құпия сөзді өзгертіңіз.
  2. Объектіні (тұрақ), деңгейлерді, аймақтарды, тұрақ орындарын жасаңыз.
  3. Деңгейдің графикалық фонын жүктеңіз және нысандарды диаграммаға орналастырыңыз.
  4. Камераларды тіркеңіз және оларды тұрақ орындарымен байланыстырыңыз.
  5. Ақпараттық тақталар үшін шаблондар мен құрылғыларды жасаңыз.
  6. Қолжетімділік аймақтары мен кіру нүктелерінің графигін орнатыңыз.
  7. Оператор рөлдері мен тіркелгілерін жасаңыз.
  8. Оқиғаларды өңдеу ережелерін конфигурациялаңыз.

6. Топология мен схеманы орнату

Бөлім «Әкімшілік» → «Топология».

Иерархия: ұйымдастыру → тұрақ → деңгей → аймақ → тұрақ орны.

ӘрекетТапсырыс беру
Деңгейді құруаты мен сериялық нөмірін көрсетіңіз
Аймақ жасаңызатын, деңгей анықтамасын, түрін көрсетіңіз
Автотұрақ құрукодты (нысан ішіндегі бірегей), аймақты, түрін көрсетіңіз
Деңгейдің астарлы қабатын жүктеудеңгей жоспарының графикалық файлын жүктеп алыңыз
Диаграмма бойынша орналастырудиаграмма редакторында тұрақ орындарының, аймақтардың және құрылғылардың координаталары мен пішінін орнату

Тұрақ орындарының кодтары пайдаланушыларға көрсетіледі және сайттағы белгілерге сәйкес келуі керек.

7. Бейне аналитикалық камераларды орнату

Бөлім «Жабдық».

  1. Оқиғаларды құрылғы шлюзі мекенжайына жіберу үшін камераны конфигурациялаңыз (HTTP арқылы жеткізуші протоколы). Мекенжай мен порт камера параметрлерінде көрсетілген.
  2. Жүйеге кіретін камера анықталмаған құрылғылар тізімінде пайда болады.
  3. Камераны тіркеу: атауды, желі мекенжайын, орынды орнатыңыз.
  4. Камераны ол қызмет ететін тұрақ орындарымен байланыстырыңыз.
  5. Оқиғалардың келуін тексеріңіз: жағдай өзгерген кезде байланысты тұрақ орнының күйі өзгеруі керек.

Өнімділікті бақылау мерзімді қатысу сигналдары негізінде автоматты түрде орындалады. Құрылғы күйі «Жабдық» бөлімінде және сайт диаграммасында көрсетіледі. Күй өзгерістерінің тарихы сақталады.

Басқаруды қолдайтын құрылғылар үшін пәрмен арнасы арқылы пәрменді жіберу қолжетімді.

8. Ақпараттық тақталарды орнату

Бөлім «Көрсеткіш тақтасы».

8.1. Үлгілер

Үлгі кадрдың орналасуын сипаттайды және аймақтардан тұрады:

Аймақ түріМазмұны
Мәтінмәтінмәндік мән ауыстыруы бар ерікті мәтін
Бос орындар есептегішіаймақтағы немесе нысандағы бос орындар саны
бағыт көрсеткісіаймаққа қарай қозғалыс бағыты
Кескінстатикалық кескін
QR кодысілтеме кескінге кодталған
Деңгейлік картажоғары ажыратымдылықтағы мониторларға арналған деңгей диаграммасы
Аймақтық кестеаймақтың қысқаша мазмұны
Көрсеткішсандық көрсеткіш

Қаріп өлшемі аймақ өлшеміне автоматты түрде реттеледі; Егер аймақтың сыйымдылығы жеткіліксіз болса, үлгіні сақтау кезінде ескерту беріледі.

8.2. Көрсеткіш құрылғылар

  1. Құрылғы жасаңыз, сыныпты таңдаңыз: мәтіндік жарықдиодты панель (EK07, TCP/RS-485 протоколы) немесе жоғары ажыратымдылықтағы монитордағы веб-киоск.
  2. Қосылым параметрлерін көрсетіңіз.
  3. Сілтеме үлгісі, аймақ және кіру нүктесі.
  4. Жасалған кадрды алдын ала қарау арқылы нәтижені тексеріңіз.

Веб киоск үшін пішіннің жалпы мекенжайы жасалады /kiosk/display/<идентификатор>?token=<токен>; монитор бұл бетті киоск режимінде ашады. Белгіше мазмұнға қол жеткізуді шектейді.

8.3. Мазмұн басымдықтары

Төтенше жағдай → қолмен ауыстыру → кесте → штаттық кесте. Төтенше жағдай мазмұны (өрт немесе баспана режимі) кез келген басқа мазмұнды ауыстырады және оны қолмен ауыстыру мүмкін емес.

8.4. Мәтіндердің мекенжайаты

Қолжетімсіздік себептері жалпыға ортақ (жүргізушіге көрсетіледі) және әкімшілік (тек қызметкерлерге ғана қолжетімді) болып бөлінеді. Әкімшілік мәтіндер жалпы киоск жауабында және WebSocket ағынында физикалық түрде жоқ. Дисплейдің диагностикалық күйі мына жерден қолжетімді /api/displays/{id}/state тек расталған персонал үшін.

10. Нысан режимдері мен аймақтарын орнату

Аймақ және объект мемлекеттері: қызметкерлер, өрт, баспана, техникалық қызмет көрсету.

Режимді өзгерту әдісіТапсырыс беру
Қолмен«Әкімшілік» → «Аймақтар» → режимді таңдау бөлімі
Автоматты түрдеқұрылғы шлюзі арқылы өрт автоматты жүйелерінің сигналына сәйкес

Режимді өзгерту бірден өзгереді: аймақтағы тұрақ орындарының болуы, ақпараттық тақталардың мазмұны (төтенше жағдайдағы мазмұн жоғары басымдықты алады), оқиғаларды өңдеу ережелері және хабарламалардың құрамы.

Әкімші себебін жойғаннан кейін қалыпты режимге қолмен оралады.

11. Оқиғаларды өңдеу ережелерін орнату

Бөлім «Әкімшілік» → «Ережелер».

Ереже келесі схема бойынша белгіленеді:

триггер (оқиға түрі) × аймақ (нысан, аймақ, орындар тобы, нақты орын) × условие шарты условие (уақыт, күй, басқа белгілер) → әрекеттер

Қолжетімді әрекеттер: операторға хабарлау, оқиға жасау, күйді өзгерту, құрылғыға пәрмен жіберу.

Ереже қызметтерді қайта іске қоспай-ақ күшіне енеді. Ережелерді қолдану тәртібі олардың басымдығымен анықталады.

Мысалдар: «қозғалысы шектеулі адамдарға арналған аймақтағы белгілерді бұзу → төтенше жағдайды тудырады»; «Кіре берістегі автотұрақ рұқсатсыз 10 минуттан астам уақыт бойы бос тұр → ауысым бастығына хабарлаңыз».

12. Пайдаланушыларды, рөлдерді және құқықтарды басқару

Бөлім «Әкімшілік» → «Пайдаланушылар» және «Рөлдер».

  • Рұқсаттар «ресурс: әрекет» пішінінің бір кеңістігінде орнатылады (мысалы, displays:manage, users:manage).
  • Рөл - рұқсаттардың аталған жиыны. Пайдаланушыға рөл тағайындалады; Сонымен қатар, жеке рұқсаттар берілуі мүмкін.
  • Құқықтарға байланысты пайдаланушыға қолжетімді емес интерфейс бөлімдері шарлауда көрсетілмейді.
  • Пайдаланушы әрекеттері әрекеттер журналында жазылады.

Құпия сөз талаптары: кемінде 6 таңба. Құпия сөздер хэштер түрінде сақталады (bcrypt алгоритмі); олар анық мәтінде сақталмайды немесе берілмейді.

Сессиялар қол қойылған белгілермен жүзеге асырылады; қол қою құпиясы параметр арқылы көрсетіледі CSHARK_AUTH_SECRET. Құпияны өзгерту барлық белсенді сеанстарды аяқтайды.

13. Сыртқы жүйелермен интеграцияны орнату

Бөлім «Әкімшілік» → «Интеграциялар».

МүмкіндікСипаттама
REST APIнысандардың анықтамалықтары, тұрақ орындарының болуы, сыртқы кіруді басқару жүйесінің сеанстары туралы ақпарат алу; OpenAPI сипаттамасы мына жерден қол жетімді /openapi.json
Қол жеткізу пернелерікөріну аумақтарымен және сұрау жылдамдығы шектеулерімен жасалады
Шығатын вебхуктароқиғаларға сыртқы жүйеге жазылу; сұрауларға қол қойылады, қате болған жағдайда жеткізу қайталанады

Серіктес автоматтандырылған тұрақ жүйесімен (кіру тобы) өзара әрекеттесу осы механизмдер арқылы жүзеге асырылады.

14. Деректерді сақтау және сақтау саясаты

ДеректерСақтау орныЖарамдылық мерзімі
Каталогтар, топология, пайдаланушылардеректер базасышексіз
Сапарлар, автотұрақ оқиғалары, адамдар санының суреттеріобъект және уақыт индекстері бар тұрақты PostgreSQL кестелерібекітілген операциялық саясатпен анықталады
Оқиға бейнелеріобъектіні сақтаутеңшелетін, оқиғаны сақтау мерзіміне сәйкес
Пайдаланушы әрекеттерінің журналыдеректер базасытеңшеуге болады

Сақтау мерзімі жүйе параметрлері бөліміндегі саясаттармен белгіленеді. Бейнебаян тек шектеулі уақыт сілтемелері арқылы қолжетімді; сақтау орындарына халықтың тікелей кіруі жабық.

15. Сақтық көшірме жасау және қалпына келтіру

15.1. Сақтық көшірме

tools/backup/backup.sh /path/to/backups

Дерекқордың демпі және медиа манифесті жасалады. Сақтау нысандары синхрондау құралдарының көмегімен бөлек көшіріледі - пәрмен сценарий арқылы шығарылады. Ұсынылатын жиілік: мәліметтер қоры – күн сайын (хосттағы кестеге сәйкес), БАҚ материалдары – апта сайын. Көшірмелерді сақтау тереңдігі деректерді жүйеде сақтау мерзімінен кем емес.

15.2. Көшірмені тексеру

Жұмыс істеуге қауіп төндірмейтін уақытша дерекқорға қалпына келтіру:

tools/backup/restore.sh backups/cshark-XXXX.dump cshark_restore_check

Сценарий салыстыру үшін басқару есептегіштерін (көлік орындары, барулар, оқиғалар, пайдаланушылар) көрсетеді.

15.3. Қалпына келтіру

Қалпына келтіру алдында тоқтатыңыз core және gateway Құрастыру файлы арқылы /opt/cshark-stand/compose.yml, жеткізуден стандартты қалпына келтіру сценарийін орындап, сол қызметтерді бастаңыз. Сақтық көшірмеге командалар мен жол жұмыс журналында жазылады; қалпына келтіру алдымен бөлек стендте сыналады.

Медиа материалдар манифестке қарсы тексерумен нысан контейнеріне синхрондау арқылы қалпына келтіріледі.

16. Мониторинг және диагностика

ТексеруКоманда немесе мекенжай
Қолданбаның денсаулығыcurl -fsS http://127.0.0.1:8088/api/health
Қызмет күйіsudo docker compose --env-file /opt/cshark-stand/.env -f /opt/cshark-stand/compose.yml --profile obs ps
Журналдарsudo docker compose --env-file /opt/cshark-stand/.env -f /opt/cshark-stand/compose.yml logs -f core

Бағдарламалық құрал OpenTelemetry стандартына сәйкес көрсеткіштерді, журналдарды және жолдарды жасайды. Бақылау профилі қосылғанда, Grafana панельдері қолжетімді болады.

Негізгі көрсеткіштер:

КөрсеткішБұл нені білдіреді
жарияланған оқиғалар саныжабдықтан мәліметтерді қабылдау
өңделген оқиғалар санықолданбалы сервер тұтынушыларының жұмысы
өңделмеген хабарламалардың көлеміөсу сервердің жұмыс істей алмайтынын немесе тұтынушының тоқтағанын білдіреді
қосылған WebSocket клиенттерінің саныбелсенді оператор жұмыс орындары

Жеке және құпия деректер журналдардан автоматты түрде алынып тасталады.

17. Бағдарламалық құралды жаңарту

Жаңартуды тұтынушы әкімшісі бастайды. Нысанның периметрінен тыс жерлерден мәжбүрлеп жаңарту және қашықтан басқару тетіктері жоқ.

Ағымдағы шығарылым автоматты қашықтан жаңартуды қамтымайды. Перспективалы басқарылатын механизмді енгізу алдында жаңарту бөлек нормативтік жеткізу ретінде орындалады: қол қойылған офлайн жинағын қабылдаңыз, SHA-256 және шетелдік кілт қолтаңбасын тексеріңіз, резервтік көшірмені жасаңыз және тексеріңіз, шығарылымға арналған нұсқауларды және толық түтін сынамасын орындаңыз. Операцияны әкімші келісілген техникалық қызмет көрсету терезесінде жүзеге асырады.

Тасымалдаулар кеңейту-қысу принципін ұстанады: үзіліс схемасының өзгерістері оларсыз жұмыс істейтін кодты шығарғаннан кейін шығарылымда шығарылады. Сондықтан кодтың алдыңғы нұсқасына оралу қауіпсіз және схеманы кері қайтаруды қажет етпейді.

Қайтаруға деректер схемасының үйлесімділігін бағалағаннан кейін алдыңғы нұсқаның бұрын сақталған және тексерілген жинағында ғана рұқсат етіледі. Орнатылған данада контейнер тегін өзгерту стандартты жаңарту емес.

18. Типтік ақаулар және оларды шешу жолдары

Қол қоюЫқтимал себебіӘрекеттер
Тұрақ орындарының күйлері жаңартылмайдыоқиғаны жеткізу бұзылғанкамераның қолжетімділігін тексеру; құрылғы шлюзінің журналдарын тексеру; өңделмеген хабарлардың жылдамдығын тексеріңіз - егер ол жоғарыласа, қолданба серверін қайта іске қосыңыз
Оқиғалар кадрсыз келедінысанды сақтау қолжетімсізсақтау қызметін тексеру; оқиғалар жоғалмайды, кадрлар қол жетімсіздік кезеңінде ғана жоғалады
Табло жаңартылмайдыдисплей құрылғысы қолжетімсіз«Жабдық» бөліміндегі қосылымды тексеріңіз; кадрды алдын ала қарау - егер кадр қалыптасса, мәселе құрылғымен байланыс арнасында
Веб-интерфейс қолжетімді емесҚызмет жұмыс істемейді немесе порт бос емесыдыстардың жағдайын тексеру; порт қайшылығы болса, орнатыңыз CSHARK_WEB_PORT және қайта іске қосыңыз
Веб-интерфейс циклді түрде қайта іске қосыладыжоғалған контейнерлік желікілтпен қызметті қайта жасаңыз --force-recreate
Барлық пайдаланушылар жүйеге кірмегенбелгіге қол қою құпиясын өзгерттітексеру CSHARK_AUTH_SECRET; құпияны өзгерткеннен кейін қайта кіру қажет
Жадқа кадрларды жүктеу қатесі уақыттың сәйкессіздігін көрсетедіхост пен контейнер сағатының дивергенциясыNTP арқылы хост уақытын синхрондаңыз
Деректер базасының көлемі өсудесақтау саясаты конфигурацияланбағанжүйелік параметрлерде оқиғалар мен кадрлардың сақтау мерзімін орнатыңыз

19. Файлдар мен компоненттердің орналасуы

ҚұрамдасОрналасқан жері
Қызмет сипаттамасы файлы/opt/cshark-stand/compose.yml
Қоршаған орта параметрлері/opt/cshark-stand/.env
Негізгі мәліметтер/opt/cshark-stand/INITIAL-CREDENTIALS.txt
Орнату журналы/opt/cshark-stand/install.log
Мәліметтер базасының деректеріДокер көлемі pg_data
Объектіні сақтау деректеріДокер көлемі seaweed_data
Оқиға автобусының деректеріДокер көлемі nats_data
Қолданба серверінің бастапқы коды (суреттің ішінде)/app/apps/core/app/
Құрылғы шлюзінің бастапқы мәтіні (сурет ішінде)/app/apps/gateway/gateway/
Дерекқор схемасын тасымалдау/app/apps/core/alembic/versions/
Статикалық веб-интерфейс файлдары/usr/share/nginx/html/ веб-интерфейс контейнерінде
Бағдарламалық қамтамасыз ету интерфейсінің спецификациясыhttp://<мекенжай>:8088/openapi.json
Интерактивті API құжаттамасыhttp://<мекенжай>:8088/docs

Контейнер ішіне кіру:

sudo docker compose --env-file /opt/cshark-stand/.env \
  -f /opt/cshark-stand/compose.yml exec core sh
docker run --rm cshark-core:<нұсқа> cat /etc/os-release    # образдың негізгі операциялық жүйесі

20. Техникалық қамтамасыз ету

АрнаМағынасы
Ұйымдастыру ұйымы«КОМПЕТЕНЦИЯ» ЖШС
Телефон нөмірі: 8700000000+7 495 532-61-18
Жұмыс режиміДүйсенбі-жұма, Мәскеу уақыты бойынша 09:00-18:00
Қолдау мекенжайы115280, Мәскеу, көш. Ленинская Слобода, 21, 1 корпус

Сұраныстарды өңдеу тәртібі, басымдықтары және жауап беру уақыты құжатта келтірілген «Бағдарламалық қамтамасыз етудің өмірлік циклін қамтамасыз ететін процестерді сипаттау».