Проект состоит из двух утилит [dci6-support](#DCI6-SUPPORT) и [dci6-support-reader](#DCI6-SUPPORT-READER) ## DCI6-SUPPORT #### Предназначена для сбора основной диагностической информации: - серверные ОС на которых расположены платформа DCImanager6 и Локации - данные относящиеся к работе непосредственно DCImanager6 #### Выполняется сбор таких данных как: ##### Операционная Система - версия BIOS - версия ОС - установленные пакеты - смонтированные файловые системы - средняя нагрузка - информацию о ЦП - ОЗУ - время работы - запущенные фаерволы - служба времени и состояние синхронизации времени - настройка сети, сетевых соединений, файл /etc/hosts - доступ к основным интернет-ресурсам ispsystem - настройки безопасности ОС (будут показаны в зависимости от ОС: Astralinux, Ubuntu, Almalinux) - состояние запущенных контейнеров docker - записи journalctl за сутки, warning, error, critical (-p 4) ##### Платформа - базовая информация о локациях - задачи taskmanager за месяц, со статусом failed - оборудование количество по типам и локациям - установленные плагины - количество пользователей - наличие настроенного LDAP соединения и последние успешные синхронизации - настроенные репозитории - шаблоны ОС, кроме тех, которые из репозитория ISPSystem - наличие настроенного real ip - настройки задач резервного копирования #### [Результат работы утилиты на сервере:]() - файл server_information.json - файл dci_platform_information.json - лог dci_support_info.log #### Бинарники [Брать тут]() Компилируется так: CGO_ENABLED=0 go build -a -ldflags="-s -w" -o techsup-dci6 #### Известные проблемы - нужно перепроверить все получаемые данные из БД на null. Проблема в последующей конвертации в строку ## DCI6-SUPPORT-READER #### Предназначена для просмотра инженером полученных данных В интерфейсе есть две кнопки server и platform, по их нажатию открывается выбор файла. Выбираем, соответственно json файлы #### Бинарники [Брать тут]() - паковалось с помощью утилит fyne (fyne-cross) - для Windows отдельный EXE, протестирован на Windows 11 - для Linux есть бинарник в *linux-amd64/ts_dci6_reader._cross/usr/local/bin* или используя [makefile]() в linux-amd64/ts_dci6_reader._cross выполнить ***make install*** для установки как пакет в систему. Запускалось на ALSE 1.8.3, Ubuntu 20.04, Ubuntu 25.10 #### Известные проблемы - повторная загрузка json файлов создаст двойной набор табов, поэтому сейчас после того как загрузили один раз, например server.json нужно переоткрыть утилиту, что бы загрузить server.json ещё раз - перепаковано без иконок, некрасиво - на некотрых вкладках, например journalctl не работает вертикальный скролл мышем. Многие строки сильно большие, world-wrap ещё настроить нужно, поэтому скролл мышем там горизонтальный - в некоторых табах данные не копируются, если это будет проблемой, поменяю тип отображения. ## Что планируется добавить: ### 2604-1 #### DCI6-SUPPORT - [x] 1) dci license check, dci license info - [x] 2) flag verbose будет отображать записи лога также в консоль - [x] 3) docker stats -a --no-stream #docker-tab - [x] исправить сбор данных по пакетам. Сейчас собирает название пакета и его описание. Нужна версия. #fix - [x] 4) получить правила действующего фаервола - [x] 5) history - [x] 6) копировать файл install.log - [x] 7) флаги -location и -platform, разделение на разные виды запуска утилиты сбора, make main.go small again - [x] 8) логи suprevisord.log из контейнеров - [ ] 9) Структура(ы) данных для сбора информации по оборудованию. Логика запуска сбора информации по оборудованию - [ ] [ ] 9.1) server - [ ] [ ] 9.2) switch - [ ] [ ] 9.3) pdu - [ ] [ ] 9.4) ups - [ ] [ ] 9.5) san - [ ] NetworkManager Networking #fix - [ ] Интернет https license #fix - [ ] проверка доступа к интеренет ресурсам из контейнеров dci_back, license - [ ] [ ] обработать проверку доступов для закрытого контура (ip ресурсов == docker ip или есть патч CLOSED CIRCUIT) - [x] !!! Проверить на существование БД isp (в новых установках) - [ ] #fix функция опроса mysql не закрывает соединения. - [ ] Перенести получение файлов и логов контейнеров перед проверкой sql сервера - [ ] Проверить работу функции isPlatform() сейчас я её просто игнорирую (или поменять логику работы так, что бы просто доверять флагу -platform - [ ] #fix ошибка получения статуса supervisord ошибка supervisorctl status в updater: exit status 3 #### DCI6-SUPPORT-READER - [x] механизм очистки табов кнопки, которую нажали повторно #fix - [x] показывать в выборе файлов только файлы json #fix - [x] тип предстовления данных, в итераторе с возможностью копирования и вертикальным скролом - [ ] docker stats странное выделение #fix - [ ] Сверить docker-compose.yaml на платформе с референсным (curl -L https://download.ispsystem.com/6/dci/dcibox/docker-compose.2026.01.1.yaml) шллллллллло