estou usando o solaris 10 e vi esta linha em/etc/syslog.conf
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice /var/adm/messages
Isso significa que, se eu tiver umauth.err, a mensagem de erro aparecerá /var/adm/message
duas vezes devido a:
*.err
auth.debug
Digamos que também tenho outra linha que é:
*.emerg *
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice /var/adm/messages
Isso significa que, se eu tiver umkernel.emerg, ele registrará duas vezes /var/adm/messages
devido a
*.emerg * and
kern.debug /var/adm/messages
?
=======
Adicionado
auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
como o syslog verifica se esta máquina é um loghost ou não? verificando em /etc/hosts o alias "loghost" e vendo se ele corresponde ao IP da máquina?
Eu tenho o syslog.conf sem ifdef e ainda funciona, o ifdef é necessário ou não?
Responder1
As regras definem principalmente filtros aplicados em tempo de execução a cada mensagem; portanto, na realidade, você não deve ter mensagens duplicadas no mesmo destino/arquivo.
Vários seletores podem ser especificados para uma única ação usando o separador ponto e vírgula ('';''). Lembre-se que cada seletor no campo seletor é capaz de sobrescrever os anteriores.
No entanto, você pode receber a mesma mensagem enviada para arquivos diferentes, incluindo o console.
No caso de
*.emerg *
O que é uma abreviação para todos os usuários no syslog, será para todos os usuários.
Todos logados
Mensagens de emergência geralmente vão para todos os usuários online para notificá-los de que algo estranho está acontecendo com o sistema. Para especificar este recurso wall(1) use um asterisco (''*'').
Então, de fato, em um kernel.emerg, ele será enviado para todos os usuários e para /var/adm/messages ao mesmo tempo; no entanto, será apenas uma linha em /var/adm/messages.
O comportamento do syslogd BSD original é que todas as mensagens da prioridade especificada e superior são registradas de acordo com a ação dada.
Citações retiradas da syslog.conf
página de manual:
Página de manual syslog.conf(5)
quanto ao ifdef, tomando como exemplo:
auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
Se LOGHOST estiver definido (ou seja, este syslog é um LOGHOST, ele enviará o log/mensagem para /var/log/authlog, caso contrário, será enviado para @loghost.
Quanto ao ifdef não é um requisito, e quanto ao LOGHOST, de acordo comesta páginaé o nome da máquina retirado do arquivo /etc/hosts (ou possivelmente DNS, apenas testes)
Para editar /etc/hosts (./inet/hosts) e adicionar uma ou várias linhas que definam o endereço IP para loghost (o nome é arbitrário e se vários hosts remotos forem definidos você pode usar qualquer nome que desejar)