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, анын калган кызматтары Жазуу тармагында гана жеткиликтүү.
Бардык кызматтар объекттин жабык тармак периметри боюнча контейнерлерде иштейт. Иш учурунда тышкы кызматтарга чалуулар аткарылбайт.
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 кызматтын сүрөттөмө файлынын жанында). Орнотууларды өзгөрткөндөн кийин, кызмат кайра иштетилиши керек.
| Variable | Максат | Демейки маани |
|---|---|---|
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. Шаблондор
Шаблон кадрдын макетін сүрөттөйт жана аймактардан турат:
| Аймактын түрү | Мазмуну |
|---|---|
| Текст | контексттик маанини алмаштыруу менен каалаган текст |
| Бош орундардын эсептегичи | зонадагы же объекттеги бош орундардын саны |
| багыт жебе | зонага карай кыймылдын багыты |
| Сүрөт: pixabay.com | статикалык сүрөт |
| QR коду | шилтеме сүрөткө коддолгон |
| Деңгээл картасы | жогорку чечим мониторлор үчүн деңгээл диаграмма |
| Аймактык таблица | зонанын корутундусу |
| Индикатор | сандык көрсөткүч |
Ариптин өлчөмү автоматтык түрдө аймактын өлчөмүнө ылайыкташтырылган; Эгерде аймактын кубаттуулугу жетишсиз болсо, шаблонду сактоодо эскертүү берилет.
8.2. Дисплей түзмөктөрү
- Түзмөк түзүңүз, классты тандаңыз: тексттин LED панели (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. Тышкы системалар менен интеграцияны орнотуу
Бөлүм "Администрация" → "Интеграциялар".
| Мүмкүнчүлүк | Description |
|---|---|
| REST API | объекттердин маалымдамалары, унаа токтотуучу жайлардын болушу, тышкы кирүүнү башкаруу системасынын сессиялары жөнүндө маалымат алуу; OpenAPI спецификациясын бул жерден таба аласыз /openapi.json |
| Кирүү баскычтары | көрүнүү чөйрөлөрү жана суроо-талаптын ылдамдыгы чектери менен түзүлөт |
| Чыгуучу вебхуктар | окуяларга тышкы системага жазылуу; суроо-талаптарга кол коюлат, ката болсо жеткирүү кайталанат |
Өнөктөштүн автоматташтырылган паркинг системасы (кирүү тобу) менен өз ара аракеттенүү ушул механизмдер аркылуу ишке ашырылат.
14. Маалыматтарды сактоо жана сактоо саясаты
| Маалыматтар | Сактоочу жай | Сактоо мөөнөтү: 12 ай |
|---|---|---|
| Каталогдор, топология, колдонуучулар | базасы маалыматтары базасы. | чексиз |
| Зыяраттар, унаа токтотуучу жайлардын иш-чаралары, адамдарды ээлөө сүрөттөрү | объект жана убакыт индекстери менен үзгүлтүксүз 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 |
| Environment Settings | /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 |
| Interactive 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. Техникалык колдоо
| Канал | Мааниси |
|---|---|
| Организациянын аты-жөнү: | ООО "КОМПЕТЕНЦИЯ" |
| Телефон номери: 0700-0001 | +7 495 532-61-18 |
| Иштөө режими | Дүйшөмбү-Жума, Москва убактысы боюнча 09:00-18:00 |
| Колдоо дареги | 115280, Москва, ул. Ленинская слобода, 21, 1 корпус |
Документте суроо-талаптарды кароонун тартиби, артыкчылыктары жана жооп берүү мөөнөттөрү келтирилген "Программалык камсыздоонун жашоо циклин камсыз кылуучу процесстердин сүрөттөлүшү".