
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.