rsyslogd: Alguma maneira de contornar o número de instalações locais?

7

Temos cerca de 9 a 10 aparelhos para os quais queremos direcionar o registro para o nosso servidor rsyslog. No entanto, há apenas 8 instalações locais (0-7). Como podemos contornar essa limitação?

    
por Belmin Fernandez 20.04.2012 / 01:06

2 respostas

12

Registre o nome do aplicativo em suas mensagens. Filtrar no nome do aplicativo, em vez de no recurso. Se seus aplicativos não estiverem gerando mensagens do syslog diretamente, você poderá aplicar um filtro de saída (por exemplo, sed ) para massagear as coisas para que elas fiquem do jeito que você deseja.

Dê uma olhada na documentação do Rsyslog sobre condições de filtro para ver como você pode configurar esse comportamento. Com base nas informações dessa página, aqui está um exemplo de como você pode colocar mensagens começando com a string "application1" em /var/log/application1 :

if $msg startswith 'application1' then /var/log/application1

Você também pode filtrar explicitamente no nome do programa , se o aplicativo definir isso corretamente:

if $programname == 'application1' then /var/log/application1

Você pode realizar todos os tipos de filtragem complexa no seu rsyslog.conf ; leia a documentação para mais informações e exemplos.

EDIT: rsyslog pode usar modelos para criar arquivos separados para cada servidor. Algo como o seguinte deve colocar todas as mensagens de log em arquivos separados para cada nome de host. (Isso é retirado da manpage).

$template DynFile,"/var/log/system-%HOSTNAME%.log
*.*                             ?DynFile

O seguinte é semelhante, mas não registra mensagens de depuração. Ele também usa o nome do host da conexão em vez do nome do host da mensagem. (Isso é baseado no que desenvolvi para registrar a saída de um Obi100).

$template HostFormat,"%timegenerated% %fromhost% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
$template HostFile,"/var/log/system-%fromhost%.log
if $syslogseverity < 7 then -HostFile;HostFormat

Leia a página de manual e a documentação, se você tiver necessidades mais complexas, ou quiser entender o que foi feito acima.

    
por 20.04.2012 / 01:11
3

Filtre por nome de host. (Cada appliance deve ter seu próprio nome de host). Se você quiser, pode ouvir em várias portas e lidar com cada porta separadamente.

As instalações são projetadas para lidar com categorias de mensagens como autorização, correio, impressora, ftp, etc. Como o UUCP não é muito usado, você provavelmente poderia usá-lo para seus próprios usos. Suas podem ser outras instalações não utilizadas em sua configuração. No entanto, é melhor usar valores de instalações padrão e filtrar por outros dados.

Existem 24 instalações, pois são nomes de bits em uma máscara de bits. Isso torna a agregação de conjuntos arbitrários de instalações no mesmo log. O protocolo está especificado em RFC 5424 .

O outro campo é severidade. Normalmente, os logs contêm todos os logs em uma determinada severidade ou acima dela. (Prioridades mais severas têm valores mais baixos, portanto a comparação normal é menor ou igual à prioridade selecionada.) No entanto, as mensagens de um determinado recurso podem ser selecionadas, como geralmente é feito para o log de depuração que coleta mensagens de depuração para todos os recursos.

Você pode querer agregar dados para algumas instalações no mesmo log, independentemente do dispositivo de origem. É comum registrar a mesma mensagem em vários arquivos de log.

    
por 20.04.2012 / 02:31