Já que finalmente consegui algo funcionar e provavelmente sei onde foi meu erro, aqui está uma resposta para minha própria pergunta:
$ModLoad imuxsock # provides support for local system logging
$ModLoad omhiredis # support for sending to Redis
$ModLoad imfile # For tailing files
if $syslogtag == "nginx:" then {
action(
name="rsyslog_redis"
server="redis_ip"
port="redis_port"
type="omhiredis"
mode="queue"
key="rsyslog_redis" # we need the same key in Logstash's config
template="jsonlines" # use the JSON template defined below
)
}
input(
type="imfile"
File="/var/log/nginx/access.log"
Tag="nginx:"
)
permite-me enviar nginx access.log e apenas aqueles para o meu servidor redis.
Meu erro veio da ação do bloco (..) que não foi limitada pela instrução if. Foi, portanto, enviando todos os logs. Isso explica minha primeira nota na pergunta em que authpriv.* @redis_ip:port
não mudaria nada.
Answer: action (..) enviará logs, mesmo que nenhum servidor esteja definido nele, portanto, coloque-o nas instruções if para escolher quais logs serão encaminhados.
Observação: eu não adicionei o modelo "jsonlines" à configuração, pois é possível encontrá-lo facilmente na Internet e isso exige algum espaço desnecessário aqui.