# Устранение проблем на сервере

# Автоматическое восстановление системы

Воспользуйтесь утилитой kctl rescue для автоматической диагностики и починки частых проблем на сервере.

  1. Залогиньтесь на сервер с Keitaro по SSH
  2. Выполните:
kctl rescue
1
Ошибка «kctl: command not found».

Выполните апгрейд конфигурации.

# Временный доступ для команды поддержки

  1. Залогиньтесь на сервер с Keitaro по SSH
  2. Выполните:
kctl support-team-access allow
1

Доступ активен в течении 5 дней. Запретить принудительно:

kctl support-team-access deny
1
Ошибка «kctl: command not found».

Выполните апгрейд конфигурации.

# FAQ

На сервере 502е ошибки.

Откройте Обслуживание — Состояние в Keitaro. Проверьте значение в строке CPU Stolen.

Показатель больше 0 — виртуальный сервер недополучает ресурсы CPU. Напишите хостеру VPS.

На сервере заполнен диск.
Я увеличил RAM, но Keitaro не видит обновления.

Выполните апгрейд серверной конфигурации.

Some internal error. See System log.

Проверьте Системный лог

Накапливаются команды в очереди.

Новые задачи добавляются быстрее, чем Keitaro обрабатывает текущие.

Если используете внешние сервисы, которые обновляют расходы - поставьте интервал между обновлениями побольше.

Ошибка RedisException. OOM command not allowed when used memory > maxmemory, много 500 ошибок трекера.
  1. Уменьшите период хранения уникальных токенов в Обслуживание → Настройки → Системные, затем Срок действия токена на лендинге.

  2. Уменьшить срок уникальности в настройках кампаний: Настройки, затем Срок уникальности.

  3. Сделайте апгрейд конфигурации

Не удаётся сохранить обновлённую лицензию.

Проверьте наличие свободного места, используя консоль: df -h

Формат вывода результата: Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1 465Gi 407Gi 57Gi 88% 106779354 15058244 88% /

Предпоследняя колонка показывает % занятости места.

Got error 28 from storage engine.

На сервере закончилось место.

Redis is LOADING the dataset.

Решение удаляет необработанную статистику, но быстро устраняет проблему.

Запустите команду:

rm -rf /var/lib/redis/*
systemctl restart redis
1
2
База данных повреждена.

Повреждение происходит при ручной перезагрузке сервера или неполадках на диске. Попробуем восстановить целостность диска.

  1. В терминале выполните:

sudo touch /forcefsck
1
  1. Перезагрузите сервер:

reboot
1
  1. Запустите MariaDB

systemctl start mysql
1
Как очистить inodes на сервере?

Inodes — это файловые дескрипторы в Linux, которые отвечают за метаинформацию о стандартных файлах, директориях или других объектах файловой системы, кроме непосредственно данных и имени.

В некоторых случаях число файловых дескрипторов близится к нулю. В ОС недостаточно описаний для определения местонахождения файлов. В таком случае, файлы необходимо удалить или очистить. Для поиска выполните:

df -i
1

В результате получите структуру файловой системы со списком и количеством инодов, которые занимает та или иная папка. Соответственно, необходимо идти по пути папки, и при каждом вхождении проверять количество инодов командой df -i. В конечном итоге, найдете папку с файлами, которую необходимо удалить командой:

rm -rf deletedfolder/ 
1

Где deletedfolder/ — имя папки, которую необходимо удалить.

ВНИМАНИЕ Обязательно сверьтесь с папкой, которую собираетесь удалить: цель — удалить папку на сервере, переполненную файловыми дескрипторами, но не системные файлы сервера и ОС. Если не уверены в выполняемых действиях, напишите в тех.поддержку, поможем очистить inode. В противном случае, рискуете привести ОС сервера в неработоспособное состояние, восстановление которого не входит в нашу компетенцию. Будьте внимательны!

Сервер работает медленно.

Это могло произойти из-за недостаточного выделения CPU-ресурсов на виртуальный сервер. Запустите на сервере команду:

vmstat 1 5
1

Формат вывода ответа:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
111  0      0 3438984  20280 603200    0    0    11    20   38   85 10  2 32  0 56
139  0      0 3435676  20280 603220    0    0     0     0  936  318 15  3  0  0 82
126  0      0 3434312  20280 603212    0    0     0     0  903  198 14  4  0  0 82
92  0      0 3450964  20280 603868    0    0     0     0  885  198 13  3  0  0 83
145  1      0 3452128  20280 604412    0    0   448     0  993  254 14  2  0  0 84
1
2
3
4
5
6
7

Обратите внимание на значения в последнем столбце st. Значение больше 0 — CPU-ресурсов выделено недостаточно. В данном случае, рекомендуем обратиться в поддержку облачного провайдера.

Как проверить диск HDD или SSD?

Посмотрите названия дисков:

cat /proc/scsi/scsi
1
Ошибка "malformed worker response".
  1. Откройте SSH терминал.
  2. Выполните:
cd /var/www/keitaro/application
find . -type f -name "*.php" -exec sed -i 's/?>//g' {} +
1
2

# Оптимизация базы

Откройте раздел Обслуживание — Состояние в Keitaro. Если присутствует уведомление Clickhouse upgrade - напишите в поддержку для перехода на Clickhouse. Eсли Обслуживание — Состояние выглядит аналогично скрину, то Clickhouse установлен, оптимизация не требуется

# Удаление всей статистики

kctl run cli-php system:delete_mysql_stats
1

Команда запросит подтверждение удаления всей статистики из MYSQL:

[WARNING] Important! The following will happen:
           - old versions tables removal,
           - clicks stats to the exact date removal (if specified in parameters),
           - optimization of the clicks in the stats,
           - cleaning all the current stats completely (if specified in parameters).

           These inquiries will block the database
           during the implementation and require additional free space on a disk.
1
2
3
4
5
6
7
8

Введите команду yes и нажмите ENTER.

Включите автоматическую чистку.

Чтобы не допускать переполнение диска, выставьте срок хранения статистики в настройках Keitaro.