Disco LOG separado para Kerio Control

Parecia que era mais fácil colocar os logs em um disco separado, mas não, existem alguns truques.







fundo



Lembro que era uma bela noite de inverno, quando de repente ficou claro que havia um problema com o Kerio Control.

O Kerio Control não pôde gravar as mudanças na configuração e algum tipo de maldade estava acontecendo!



O diagnóstico foi rápido e preciso - o disco do sistema Kerio Control ficou sem espaço.



O motivo, o grande e velho tronco.



Houve várias soluções:



  • Limpar logs
  • Aumente o espaço em disco do sistema
  • Adicionar disco adicional para registros


Este último parecia o mais lógico.



Na verdade, não estamos procurando caminhos fáceis, mas estamos tentando fazer o trabalho com consciência, para que isso não aconteça novamente e nada possa estragar mais uma noite maravilhosa.



Um leitor sofisticado do artigo dirá imediatamente - mas deixe o próprio Kerio ser capaz de limpar os logs e armazenar os logs em um período de tempo bem definido.

Sim, ele pode, mas o volume do log saiu do intervalo de tempo especificado no servidor. Como lidar com essa situação?



Decisão



Kerio Control Virtual Appliance é uma máquina virtual que vive em um disco, a solução parecia muito simples:



  • Adicione um disco virtual adicional no hipervisor
  • Faça marcação ext4 ou ext3
  • Adicionar nova montagem de disco ao fstab
  • Encontre o arquivo de configuração Kerio e especifique um novo caminho para os logs.


MAS NÃO!



Começando com “Adicionar nova montagem de disco ao fstab”, algo deu errado.



No final das contas, Kerio não se importou com o fstab.



O disco estava perfeitamente montado manualmente, mas o automático não queria nada após o lançamento.



Depois de muito percorrer os diretórios de arquivos em busca de algo desconhecido, minha atenção foi atraída pelo arquivo 05basefs , ou seja, gostei muito das seguintes inscrições - base e fs , mas 05 não estava nem um pouco interessado. Depois de examinar seu conteúdo, percebi que o sistema de arquivos está montado aqui.



Então tudo parecia simples, por muito tempo existe um arquivo winroute.CFG, todas as configurações são armazenadas lá, você também pode especificar o caminho para o diretório com os logs lá.



Mas acabou que me enganei aqui, Kerio presta atenção em novos caminhos no arquivo de configuração, mas algo não funciona, o log após alterar os caminhos traz erros ou não mostra nada.



Bem, ok, vamos montar um novo disco no local atual do log!



Implementação



Depois de tudo isso, a implementação é muito simples.



Primeiro, precisamos nos conectar ao terminal Kerio Control, a maneira mais fácil de fazer isso é usando SSH.



Habilite temporariamente o acesso SSH.



Para fazer isso, você precisa fazer login no painel de administração e ir para a seção "Status do sistema" enquanto mantém pressionada a tecla Shift.







Se você fez tudo corretamente, um botão de ativação SSH aparecerá na parte inferior ao lado do botão de reinicialização do servidor:







Ative temporariamente o SSH (não se esqueça de desabilitá-lo após a configuração!)

Após habilitar o SSH, você pode se conectar ao servidor usando o cliente SSH.



É melhor usar um cliente que saiba imediatamente como copiar arquivos para o servidor, explicarei o porquê mais tarde.



Então, o que temos agora:



  • Criamos e conectamos um novo disco ao servidor
  • Marcado em ext4 ou ext3
  • SSH ativado e conectado ao servidor


Em seguida, precisamos corrigir o arquivo 05basefs localizado no seguinte caminho . \ Etc \ boxrc.d \ 05basefs .



Mas antes de editá-lo, você precisa fazer mais duas coisas.



A primeira é descobrir o dev do novo disco para os logs.

Para descobrir o nome do disco, execute lsblk e obtenha algo como







onde:

  • SDA - disco do sistema
  • sda1 - bootloader
  • sda2 e sda3 - a versão atual e aparentemente anterior do Kerio
  • sda4 - Var here config e logs padrão
  • SDB é o nosso novo disco


No caso de precisarmos salvar os logs atuais, precisamos montar temporariamente o disco sdb em qualquer diretório vazio e transferir o conteúdo de / var / winroute / logs para o sdb montado.



Após a transferência, desmonte o sdb.



A segunda é permitir que o sistema de arquivos modifique os arquivos do sistema

Kerio monta o disco do sistema onde 05basefs está localizado com direitos somente leitura.



para ver o que, onde e como realizamos a montagem pré-testada







Você pode ver que / dev / sda2 está no estado RO , e é aqui que a versão atual do Kerio está localizada e 05basefs também está lá. Ative temporariamente a



gravação em / dev / sda2 com o comando mount -o rw, remontar / dev / sda2

Agora, você pode corrigir o arquivo 05basefs, pessoalmente, prefiro copiar o arquivo já corrigido, isso é conveniente, já que feito isso uma vez, você terá que repetir o procedimento de substituição do arquivo todas as vezes após atualizar a versão do Kerio, já que o 05basefs original é restaurado com a nova versão.



Você também pode usar o editor vi para alterar o arquivo - ele está no sistema.



Altere 05basefs como segue



#!/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




Explicações das alterações no arquivo



mount -t ext4 / dev / sdb / var / winroute / logs

monta sdb no caminho de log original / var / winroute / logs



fuser -kms / var / winroute / logs

umount / var / winroute / logs


Desmonta sdb para corrigir encerrando o servidor.



Agora vamos retornar o sda2 ao seu estado original com o comando mount -o r®, remount / dev / sda2



Depois de reiniciar o servidor, o Kerio irá gravar logs em nosso disco SDB dedicado.



Muleta



(afinal, você não pode ficar sem uma muleta)



Como eu disse antes, se a versão do Kerio for atualizada, o arquivo 05basefs retornará ao seu estado original, o Kerio começará a gravar logs no sda4 novamente. Ao longo do caminho / var / winroute / logs.



Para que o Kerio continue gravando o log no SDB, você deve repetir o procedimento de substituição do arquivo.



All Articles