I solved the issue. I noticed that the number of events stored in Graylog 
was still going up, even though they weren't being displayed, so I adjusted 
my search to look into the future. IIS records the timestamp in UTC, but 
when it was parsed by NXlog, I wasn't including any timezone data, so 
graylog was using the local timezone instead, resulting in events being 
recorded as having occurred 5 hours in the future.

I updated the IIS parsing to mark the Event Time as UTC by appending "Z" 
 and it now works correctly:

<Input iis>
    Module      im_file
    File        "C:\\inetpub\\logs\\LogFiles\\W3SVC12\\u_ex*"
    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>




On Saturday, March 7, 2015 at 8:28:53 AM UTC-6, Nathan Reid wrote:
>
> I'm having trouble getting my IIS logs into Graylog.
> My Windows event logs show up just fine, but the IIS logs never show up.
>
> I'm using NXlog per the Graylog docs. I've verified that the logs are 
> getting sent (I have them also writing to a file, and I've checked with 
> Wireshark to make sure the packets are being sent).
> At one point I changed from using a GELF input to a raw input, and then 
> the messages showed up but of course were unreadable as they were still in 
> the compressed GELF format, like so:
> x����n�0 E ��*����r � 
> �$���   #�m"�����$ȿ��h9q\����J� g43�zA;h9a5J��xh�V� �b  � � �@Z��Ƕ �^�� 
> �A�z:t����[Vv $��:�S��j�& �[b�>� �) �������M �a�����+��v b�Ji̦�����\@%E���f 
> �� b����W��`�X��`:) � �� hX+P��Si�V�ɡ�' 9 �ݲgB)vcdz.��.ٞ[w��8� ky�L�Kk�4 ��pC� 
> �c'L�����폑E�#X3( ٥�m۲ 
> �H�  ?r�|k�׸%��l kh����C�� ����3��É�'u  
> a~<l�l��z!Sm WM�g��"�̦�j�o�DV p�7*�%G ��Q��c"G� �B���̼�(��� �`*�z�GN (�N�k] 
> e 
> xZU�iu�A� |ړ� �  Z�[ � ��A+���C�� ��&��� �}�&���' ����d�Б��̻_��m�0�� � ���� 
> ]��9<ޭ� � ����Ub� ,�U�n�Q ��8��F�� (J �%. U?��^�� wJ�a
>
> I can send the messages in completely raw, but then all the data is stuck 
> in one field.
>
> Why would Graylog accept my GELF-formatted Windows event logs, but not my 
> GELF-formatted IIS logs?
>
> I'm running the latest Graylog VMware OVA, and the only changes I've made 
> were changing the password and timezone, enforcing HTTPS, and setting up 
> LDAP and my inputs.
>
> Is there perhaps some way I can see if graylog is experiencing an error 
> when it decodes the incoming logs?
>
> Here's my NXlog config file:
>
> define ROOT C:\Program Files (x86)\nxlog
>
> Moduledir %ROOT%\modules
> CacheDir %ROOT%\data
> Pidfile %ROOT%\data\nxlog.pid
> SpoolDir %ROOT%\data
> LogFile %ROOT%\data\nxlog.log
>
> <Extension gelf>
> Module xm_gelf
> </Extension>
>
> <Extension fileop>
> Module xm_fileop
> </Extension>
>
>  <Extension json>
>     Module      xm_json
> </Extension>
>
> # Create the parse rule for IIS logs. You can copy these from the header 
> of the IIS log file.
> <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, $sc-status, 
> $sc-substatus, $sc-win32-status, $time-taken
>     FieldTypes string, string, string, string, string, string, integer, 
> string, string, string, string, integer, integer, integer, integer
>     Delimiter ' '
>     QuoteChar '"'
>     EscapeControl FALSE
>     UndefValue -
> </Extension>
>
> <Input iis>
>     Module     im_file
>     File     "C:\\inetpub\\logs\\LogFiles\\W3SVC12\\u_ex*"
>     SavePos   TRUE
>
> Exec if $raw_event =~ /^#/ drop();                    \
>                 else                                             \
>                 {                                                \
>                     w3c->parse_csv();                            \
>                     $EventTime = parsedate($date + " " + $time); \
>                     $SourceName = "IIS";     \
>                     $Message = to_json();     \
>                 }
> </Input>
>
> <Input eventlog>
>     Module      im_msvistalog
> </Input>
>
> <Output graylog>
>     Module      om_udp
>     Host        graylog
>     Port        12201
>     OutputType GELF
>
>     #Use the following line for debugging (uncomment the fileop extension 
> above as well)
> Exec file_write("C:\\Program Files (x86)\\nxlog\\data\\nxlog_output.log", 
> $raw_event);
> </Output>
>
> #<Route eventlog>
> #    Path        eventlog => graylog
> #</Route>
>
> <Route iis-to-graylog>
> Path iis => graylog
> </Route>
>
>
>
> Any assistance will be greatly appreciated. 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"graylog2" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to