Фильтровать журналы IIS в NXlog GrayLog2 по коду состояния

#iis #nxlog

#iis #nxlog

Вопрос:

У меня есть

 <Extension w3c>
    Module            xm_csv
    Fields            $date, $time, $s-ip, $cs-method, $cs-uri-stem, $cs-uri-query, $s-port, $cs-username, $c-ip, $csUser-Agent, $cs-Referer, $cs-host, $sc-status, $sc-substatus, $sc-win32-status, $time-taken
    FieldTypes        string, string, string, string, string, string, integer, string, string, string, string, string, integer, integer, integer, integer
    Delimiter        ' '
    QuoteChar        '"'
    EscapeControl    FALSE
    UndefValue        -
</Extension>
  

И у меня есть

 <Input iis>
    Module            im_file
    File            "C:\inetpub\logs\LogFiles\u_ex*.log"
    SavePos            TRUE
    Exec 
                    if $raw_event =~ /^#/ drop(); 
                    else 
                        { 
                            w3c->parse_csv(); 
                            $EventTime = parsedate($date   " "   $time); 
                            $EventTime = strftime($EventTime, "%Y-%m-%dT%H:%M:%SZ"); 
                            $SourceName = "IIS"; 
                        }
</Input>
  

Когда я пытаюсь добавить что-то вроде

 if $raw_event =~ /^#/ or $sc-status == 101 drop(); 
  

Я получаю ошибку в журнале, подобную этой:

 couldn't parse statement at line 91, character 46 in C:Program Files (x86)nxlogconfnxlog.conf; syntax error, unexpected -, expecting (
  

Я пытался использовать аналогичные параметры, но это не работает.

Что я делаю не так, помогите мне, пожалуйста. Спасибо.

Ответ №1:

Я нашел решение, просто переименуйте в <Extension w3c> поле с именем sc-status в scStatus , и ошибки исчезнут. Потому что анализатор получает столбцы по их порядку, а не по имени.

Также я получил ответ от ссылки сообщества nxlog