[INGEST:vendor="iis", product="iis", target_dataset="iis_iis_raw", no_hit = keep] call MICROSOFT_IIS_PARSE_FIELDS; [RULE:MICROSOFT_IIS_PARSE_FIELDS] filter _raw_log ~= "^\d{4}\-\d{2}\-\d{2}\s+\d{2}:\d{2}:\d{2}\s+" | alter // util variables used for classifying the relevant log type i.e., access log or http error log tmp_logfile_name = lowercase(_log_source_file_name), tmp_logfile_path = lowercase(_log_source_file_path), // util variables used for classifying the relevant W3C structure for http error logs tmp_num_of_fields = array_length(regextract(_raw_log, "(\S+)")) // determine log type according to its origin file name & path | alter tmp_log_type = if(tmp_logfile_name ~= "httperr" or tmp_logfile_path contains """system32\\logfiles\\httperr""", "Error Log", "Access Log") // determine log format according to log type and field list length, and extract the log fields accordingly into parsed_fields | alter parsed_fields = if( tmp_log_type = "Access Log" and tmp_num_of_fields >= 22, // Schema: https://learn.microsoft.com/en-us/windows/win32/http/w3c-logging // format: 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 regexcapture(_raw_log, "^(?P\S+)\s+(?P