Русский
Русский
English
Статистика
Реклама

Отдельный LOG диск для Kerio Control

Казалось чего проще вынести логи на отдельный диск, но нет, есть свои подковырки.



Предыстория


Помню, был прекрасный зимний вечер, как вдруг выяснилось, что с Kerio Control беда.
Kerio Control, не мог записать изменения в конфигурацию и вообще происходила какая-то бесовщина!
Диагноз был быстрый и точный кончилось место на системном диске Kerio Control.



Причина, большей старый лог.

Вариантов решения было несколько:
Почистить логи
Увеличить место на системном диске
Добавить дополнительный диск для логов

Последний казался самым логичным.
Действительно мы не ищем легких путей, а пытаемся выполнить работу на совесть, да так чтобы такое больше не повторялось и нечто не могло-бы испортить очередной прекрасный вечер.

Искушённый читатель статьи, сразу скажет но позвольте Kerio сам умеет вычищать логи и хранить журналы в четко заданных временных рамках.
Да умеет, но лог вылез по обьему из временного промежутка заданного на сервере. Как быть при такой ситуации?

Решение



Kerio Control Virtual Appliance это виртуальная машина которая живет на одном диске, решение казалось очень простым:

Добавь дополнительный виртуальный диск в гипервизоре
Сделать разметку ext4 или ext3
Добавить монтирование нового диска в fstab
Найди конфигурационный файл Kerio и указать новый путь для логов.

НО НЕТ!

Начиная с пункта Добавить монтирование нового диска в fstab что-то пошло не так.

Как выяснилось, Kerio плевать хотел на fstab.
Диск прекрасно монтировался в ручную, но вот автоматический после запуска чего-то не хотел.

После долгих шатаний по файловым директориям в поисках неизвестно чего, мое внимание привлек файл 05basefs, а именно мне очень понравились следующие надписи base и fs, а вот 05 совсем не заинтересовало. Изучив его содержимое я понял что файловая система монтируется именно тут.

Далее все казалось простым, с давних пор существует файл winroute.CFG, все настройки хранятся там, там же можно указать и путь к директории с логами.
Но как выяснилось, я и тут ошибался, Kerio обращает внимание на новые пути в конфигурационном файле, но что-то работает не так, лог после изменения путей валит ошибки либо вообще ни отображает ничего.
Ну и ладно смонтируем новый диск в по текущему размещению лога!

Реализация


После всего выше сказанного реализация очень проста.

Для начала нам нужно подключится к терминалу Kerio Control, проще всего это сделать, используя SSH.

Временно включаем доступ SSH
Для этого необходимо залогинится в админке и перейти в раздел Состояние системы удерживая зажатую кнопку Shift


Если вы все сделали правильно, внизу рядом с кнопкой перезагрузки сервера появится кнопка активации SSH


Временно активируем SSH (не забудьте отключить его после настройки!)
После включения SSH можно подключится к серверу используя SSH клиент.

Лучше использовать клиент который сразу умеет копировать файлы на сервер, позже объясню почему.

Итак, что мы сейчас имеем:
Мы создали и подключили новый диск к серверу
Разметили его в ext4 или ext3
Активировали SSH и подключились к серверу

Далее нам нужно исправить файл 05basefs который находится по следующему пути .\etc\boxrc.d\05basefs
Но перед тем как его править нужно, сделать еще две вещи.

Первое узнать dev нового диска для логов
Для того чтобы узнать имя диска выполним lsblk и получим что-то вроде



где:
SDA системный диск
sda1 загрузчик
sda2 и sda3 текущая и по всей видимости предыдущая версия Kerio
sda4 Var здесь конфигурация и логи по умолчанию
SDB наш новый диск

В том случае, если нам необходимо сохранить текущие логи, нужно временно примонтировать диск sdb в любую пустую директорию и перенести содержимое /var/winroute/logs на примонтированный sdb

После переноса отмантируем sdb

Второе разрешить файловой системе изменение системных файлов
Kerio монтирует системный диск где располагается 05basefs с правами только на чтение

чтобы посмотреть, что куда и как премотированно выполняем mount



Можно увидеть что /dev/sda2 находится в состоянии RO, а и именно там находится текущая версия Kerio и там-же находится 05basefs

Временно разрешим запись в /dev/sda2 командой mount -o rw,remount /dev/sda2
Теперь, можно исправить файл 05basefs, лично я предпочитаю копировать уже исправленный файл это удобно, так как сделав это один раз придётся повторять процедуру подмены файла каждый раз после обновления версии Kerio, так как с новой версией восстанавливается оригинальный 05basefs.

Также для изменения файла можно воспользоваться редактором vi он есть в системе.

Изменяем 05basefs следующим образом исправления указаны жирным

#!/bin/sh
# $Revision: 1.13 $

case "$1" in
start)
grep -q /tmp /proc/mounts || mount -t tmpfs tmp /tmp
mkdir -p /tmp/run

root=$(grep " / " /proc/mounts | grep -v rootfs | sed 's/ .*//')
DATA=${root%[23]}4
BOOT=${root%[23]}1

modprobe ext3
mount -o ro -t ext3 $BOOT /boot
if [ ! -z "$DATA" ] && ! mount -o data=ordered $DATA /var 2>/dev/null; then
echo "Creating new data partition..."
#mkfs.nilfs2 -b 1024 $DATA
mkfs.ext3 -b 4096 -q $DATA 2>&1
tune2fs -c 0 -i 0 -r 0 -E stride=512,stripe-width=512 $DATA
fsck -p $DATA
mount -o data=ordered $DATA /var
[ -d /var.default ] && cp -a /var.default/* /var
elif [ -f "/var.default/update.list" ]; then
for i in `cat /var.default/update.list`; do
[ -e "/var.default/$i" -o -h "/var.default/$i" ] || continue
! [ -e "/var/$i" -o -h "/var/$i" ] || continue
mkdir -p $(dirname "/var/$i")
cp -a "/var.default/$i" "/var/$i"
done
fi
mount -t ext4 /dev/sdb /var/winroute/logs
exit 0
;;
stop)
echo "Umounting data partition..."
for i in $(seq 1 10); do
if fuser -sm /var; then
sleep 1
else
break
fi
done
fuser -kms /var/winroute/logs
umount /var/winroute/logs

fuser -kms /var
umount /var
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac


Теперь вернем sda2 в исходное состояние командой mount -o rо,remount /dev/sda2

Пояснения
mount -t ext4 /dev/sdb /var/winroute/logs
монтирует sdb по оригинальному пути логов /var/winroute/logs

fuser -kms /var/winroute/logs
umount /var/winroute/logs

Размонтирует sdb для корректного выключения сервера.

После перезагрузки сервера, Kerio будет записывать логи на наш выделенный диск SDB.

Костыль


(ведь без костыля нельзя)

Как я уже ранее изложил, в том случае, если версия Kerio будет обновлена, файл 05basefs вернется в оригинальное состояние, Kerio вновь начнет записывать логи в sda4. По пути /var/winroute/logs

Для того чтобы Kerio продолжал записывать лог на SDB необходимо повторить процедуру подмены файла.
Источник: habr.com
К списку статей
Опубликовано: 09.09.2020 02:17:59
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Системное администрирование

Kerio control

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru