Logstash e Graylog são peças de software muito semelhantes. Ambos foram projetados para coletar dados de log pela rede e armazená-los no ElasticSearch, onde podem ser coletados por uma interface da Web posteriormente. O Graylog2 foi desenvolvido para ter padrões padrão prontos para a maioria das pessoas, enquanto o Logstash foi projetado para ser altamente programável, e a última versão menor (1.2) inclui uma linguagem de configuração razoavelmente abrangente, com suporte total a condicionais, como o nxlog no lado do cliente.
Em termos de interfaces da web, o Logstash geralmente usa o Kibana, enquanto o Graylog2 é fornecido com sua própria interface da web. Minha recomendação é experimentar os dois e ver o que você mais gosta. O Graylog2 precisa de menos ajustes, mas o Kibana é absurdamente mais poderoso em termos do que você pode fazer com os painéis de relatórios personalizados.
A entrada do log de eventos deve ser executada localmente a partir de um agente Logstash instalado no host do Windows no qual você deseja coletar logs. Como o agente Logstash é gravado em Java e a JVM pode amarrar uma quantidade enorme de memória, você provavelmente não o desejará ficar, a menos que você 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 que a do Logstash; portanto, você pode achar mais fácil fazer coisas complexas com seus logs de eventos antes de enviá-los, como filtrar logs ruidosos antes que eles cheguem ao servidor.
O Logstash possui um filtro CSV; portanto, sua melhor opção é enviar dados brutos de log ao servidor Logstash por um soquete TCP ou UDP e permitir que ele descubra os dados. O nxlog pode ter funcionalidade para fazer algo semelhante, mas nunca o procurei.