• Nenhum resultado encontrado

Gerenciamento de logs

No documento LinuxSystemAdministration COMPLETA (páginas 183-188)

O Linux mantém arquivos de log que armazenam vários detalhes

importantes da operação do sistema. Saber como alterar a

configuração dos arquivos de log é uma importante atribuição de um

administrador de sistemas. Isso pode ser feito configurando o daemon

syslogd, normalmente proveniente do pacote sysklogd. Alguns servidores e

programas possuem seus próprios logs e podem ser configurados independentemente

do syslogd. Por medida de segurança pode ser configurado que um computador envie

seus logs para outro na rede.

É importante ter consciência que deve ser feita a correta manipulação da

rotação de logs para que eles não cresçam indefinidamente e ocupem muito espaço

em disco na partição em que estão armazenados. Assim como o syslogd, o klogd é

um daemon, também instalado pelo mesmo pacote, que grava as mensagens de log do

kernel.

Para funcionar correta e harmoniosamente, o sistema de log precisa ser

configurado. No caso do syslogd, o seu arquivo de configuração é /etc/syslog.conf.

Conhecer o formato desse arquivo é importante para se configurar um bom servidor

de logs.

20.1. F

ORMATO DE

/

ETC

/

SYSLOG

.

CONF

Ele possui linhas de comentários representadas pelo símbolo ( # ). As outras

linhas são de configuração e são formadas basicamente por dois campos:

facilidade.prioridade acao

Na linha acima, a facilidade é uma palavra código que representa o tipo de

programa ou ferramenta que gerou a mensagem a ser armazenada (logada); a

prioridade é a palavra código que expressa a importância dessa mensagem para o

sistema; e acao é um arquivo (caminho completo), computador remoto, ou outra

localidade que aceita o armazenamento da mensagem. O conjunto

facilidade.prioridade é chamado de seletor.

Códigos válidos para facilidade são auth, authpriv, cron, daemon, kern,

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

Muitos desses nomes referem-se a serviços específicos ou classe de

programas, por exemplo, os servidores de e-mail normalmente usam a facilidade

mail. Outros servidores que não possuem um nome específico usam o código

daemon. A facilidade auth é usada para segurança, a facilidade mark é reservada

para uso interno. Um asterisco (*) refere-se a todas as facilidades. Pode-se especificar

várias faciliades em um seletor separando-as por (,).

Códigos válidos para a prioridade são debug, info, notice, warning, warn,

error, err, crit, alert, emerg, e panic.

A prioridade warning é idêntica a warn, error é idêntica a err, e emerg é

idêntico a panic. Os nomes das prioridades error, warn e panic são obsoletos, é

preciso usar seus equivalentes. Exceto esses pares de prioridades, eles possuem

níveis ascendentes de importância. O nível debug registra a maioria das informações;

ele é usado, como o nome indica, para programas que apresentam problemas de

funcionamento. A prioridade emerg registra a maioria das mensagens indicativas de

problemas muito sérios.

Quando um programa envia uma mensagem ao sistema de log, ele inclui o

código de prioridade, a mensagem só é registrada (em arquivo ou computador

remoto) se estiver configurado um local para aquele nível. Deste modo, se foi

especificado o código de prioridade alert, o sistema registrará mensagens que são

classificadas como alert ou emerg mas não mensagens crit ou inferiores. Uma

exceção a essa regra é se for feita uma configuração específica, precedendo a

prioridade crit com um sinal de igualdade ( = ), que descreva o que fazer com

mensagens crit. Um sinal de exclamação ( ! ) funciona com reversão da regra, ou

seja, !crit faria com que todas as mensagens inferiores a crit fossem registradas. A

prioridade * refere-se a todas as prioridades.

Pode ser especificado múltiplos seletores para uma única acao separando-as

com ; (ponto e vírgula). Não confundir com a , (vírgula) que separa múltiplas

facilidades.

Uma acao, muito provavelmente, será um arquivo dentro da árvore /var/log/.

Os arquivos messages, syslog e secure são arquivos importantes e comuns dentro

daquele diretório, mas nem todas as distribuições usam todos eles. Outros locais

possíveis incluem arquivos de dispositivo de console (como /dev/console) para exibir

as mensagens na tela, nomes de computadores remotos precedidos pelo símbolo ( @ )

para gravar dados de um sistema específico, e uma lista de nome de usuários de

pessoas logadas que deveriam ver essas mensagens, ou * para todos os usuários

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

logados.

Exemplos

mail.* /var/log/mail Envia todas (*) as entradas de log identificas como mail para o arquivo /var/log/mail.

*.emerg * Envia todas as mensagens do nível emerg para a console de todos os usuários logados em ferramentas de modo texto.

kern.* /var/log/kernel kern.crit @servidor-log.local kern.crit /dev/console

kern.info;kern.!err /var/log/kernelinfo

A primeira linha envia todas as mensagens de kernel para o arquivo /var/log/kernel;

A segunda envia mensagens críticas (crit) de kernel para a máquina servidor-log.local.

A terceira envia uma cópia das mensagens críticas (crit) para a console (vistas somente em ferramentas baseadas no modo texto). A última, envia mensagens que se localizam entre a prioridade info e err para o arquivos /var/log/kernelinfo.

D I C A

Pelo fato de err ser de prioridade imediatamente inferior a crit, e por info ser de prioridade mais baixa ainda, essas linhas causam o registro duplo ou triplo de todas as mensagens de kernel: uma em /var/log/kernel, outra no computador remoto e na console ou /var/log/kernelinfo.

20.2. R

EGISTRANDO LOGSMANUALMENTE

Casualmente, será preciso criar manualmente uma entrada de log ou ter um

script para fazer isso. A ferramento para fazer esse trabalho é conhecida como logger.

LOGGER – Cria logs manuais.

Sintaxe: logger [opcao]

Opções -i Grava o PID do processo a ser registrado.

-s Possibilita criar uma saída padronizada para determinados erros.

-f arquivo Indica um arquivo para a gravação dos registros de log. Ter cuidado com o tamanho desse arquivo, ele pode consumir espaço em disco e prejudicar o desempenho do sistema.

-p prioridade Fornece uma prioridade para o registro de log.

-t tag É um texto que aparecerá no log para identificar o programa ou script responsável pelo registro. mensagem É a mensagem que irá aparecer no registro.

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

20.3. L

ABORATÓRIO

Este laboratório tem por objetivo personalizar o sistema de logs do sistema.

Vamos fazer com que os registros de autenticações privadas (facilidade authpriv)

sejam gravados no arquivo /var/log/seguro ao invés do atual (/var/log/secure).

1) Criar o arquivo /var/log/seguro, pois o mesmo não existe ainda:

