¿Cómo agregar un código ruby ​​dentro del archivo de configuración de logstash?

Intento enviar registros al evento de Windows usando logstash. Después de agregar algo de código ruby, se crea debajo del error. ¿Cómo puedo enviar registros para el evento windoes?

input { file { type => "json" path => ["C:/Temp/logs/*.json"] start_position => "beginning" codec => "json" discover_interval => 120 stat_interval => 60 sincedb_write_interval => 60 close_older => 60 } } filter { mutate { remove_field => [ "path" ] } ruby { code => " require 'win32/eventlog' logger = Win32::EventLog.new logger.report_event(:event_type => Win32::EventLog::INFO, :data => "a test event log entry") " } } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["http://loguser:xxxx@192.158.5.84:333"] index => "logstash-%{+YYYY.MM}" } } 

Error:

 [2018-03-20T09:51:28,629][ERROR][logstash.agent ] Cannot create pipeline {:reason=>"Expected one of #, {, } at line 23, column 75 (byte 464) after filter {\nmutate {\n remove_field => [ \"path\" ] \n\n}\n ruby {\n init => \" require 'win32/eventlog' \n\t \"\n code => \"\n logger = Win32::EventLog.new\n logger.report_event(:event_type => Win32::EventLog::INFO, :data => \""} 

Como puede ver por el resaltado de syntax en su pregunta, hay un problema con las comillas dobles que está usando. Preste mucha atención a las letras negras en el bloque de código:

 " require 'win32/eventlog' logger = Win32::EventLog.new logger.report_event(:event_type => Win32::EventLog::INFO, :data => "a test event log entry") " 

Está envolviendo el bloque de código entre comillas dobles, pero también los está utilizando para definir la cadena en el evento: "a test event log entry" . La primera cita para la cadena finaliza el bloque de código, y LogStash informa un error de syntax, porque esperaba que cerrara la instrucción con un } .

También puede ver esto en el mensaje de error, donde informa el valor como el atributo de data como una comilla doble simple :data => \" .

Intente envolver la cadena en comillas simples: 'a test event log entry' para solucionar este problema.

Intereting Posts