Logstash e Graylog são softwares muito semelhantes. Ambos são projetados para levar dados de log pela rede e armazená-los no ElasticSearch, onde podem ser capturados por uma interface da web posteriormente. O Graylog2 foi projetado para ter padrões predefinidos para a maioria das pessoas, enquanto o Logstash foi projetado para ser altamente programável, e a versão menor (1.2) inclui uma linguagem de configuração razoavelmente funcional com suporte total para condicionais, como o nxlog. no lado do cliente.
Em termos de interfaces web, o Logstash geralmente usa o Kibana, enquanto o Graylog2 vem com sua própria interface web. Minha recomendação é experimentar tanto e ver qual você gosta mais. O Graylog2 precisa de menos ajustes, mas o Kibana é absurdamente mais poderoso em termos do que você pode fazer com painéis de relatórios personalizados.
A entrada do log de eventos deve ser executada localmente a partir de um agente do Logstash instalado no host do Windows no qual você deseja coletar logs. Como o agente do Logstash é escrito em Java e a JVM pode armazenar uma grande quantidade de memória, você provavelmente não o desejará, a menos que tenha uma pilha de memória flutuando em seus sistemas. O nxlog é muito mais enxuto e faz um ótimo trabalho ao extrair dados do Log de Eventos do Windows e encaminhá-los para o Logstash usando JSON ou GELF. Sua sintaxe de configuração também é muito mais robusta e completa do que a do Logstash, então você pode achar mais fácil fazer coisas complexas com seus logs de eventos antes de encaminhá-los, como filtrar logs barulhentos antes que cheguem ao servidor.
O Logstash tem um filtro CSV, portanto, a melhor opção é enviar dados de log brutos para o servidor Logstash por meio de um soquete TCP ou UDP e deixar que os dados sejam retirados. O nxlog pode ter funcionalidade para fazer algo semelhante, mas nunca procurei por ele.