Thursday, June 06, 2013

Openshift, como copiar o arquivo de log do Tomcat 7

Neste post descrevo os passos para copiar o arquivo de log do Tomcat 7, rodando no Openshift (plataforma cloud da Red Hat). O objetivo de copiar o arquivo de log do Openshift para minha máquina, é simplesmente facilitar a consulta e análise dos registros de log.

Primeiro é necessário acessar a aplicação no Openshift via ssh (a forma mais simples é copiar a hash ssh na página da sua aplicação no site do próprio Openshift).

O Openshift mantém uma série de variáveis de ambiente pré-definidas, com o propósito de armazenar o caminho para algumas pastas do sistema de arquivos da plataforma. Todas essas variáveis possuem o prefixo OPENSHIFT_. Com o comando a seguir é possível listar e visualizar o conteúdo de todas essas variáveis:

<openshift>$ env | grep OPENSHIFT_

Para acessar os logs do Tomcat (JBoss EWS), utilizo a variável de ambiente OPENSHIFT_JBOSSEWS_LOG_DIR. A próxima etapa é fazer a cópia do arquivo de log para o diretório de dados (app-root/data) no OpenShift. A variável de ambiente que aponta para esse diretório é OPENSHIFT_DATA_DIR. A seguir a instrução para realizar a cópia do arquivo catalina.out:

<openshit>$ cp $OPENSHIFT_JBOSSEWS_LOG_DIR/catalina.out $OPENSHIFT_DATA_DIR

Lembre-se que por questões de segurança o Openshift só permite a transferência via ssh de arquivos contidos na pasta data

Agora é só baixar (copiar) o arquivo catalina.out do Openshift para a máquina local:

yaw@local:~/$ scp {hash_}@{app}.rhcloud.com/~/app-root/data/catalina.out /~ 

Pronto, com o arquivo local fica mais fácil analisar o log da aplicação.

[]s

2 comments:

Hinotori said...

Me ajudou brother, valeu

Unknown said...

O commando correto é:

yaw@local:~/$ scp {hash_}@{app}.rhcloud.com:~/app-root/data/catalina.out /~

A diferença é só os : (dois pontos). Mas mesmo assim me ajudou muito.

Obrigado.