O IIS efetua login no Logstash com o nxlog

1

Estou tentando unir os campos data + hora do log do IIS no campo EventTime para digestão do logstash. Este é o meu arquivo nxlog.conf:

<Input iis1>
  #drop comment lines, join the date+time fields into an EventTime field, convert to json
    Module      im_file
    File 'C:\inetpub\logs\LogFiles\W3SVC2\u_ex*.log'
    ReadFromLast TRUE
    Exec        if $raw_event =~ /^#/ drop();                    \
                else                                             \
                {                                                \
                    w3c->parse_csv();                            \
                    $EventTime = parsedate($date + " " + $time); \
                    to_json ();                                  \
                }
</Input>

Este é o erro que recebo:

2013-07-22 06:11:29 ERROR if-else failed at line 51, character 391 in C:\Program Files (x86)\nxlog\conf\nxlog.conf. statement execution has been aborted; procedure 'parse_csv' failed at line 51, character 228 in C:\Program Files (x86)\nxlog\conf\nxlog.conf. statement execution has been aborted; invalid modifier: '-'

Não sei ao certo como posso lidar com o campo data + hora. Qualquer alternativa ou sugestão são bem vindas. Obrigado!

    
por David Neudorfer 22.07.2013 / 08:32

1 resposta

3

Você provavelmente tem um inteiro nos FieldTypes da sua instância do módulo w3c xm_csv. Infelizmente, ele não pode manipular o traço '-' e falhar em analisá-lo como um inteiro.

Você deve adicionar o UndefValue às suas opções de CSV para que ele saiba que um traço significa nenhum dado:

<Extension w3c>
    Module      xm_csv
    Fields  $date $time $s-sitename $s-computername $s-ip $cs-method $cs-uri-stem $cs-uri-query $s-port $cs-username $c-ip $cs-version $cs-user-agent $cs-cookie $cs-referer $cs-host $sc-status $sc-substatus $sc-win32-status $sc-bytes $cs-bytes $time-taken
    Delimiter   ' '
    QuoteChar   '"'
    EscapeControl FALSE
    UndefValue  -
</Extension>
    
por 22.07.2013 / 17:38