При принудительной перезагрузке платформы DCImanager 6 может повредиться база данных (БД) Clickhouse, и контейнер clickhouse_server прекратит работу.
В результате перестанет отображаться статистика сервера, а в интерфейсе появится ошибка: Error 10106, Graphite request error, Got response code 503:
Диагностика
- Подключитесь к серверу с платформой по SSH.
-
Подключитесь к контейнеру clickhouse_server:
Имена контейнеров могут отличаться в зависимости от используемой версии Docker Compose. Вместо символа подчёркивания в именах контейнеров может использоваться дефис.
Чтобы узнать точные имена контейнеров, выполните команду:
docker ps -a
docker exec -it clickhouse_server sh
-
Проверьте наличие в логе контейнера clickhouse-server.log ошибки ClickHouse init process failed:
grep 'ClickHouse init process failed' /var/log/clickhouse-server/clickhouse-server.log
Если вывод покажет ошибки, значит причина — в повреждённой БД Clickhouse. Пример вывода:
ClickHouse init process failed.
-
Проверьте лог clickhouse-server.err.log в реальном времени:
tail -F /var/log/clickhouse-server/clickhouse-server.err.log
Если БД Clickhouse повреждена, в нём отобразятся ошибки вида:
2023.02.07 08:42:05.203655 [ 115 ] {} <Error> dci.graphite (ec566f01-a447-406f-b275-92a2b3cd85ab): Detaching broken part /var/lib/clickhouse/store/ec5/ec566f01-a447-406f-b275-92a2b3cd85ab/202212_43911_57173_11575 (size: 0.00 B). If it happened after update, it is likely because of backward incompatibility. You need to resolve this manually 2023.02.07 08:42:05.211909 [ 115 ] {} <Error> dci.graphite (ec566f01-a447-406f-b275-92a2b3cd85ab): while loading part 202212_43911_57178_11580 on path store/ec5/ec566f01-a447-406f-b275-92a2b3cd85ab/202212_43911_57178_11580: Code: 27. DB::ParsingException: Cannot parse input: expected 'columns format version: 1\n' at end of stream. (CANNOT_PARSE_INPUT_ASSERTION_FAILED), Stack trace (when copying this message, always include the lines below)
Решение
-
Запустите восстановление базы:
docker exec -it clickhouse_server touch /var/lib/clickhouse/flags/force_restore_data
-
Проверьте лог clickhouse-server.err.log на наличие ошибок вида:
2023.02.08 03:19:33.367657 [ 546 ] {7d518126-889d-4c64-83bf-f87356dc802a} <Error> DynamicQueryHandler: Cannot send exception to client: Code: 24. DB::Exception: Cannot write to ostream at offset 280. (CANNOT_WRITE_TO_OSTREAM)
Проверить можно командой:
cat /var/log/clickhouse-server/clickhouse-server.err.log | grep 'Cannot write to ostream'
-
Если вывод показал ошибки, перезапустите контейнер командой:
docker stop clickhouse_server; docker start clickhouse_server