[Системное администрирование] Отдельный LOG диск для Kerio Control
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Казалось чего проще вынести логи на отдельный диск, но нет, есть свои подковырки.
Предыстория
Помню, был прекрасный зимний вечер, как вдруг выяснилось, что с 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
===========
Похожие новости:
- [Информационная безопасность, Системное администрирование, Удалённая работа] DDoS на удаленке: RDP-атаки
- [PostgreSQL, Администрирование баз данных, Системное администрирование] Типичные ошибки при построении высокодоступных кластеров и как их избежать. Александр Кукушкин
- [Восстановление данных, Резервное копирование, Серверное администрирование, Системное администрирование] Политики хранения Veeam B&R — распутываем бэкапные цепи вместе с техподдержкой
- [DevOps, Kubernetes, Системное администрирование, Серверное администрирование] Эфемерные тома с отслеживанием емкости хранилища: EmptyDir на стероидах (перевод)
- [Сетевые технологии, Системное администрирование] Синхронизация внешних календарей и адресных книг в Zimbra OSE
- [Высокая производительность, Системное администрирование, SQL, Big Data, Хранилища данных] Забиваем телескопом гвозди или нестандартные способы использования ClickHouse. Александр Зайцев (2018г)
- [*nix, DevOps, Git, Kubernetes, Системное администрирование] Разбираемся с Custom Tooling в Argo CD
- [DevOps, Системное администрирование] Ускоряем Ansible
- [DevOps, Kubernetes, Серверное администрирование, Системное администрирование] Онлайн-интенсив SRE: всё сломаем до основания, потом починим, ещё пару раз сломаем, а затем выстроим заново
- [IT-компании, Процессоры, Системное администрирование, Софт] Microsoft выпустила для Windows 10 и Windows Server большой комплект обновлений микрокодов для процессоров Intel
Теги для поиска: #_sistemnoe_administrirovanie (Системное администрирование), #_kerio_control, #_sistemnoe_administrirovanie (
Системное администрирование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:30
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Казалось чего проще вынести логи на отдельный диск, но нет, есть свои подковырки. Предыстория Помню, был прекрасный зимний вечер, как вдруг выяснилось, что с 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 =========== Похожие новости:
Системное администрирование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 13:30
Часовой пояс: UTC + 5