Unknown macro: {center}
Portal OpenBus

OpenBus 1.5
Skip to end of metadata
Go to start of metadata

Por padrão, os serviços básicos do Openbus geram seus logs e os apresentam em tela. Contudo esta prática não é recomendada para os administradores do barramento. Por isso, disponibilizamos uma forma para rotacionar os logs em arquivos.

Redirecionar logs para arquivos

  1. É recomendado que o administrador do Openbus utilize o script de inicialização para iniciar, parar e reiniciar o barramento. Trata-se do script openbus.init que pode ser encontrado em specs/shell/openbus.init dentro do pacote de instalação do barramento ou, ainda, do pacote do Assistente de Instalação.
  2. Esse script possui variáveis que indicam onde os arquivos de logs devem ser armazenados.

Até a versão 1.5.2, os logs (por padrão) ficavam armazenados nos seguintes diretórios:

${OPENBUS_HOME}/data/acs.log
${OPENBUS_HOME}/data/rgs.log
${OPENBUS_HOME}/data/ss.log

Na versão 1.5.3, os logs (por padrão) ficam armazenados nos seguintes diretórios:

${OPENBUS_DATADIR}/log/acs.log
${OPENBUS_DATADIR}/log/rgs.log
${OPENBUS_DATADIR}/log/ss.log

Configurando o logrotate para rotacionar logs

O logrotate é um utilitário para simplificar a administração de arquivos de logs bem comum na maioria das instalação Linux e Solaris. O logrotate permite a rotação automática, a compressão dos logs antigos, a remoção de logs muito velhos e mesmo o envio de emails contendo os arquivos de logs.

Para rotacionar os logs do barramento basta configurar o logrotate com as linhas (substitua CAMINHO PARA O ARQUIVO DE LOG de acordo com a configuração que está sendo usada no openbus.init) :

<CAMINHO PARA O ARQUIVO DE LOG acs.log> {
 weekly
 compress
 copytruncate
 rotate 4
}
<CAMINHO PARA O ARQUIVO DE LOG rgs.log> {
 weekly
 compress
 copytruncate
 rotate 4
}
<CAMINHO PARA O ARQUIVO DE LOG ss.log> {
 weekly
 compress
 copytruncate
 rotate 4
}

É importante notar que:

  • A opção copytruncate é necessária pois os serviços do Openbus escrevem continuamente no log e incorrerão em erro caso os descritores de arquivos sejam alterados. Essa opção copia os arquivos de logs e depois reseta o arquivo original.
  • O rotacionamento dos logs ocorre semanalmente.
  • Armazena-se até 4 volumes dos logs antigos.
  • Os logs antigos são comprimidos.

FAQ

Onde salvar o arquivo de configuração do logrotate?

Na maioria das instalações Linux recentes já dispõem do diretório /etc/logrotate.d. Nesses casos, basta criar um arquivo chamado openbus (pode ser outro nome de sua preferência) e salvar as configurações acima nele.

É importante que o administrador leia as páginas de manual do logrotate (tipicamente: man logrotate) pois podem haver diferenças na configuração para versões antigas desse utilitário. Uma das situações comum é não haver suporte ao diretório /etc/logrotate.d, nesses casos, basta adicionar as configurações acima no arquivo /etc/logrotate.conf.

Precisa ser configurada alguma permissão especial? Qual o owner e o grupo que a configuração do logrotate precisa ter?

Não é necessário nenhuma permissão especial, basta o proprietário ser root e ter leitura para qualquer usuário (pode haver plataformas onde o logrotate execute como outro usuário que não o root).

Onde os arquivos rotacionados são armazenados?

No mesmo diretório dos arquivos originais.

Preciso executar o comando "logrotate /etc/logrotate.d/openbus"?

Não é preciso. Normalmente o logrotate é cadastrado como uma tarefa diária no cron. Mas isso não impede de que o administrador execute tal comando passando o parâmetro --force para obrigar o primeiro rotacionamento. Isso é indicado principalmente logo após a configuração inicial.

Preciso configurar para o comando "logrotate /etc/logrotate.d/openbus" ser colocado na inicialização automática da máquina? Como saber que ele está executando?

O logrotate não é um daemon, portanto não se mantém em execução. Normalmente, o logrotate é executado através do agendamento do cron. Caso não haja cron disponível em uma dada plataforma, então nesse caso será sim importante executar o comando do logrotate na inicialização da máquina.

