1. Құжаттың мақсаты және әкімші рөлдері
Құжат CShark бағдарламалық жасақтамасын тұтынушы сайтында конфигурациялайтын және қызмет көрсететін мамандарға арналған.
Жүйемен күнделікті жұмыс жеке құжатта сипатталған «Пайдаланушы нұсқаулығы», орналастыру - құжатта «Бағдарламалық құралдың көшірмесін орнату нұсқаулары».
| Рөл | Жауапкершілік аймағы |
|---|---|
| Жүйе әкімшісі | объект топологиясы, құрылғылар, камералар, дисплейлер, интеграциялар, жүйе параметрлері, жаңарту |
| Автотұрақ әкімшісі | оқиғаларды өңдеу ережелері, аймақ режимдері, операторлар және олардың құқықтары |
| Тұтынушы жүйесінің инженері | инфрақұрылым, резервтік көшірме, мониторинг, желі |
Құқықтар үлгі бойынша белгіленеді (12-бөлім); жоғарыдағы рөлдерге бөлу ұйымдастырушылық болып табылады.
2. Бағдарламалық құралдың құрамы және компоненттердің орналасуы
| Қызмет | Мақсат | Порт |
|---|---|---|
core | қолданбалы сервер: қолданба логикасы, REST API, WebSocket, оқиға тұтынушылары | ішкі |
gateway | құрылғы шлюзі: камера оқиғаларын қабылдау және таблоны басқару | 18010/tcp |
web | веб-интерфейс және API-ге кірудің жалғыз нүктесі | 8088/tcp |
postgres | PostgreSQL 17 дерекқоры | ішкі |
nats | NATS 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. Объектіні бастапқы орнату
Жүйеге бірінші рет кіргенде, бастапқы орнату шебері қолжетімді болады. Кезектілігі:
- Кірістірілген әкімші тіркелгісі үшін құпия сөзді өзгертіңіз.
- Объектіні (тұрақ), деңгейлерді, аймақтарды, тұрақ орындарын жасаңыз.
- Деңгейдің графикалық фонын жүктеңіз және нысандарды диаграммаға орналастырыңыз.
- Камераларды тіркеңіз және оларды тұрақ орындарымен байланыстырыңыз.
- Ақпараттық тақталар үшін шаблондар мен құрылғыларды жасаңыз.
- Қолжетімділік аймақтары мен кіру нүктелерінің графигін орнатыңыз.
- Оператор рөлдері мен тіркелгілерін жасаңыз.
- Оқиғаларды өңдеу ережелерін конфигурациялаңыз.
6. Топология мен схеманы орнату
Бөлім «Әкімшілік» → «Топология».
Иерархия: ұйымдастыру → тұрақ → деңгей → аймақ → тұрақ орны.
| Әрекет | Тапсырыс беру |
|---|---|
| Деңгейді құру | аты мен сериялық нөмірін көрсетіңіз |
| Аймақ жасаңыз | атын, деңгей анықтамасын, түрін көрсетіңіз |
| Автотұрақ құру | кодты (нысан ішіндегі бірегей), аймақты, түрін көрсетіңіз |
| Деңгейдің астарлы қабатын жүктеу | деңгей жоспарының графикалық файлын жүктеп алыңыз |
| Диаграмма бойынша орналастыру | диаграмма редакторында тұрақ орындарының, аймақтардың және құрылғылардың координаталары мен пішінін орнату |
Тұрақ орындарының кодтары пайдаланушыларға көрсетіледі және сайттағы белгілерге сәйкес келуі керек.
7. Бейне аналитикалық камераларды орнату
Бөлім «Жабдық».
- Оқиғаларды құрылғы шлюзі мекенжайына жіберу үшін камераны конфигурациялаңыз (HTTP арқылы жеткізуші протоколы). Мекенжай мен порт камера параметрлерінде көрсетілген.
- Жүйеге кіретін камера анықталмаған құрылғылар тізімінде пайда болады.
- Камераны тіркеу: атауды, желі мекенжайын, орынды орнатыңыз.
- Камераны ол қызмет ететін тұрақ орындарымен байланыстырыңыз.
- Оқиғалардың келуін тексеріңіз: жағдай өзгерген кезде байланысты тұрақ орнының күйі өзгеруі керек.
Өнімділікті бақылау мерзімді қатысу сигналдары негізінде автоматты түрде орындалады. Құрылғы күйі «Жабдық» бөлімінде және сайт диаграммасында көрсетіледі. Күй өзгерістерінің тарихы сақталады.
Басқаруды қолдайтын құрылғылар үшін пәрмен арнасы арқылы пәрменді жіберу қолжетімді.
8. Ақпараттық тақталарды орнату
Бөлім «Көрсеткіш тақтасы».
8.1. Үлгілер
Үлгі кадрдың орналасуын сипаттайды және аймақтардан тұрады:
| Аймақ түрі | Мазмұны |
|---|---|
| Мәтін | мәтінмәндік мән ауыстыруы бар ерікті мәтін |
| Бос орындар есептегіші | аймақтағы немесе нысандағы бос орындар саны |
| бағыт көрсеткісі | аймаққа қарай қозғалыс бағыты |
| Кескін | статикалық кескін |
| QR коды | сілтеме кескінге кодталған |
| Деңгейлік карта | жоғары ажыратымдылықтағы мониторларға арналған деңгей диаграммасы |
| Аймақтық кесте | аймақтың қысқаша мазмұны |
| Көрсеткіш | сандық көрсеткіш |
Қаріп өлшемі аймақ өлшеміне автоматты түрде реттеледі; Егер аймақтың сыйымдылығы жеткіліксіз болса, үлгіні сақтау кезінде ескерту беріледі.
8.2. Көрсеткіш құрылғылар
- Құрылғы жасаңыз, сыныпты таңдаңыз: мәтіндік жарықдиодты панель (EK07, TCP/RS-485 протоколы) немесе жоғары ажыратымдылықтағы монитордағы веб-киоск.
- Қосылым параметрлерін көрсетіңіз.
- Сілтеме үлгісі, аймақ және кіру нүктесі.
- Жасалған кадрды алдын ала қарау арқылы нәтижені тексеріңіз.
Веб киоск үшін пішіннің жалпы мекенжайы жасалады /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 корпус |
Сұраныстарды өңдеу тәртібі, басымдықтары және жауап беру уақыты құжатта келтірілген «Бағдарламалық қамтамасыз етудің өмірлік циклін қамтамасыз ететін процестерді сипаттау».