This commit is contained in:
2026-04-04 00:09:02 +08:00
commit 38e896363e
117 changed files with 119311 additions and 0 deletions

101
DCIManager6/readme.md Normal file
View File

@@ -0,0 +1,101 @@
Проект состоит из двух утилит
[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
- настройки задач резервного копирования
#### [Результат работы утилиты на сервере:](<https://gitlab-dev.ispsystem.net/department/support/techsuppgetinfo/-/tree/master/output_data?ref_type=heads>)
- файл server_information.json
- файл dci_platform_information.json
- лог dci_support_info.log
#### Бинарники
[Брать тут](<https://gitlab-dev.ispsystem.net/department/support/techsuppgetinfo/-/blob/master/techsup-dci6/techsup-dci6?ref_type=heads>)
Компилируется так: CGO_ENABLED=0 go build -a -ldflags="-s -w" -o techsup-dci6
#### Известные проблемы
- нужно перепроверить все получаемые данные из БД на null. Проблема в последующей конвертации в строку
## DCI6-SUPPORT-READER
#### Предназначена для просмотра инженером полученных данных
В интерфейсе есть две кнопки server и platform, по их нажатию открывается выбор файла. Выбираем, соответственно json файлы
#### Бинарники
[Брать тут](<https://gitlab-dev.ispsystem.net/department/support/techsuppgetinfo/-/tree/master/ts_dci6_reader/fyne-cross/dist?ref_type=heads>)
- паковалось с помощью утилит fyne (fyne-cross)
- для Windows отдельный EXE, протестирован на Windows 11
- для Linux есть бинарник в *linux-amd64/ts_dci6_reader._cross/usr/local/bin* или используя [makefile](<https://gitlab-dev.ispsystem.net/department/support/techsuppgetinfo/-/tree/master/ts_dci6_reader/fyne-cross/dist/linux-amd64/ts_dci6_reader._cross?ref_type=heads>) в 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) шллллллллло