Logstash y Graylog son piezas de software muy similares. Ambos están diseñados para tomar datos de registro a través de la red y almacenarlos en ElasticSearch, donde pueden ser recuperados por una interfaz web más tarde. Graylog2 está diseñado para tener valores predeterminados razonables listos para usar para la mayoría de las personas, mientras que Logstash está diseñado para ser altamente programable, y la última versión menor (1.2) incluye un lenguaje de configuración razonablemente funcional con soporte completo para condicionales, como nxlog tiene en el lado del cliente.
En términos de interfaces web, Logstash generalmente usa Kibana, mientras que Graylog2 viene con su propia interfaz web. Mi recomendación es probar ambos y ver cuál te gusta más. Graylog2 necesita menos modificaciones, pero Kibana es absurdamente más poderoso en términos de lo que puede hacer con paneles de informes personalizados.
La entrada del registro de eventos está diseñada para ejecutarse localmente desde un agente Logstash instalado en el host de Windows en el que desea recopilar registros. Dado que el agente Logstash está escrito en Java, y la JVM puede inmovilizar una gran cantidad de memoria, probablemente no quiera que se cuelgue a menos que tenga una pila de memoria flotando en sus sistemas. nxlog es mucho más ágil y hace un gran trabajo al extraer los datos del registro de eventos de Windows y reenviarlos a Logstash usando JSON o GELF. Su sintaxis de configuración también es mucho más robusta y completa que Logstash, por lo que puede resultarle más fácil hacer cosas complejas con sus registros de eventos antes de reenviarlos, como filtrar registros ruidosos antes de que lleguen al servidor.
Logstash tiene un filtro CSV, por lo que su mejor opción es enviar datos de registro sin procesar al servidor Logstash a través de un socket TCP o UDP y dejar que descifre los datos. nxlog puede tener funcionalidad para hacer algo similar, pero nunca lo he buscado.