consideração do modelo de servidor rsyslog para vários hosts remotos

0

O Linux Destro é: Centos 6.8

Abaixo está o que o rsyslog.conf se parece:

# cat /etc/rsyslog.conf

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template server-dc, "/scratch/rsyslog/%HOSTNAME%/messages.log"
authpriv.*   ?server-dc
*.info,mail.none,authpriv.none,cron.none   ?server-dc
$IncludeConfig /etc/rsyslog.d/*.conf

#*.info;mail.none;authpriv.none;cron.none                /var/log/messages
#*.*                                                     @elk-rsyslog:514

Aponte para mim:

1)

$template server-dc, "/scratch/rsyslog/%HOSTNAME%/messages.log"
enter code here

Portanto, na linha acima /scratch/rsyslog é um caminho do Diretório no servidor rsyslog onde estamos encaminhando todos os logs dos hosts remotos do unix que criam uma estrutura de diretórios seguindo um arquivo de mensagens como:

/scratch/rsyslog/remot1-Ser1/messages.log
/scratch/rsyslog/remot1-Ser2/messages.log

Portanto, tudo funciona bem. No entanto, ao mesmo tempo, também temos alguns dispositivos de rede que encaminham os registros da rede para o mesmo local em um formato abaixo:

/scratch/rsyslog/Sep/messages.log
/scratch/rsyslog/Oct/messages.log

No caso acima de logs de rede, está criando um nome Directory by month seguindo um arquivo de mensagem. Então, eu estou procurando uma maneira no rsyslog definir um caminho diferente para logs de rede, como /scratch/rsyslog/network , para que os logs da rede possam ser recolhido em uma pasta separada, razão por trás disso é, eu estou processando esses logs para Elasticsearch, portanto, eu estou usando curinga para unix logs como /scratch/rsyslog/*/messages.log , mas isso também inclui os logs de rede sendo curinga ( * ) chamado. / p>

Então, existe uma maneira que eu possa dizer se os logs estão vindo de um host remoto particular ou o IP deve ir para uma pasta específica no servidor rsyslog?

2) Aqui em $template server-dc, "/scratch/rsyslog/%HOSTNAME%/messages.log" o que é o login para colocar server-dc como este é outro nome de host, isso tem algum propósito ou podemos mudar isso para algo relevante considerando o requisito acima.

3) O mesmo server-dc também foi incluído em outros parâmetros de configuração.

Desejado

Simplesmente gostaria de saber se há uma maneira de encaminhar os logs para sistemas semelhantes, rede, firewall nos Diretórios distintos separados, como ...

1 - /scratch/rsyslog/system/%HOSTNAME%/messages.log

2 - /scratch/rsyslog/network/%HOSTNAME%/messages.log

3 - /scratch/rsyslog/firewall/%HOSTNAME%/messages.log

    
por pygo 24.10.2018 / 06:03

1 resposta

1

Você pode ter qualquer número de modelos e testar as mensagens recebidas para seu nome de host ou endereço IP. Se seus nomes de host são bem estruturados, por exemplo, todos os "sistemas" começam com "sys", como sys10 e sysabc, então o número de testes pode ser reduzido.

Por exemplo,

$template mysystems,"/scratch/rsyslog/system/%HOSTNAME%/messages.log"
$template mynets,"/scratch/rsyslog/network/%HOSTNAME%/messages.log"
$template myfirewalls,"/scratch/rsyslog/firewall/%HOSTNAME%/messages.log"

if $fromhost startswith "sys" then -?mysystems
& stop
if $fromhost startswith "net" then -?mynets
& stop
if $fromhost startswith "fw" then -?myfirewalls
& stop

A linha & stop impede que a mensagem que corresponde à linha anterior seja tratada mais. Você pode testar o endereço IP com, por exemplo,

if $fromhost-ip startswith "192.168." then -?mynets

Se você quiser manter o filtro *.info,... , você pode modificar o acima, por exemplo,

if $fromhost startswith "sys" then {
  *.info,mail.none,authpriv.none,cron.none   -?mysystems
  & stop
}

Note, no entanto, que se você não deseja registrar alguns itens, você deve realmente fazer essa filtragem no remetente, não neste fim da rede. Está apenas desperdiçando a largura de banda da rede para enviar mensagens que você filtra e elimina.

Veja a extensa documentação do rsyslog , observando a versão que você tem.

    
por 25.10.2018 / 18:38

Tags