touch /var/log/seguro

2) Editar o arquivo /etc/syslog.conf com a seguinte alteração:

vi /etc/syslog.conf

# authpriv.* /var/log/secure authpriv.* /var/log/seguro

3) Reinicie o syslog para que a alteração ter efeito.

service syslog restart

4) Para testar, logue-se a partir de outra máquina e configura o novo arquivo

de log.

ssh root@192.168.0.123 cat /var/log/seguro

5) Encerre a conexão, verifique novamente a mensagem de finalização de

conexão no arquivo /var/log/seguro e volte a configuração anterior.

cat /var/log/seguro vi /etc/syslog.conf

authpriv.* /var/log/secure # authpriv.* /var/log/seguro service syslog restart

6) Teste novamente a conexão para verificar a gravação no arquivo de log

original.

ssh root@192.168.0.123 cat /var/log/secure

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

20.4. E

XERCÍCIOS

• Quais são os daemons responsáveis por gerenciar os logs no sistema?

• Qual o arquivo de configuração do syslog?

• O arquivo de configuração do syslog é formado por

facilidade.prioridade acao

. Explique com detalhes cada um de seus campos.

• Qual a sintaxe completa do comando utilizado para logar informações no sistema

manualmente?

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

No documento LinuxSystemAdministration COMPLETA (páginas 183-188)

Documentos relacionados