Como usar o logrotate SEM precisar ter acesso de administrador na máquina?

O logrotate pode ser usado por usuários desprivilegiados (aqueles que não possuem acesso de root). Contudo, é muito comum que esses usuários ainda queiram rotacionar periodicamente seus arquivos de log. Nessa situação, recomendamos que o usuário adicione regras no agendador de tarefas do Unix (cron) para que o comando do logrotate seja chamado (ao menos) diariamente.

Para usuários desprivilegiados é importante usar alguns parâmetros do logrotate como o --state. Esse parâmetro indica qual arquivo de estados será usado. O logrotate usa tal arquivo de estado para registrar a data da última rotação.

Segue um exemplo de entradas na tabela do cron para executar o logrotate diariamente às 12:00 horas para o barramento instalado na pasta /pasta/openbus:

0 12 * * * /usr/sbin/logrotate --state /pasta/openbus/data/logrotate.status /pasta/openbus/data/conf/logrotate.conf

É importante notar que:

  • O arquivo logrotate.conf foi colocado na pasta data/conf da instalação deste barramento.
  • O arquivo logrotate.status contendo o último estado da rotação foi mantido na pasta data da instalação do barramento.

Como instalar o logrotate como usuário comum numa Solaris 10?

Nas plataformas Solaris a forma mais simples é baixar o pacote binário a partir do SunFreeware e usar diretamente da pasta do usuário. Um exemplo é dado a seguir:

  1. Download e extração do pacote a partir do sunfreeware:

    wget -c ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/logrotate-3.7.6-sol10-sparc-local.gz
    gunzip logrotate-3.7.6-sol10-sparc-local.gz
    mkdir /tmp/install
    pkgtrans logrotate-3.7.6-sol10-sparc-local /tmp/install
    
  2. Entendendo o conteúdo do pacote e copiando para uma pasta pessoal o binário principal

    ls -l /tmp/install/SMClogr/reloc/
      drwxr-xr-x   3 openbus  tecgraf      512 Apr 12 15:24 doc
      drwxr-xr-x   3 openbus  tecgraf      512 Apr 12 15:24 man
      drwxr-xr-x   2 openbus  tecgraf      512 Apr 12 15:24 sbin
    cp /tmp/install/SMClogr/reloc/sbin/logrotate $HOME/bin
    

Após esse procedimento basta ter a pasta $HOME/bin no PATH e usar o comando logrotate, como já indicado.

Rotacionando com o logadm (nativo da Solaris)

O logadmin é muito parecido com o logrotate. Para a rotação dos logs, nós iremos utilizar o crontab e o logadmin.
Caso não seja o root da maquina, você deve utilizar o parâmetro -f para informar um arquivo de configuração. Esse arquivo irá conter todos os logs que você deseja rotacionar. Abaixo temos um exemplo de como configurar o logadmin para rotacionar os logs do Openbus.

No crontab temos:

00 05 * * * /usr/sbin/logadm -f /pasta/openbus/data/logadm.conf

Este comando faz com que o logadm seja executado todo dia ás 5:00h AM.

Em /pasta/openbus-1.5/data/logadm.conf temos:

#Logrotate para os logs do Openbus
/pasta/openbus/data/acs-performance-ACS.log -C 5 -P 'Mon Jul 26 20:13:0
1 2010' -c -p 7d -z 0
/pasta/openbus/data/acs.log -C 5 -P 'Mon Jul 26 20:13:0
1 2010' -c -p 7d -z 0

Nós utilizamos os parâmetros "-C 5 -c -p 7d -z 0" que fazem com que o logadmin guarde os 5 últimos logs, truncando-os e comprimindo-os no formato .gz. Essa ação será feita a cada 7 dias. O parâmetro "-P" será adicionando pelo logadmin após a primeira execução, ele é responsável por controlar a data que cada comando será executado.

OBS: Na fase de teste, pode ser interessante utilizar o parâmetro "-p now" ao invéz de "-p 7d" para que você não precise esperar 7 dias para verificar se o seu logadmin está bem configurado.


Copyright (c) 2006-2012 Tecgraf/PUC-Rio. All rights reserved. See OpenBus License page for more details.


  • No labels
Write a comment…