Não tenho certeza se você é capaz de usar nomes de host nesse ponto.
pessoalmente eu usei $ fromip == 'x.x.x.x'
como condição para diferentes nomes de arquivos.
abaixo é um bom exemplo que funciona para minha configuração, embora possa ser um problema se você tiver muitos intervalos de ip diferentes.
isto é copiado de
link
Armazenando mensagens de um sistema remoto em um arquivo específico
Terça-feira, 23 de fevereiro de 2010
Este é um cenário de consolidação de logs. Existem pelo menos dois sistemas, um servidor e pelo menos um cliente. O servidor destina-se a coletar dados de log de todos os clientes. Os clientes podem (ou não) processar e armazenar mensagens localmente. Se eles fizerem isso, não importa aqui. Veja a receita Enviando Mensagens para um Servidor Syslog Remoto para saber como configurar os clientes.
Mensagens de hosts remotos na rede 192.0.1.x devem ser gravadas em um arquivo e mensagens de hosts remotos na rede 192.0.2.x devem ser gravadas em outro arquivo.
Coisas para pensar sobre
TCP recpetion não é um recurso integrado. Você precisa carregar o plugin imtcp para ativá-lo. Isso precisa ser feito apenas uma vez no rsyslog.conf. Faça bem no topo.
Observe que o endereço da porta do servidor especificado em $ InputTCPServerRun deve corresponder ao endereço da porta para a qual os clientes enviam mensagens.
Config Statements
$ModLoad imtcp
$InputTCPServerRun 10514
# do this in FRONT of the local/regular rules
if $fromhost-ip startswith '192.0.1.' then /var/log/network1.log
& ~
if $fromhost-ip startswith '192.0.2.' then /var/log/network2.log
& ~
# local/regular rules, like
*.* /var/log/syslog.log