Created attachment 17372 [details] journalctl.log Стенды, обновлённые до Sisyphus: ALT Server x86-64 ALT Workstation x86-64 Версии: MySQL-server-8.0.40-alt1 wmdocker-1.5-alt3 fleet-4.58.0-alt1 Шаги: 1) Выполнить преднастройки: # apt-get install wmdocker docker-compose fleet && systemctl start docker && systemctl enable docker При попытке установить docker: Пакет docker присутствует в базе данных, но не имеет доступной версии.Тем не менее, следующие пакеты заменяют его: wmdocker E: Для пакета docker не найдено подходящего кандидата для установки Установить mysql-server # apt-get install MySQL-server && systemctl start mysqld && systemctl enable mysqld Чтобы у MySQL была возможность принимать соединения по сети: - закомментировать опцию skip-networking в файле /etc/my.cnf.d/server.cnf - настроить MySQL на прослушивание (в этом же файле /etc/my.cnf.d/server.cnf): bind-address=127.0.0.1 Настроить redis: # apt-get install redis && systemctl enable redis && systemctl start redis 2) Запустить: # fleetctl preview Успешно: Downloading dependencies from fleetdm/fleet:main into /root/.fleet/preview... Pulling Docker dependencies... Starting Docker containers... Waiting for server to start up... Initializing server... Configured fleetctl in the 'preview' context to avoid overwriting existing config. Loading standard query library... [+] applied 50 queries [+] applied 44 policies Fleet will now log you into the UI automatically. You can also open the UI at this URL: http://localhost:1337/previewlogin. Email: admin@example.com Password: ***** Enrolling local host... Trying to clear orbit and osquery directories... {"level":"debug","path":"/root/.fleet/preview/orbit/bin/osqueryd/linux/stable/osqueryd","target":"osqueryd","time":"2024-12-11T13:36:32+03:00","message":"found expected target locally"} {"level":"debug","path":"/root/.fleet/preview/orbit/bin/orbit/linux/stable/orbit","target":"orbit","time":"2024-12-11T13:36:33+03:00","message":"found expected target locally"} Waiting for host to enroll... Automatic browser open failed. Please navigate to http://localhost:1337/previewlogin. Starting simulated Linux hosts... Preview environment complete. Enjoy using Fleet! Здесь обратить внимание: 'Automatic browser open failed' 3) # fleet prepare db --mysql_address=localhost:3306 --mysql_database=fleet --mysql_username=root Фактический результат: подключение не выполняется 'Failed to start: creating db connection: dial tcp 127.0.0.1:3306: connect: connection refused' Ожидаемый результат: Migrations completed. Детали: systemctl status mysqld active (running) В /var/log/mysql/ пусто. # tail -f /var/log/redis/redis-server.log 46630:C 11 Dec 2024 14:35:31.130 * Supervised by systemd. Please make sure you set appropriate values for TimeoutStartSec and TimeoutStopSec in your service unit. 46630:C 11 Dec 2024 14:35:31.130 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 46630:C 11 Dec 2024 14:35:31.130 * Redis version=7.2.6, bits=64, commit=00000000, modified=0, pid=46630, just started 46630:C 11 Dec 2024 14:35:31.130 * Configuration loaded 46630:M 11 Dec 2024 14:35:31.131 * monotonic clock: POSIX clock_gettime 46630:M 11 Dec 2024 14:35:31.132 * Running mode=standalone, port=6379. 46630:M 11 Dec 2024 14:35:31.132 * Server initialized 46630:M 11 Dec 2024 14:35:31.132 * Ready to accept connections tcp Выполнена проверка портов 8412 и 3306. Порт 8412 не прослушивается/не открыт: # nmap -p 8412 localhost PORT STATE SERVICE 8412/tcp open unknown Порт 3306 закрыт: # nmap -p 3306 localhost PORT STATE SERVICE 3306/tcp closed mysql Есть предположение, что проблема не в самом fleet, а в mysql (точнее, в связке работы с fleet+mysql). В файле /etc/my.cnf.d/server.cnf было закомментировано: #master-port = <port> #master-password = <password> #master-user = <username> #master-host = <hostname> Изменение настроек, создание базы данных с именем fleet (на mysql) и перезапуск mysql не помогли: master-password = **** (здесь свой сгенерированный пароль из шага 2) master-user = root master-host = *** (свой хост) В journalctl: I1211 12:10:25.756448 33 tls.cpp:254] TLS/HTTPS POST request to URI: https://host.docker.internal:8412/api/osquery/log {"component":"http","ip_addr":"172.18.0.11","level":"debug","method":"POST","took":"1.25595ms","ts":"2024-12-11T12:10:25.774859672Z","uri":"/api/osquery/log","x_for_ip_addr":""} Был применён Workaround: 1) Выполнить: # firewall-cmd --add-port=3306/tcp --permanent # firewall-cmd --reload # systemctl restart mysqld После этого порт 3306 открыт (по аналогии был перенастроен порт 8412): # nmap -p 3306 localhost PORT STATE SERVICE 3306/tcp open mysql Итог: порт 3306 открыт и прослушивается (как и порт 8412): netstat -tuln | grep 3306 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 0 :::33060 :::* LISTEN 2) Создать базу данных fleet (в безопасном режиме): # systemctl stop mysqld && mysqld_safe --skip-grant-tables # mysql -u root или mysql -u root -p mysql> CREATE DATABASE fleet; mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | fleet | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0,01 sec) Снова запустить (c уже созданной базой данных fleet): # fleet prepare db --mysql_address=localhost:3306 --mysql_database=fleet --mysql_username=root Однако добиться желаемого результата не получилось: Failed to start: creating db connection: dial tcp 127.0.0.1:3306: connect: connection refused В journal те же самые сообщения (no route to host).
Чтобы установить докер лучше ставить пакет docker-engine, а не wmdocker(это виджет системного лотка). После этого, выполняя шаги из данной баги, удалось запустить fleet с ожидаемым повидением. Только перезапустил mysql после изменения конфига и заранее создал базу fleet.
Версии пакетов: fleet-4.58.0-alt1.x86_64 MySQL-server-8.0.40-alt1 docker-engine-27.1.1 Стенды, обновлённые до Sisyphus: ALT Server x86-64 ALT Workstation x86-64 Во время преднастройки необходимо заранее создать БД fleet и перезапустить mysql: # systemctl restart mysqld Тогда при выполнении команды: # fleet prepare db --mysql_address=localhost:3306 --mysql_database=fleet --mysql_username=root будет вывод: Migrations completed.