0

Prior to Windows Server 2022 we used "Advanced Logging" to rollover a file every minute to read and save to a table. Unfortunately Microsoft has removed this tool on 2022 so we have no way to get real-time data about requests coming in across our farm. We use this for reporting, troubleshooting and load balancing.

The best option I've seen so far that wouldn't slow down IIS is using a COM registered object for IIS to send the log data to, but I'd really prefer not to go down that road. Also Microsoft says use this as a last resort only so what am I missing?

Agile Noob
  • 2,305
  • 4
  • 24
  • 35
  • That seems a bit mean of them, have you tried asking over on [Database Administrators](https://dba.stackexchange.com/) in case there's an SME there? – Andrew Morton Oct 13 '22 at 18:27
  • You can write your own IIS extension (either managed in C# or unmanaged in C++) to implement the same feature as Advanced Logging if necessary. I wonder why that option was never mentioned. But back to the requirements, do you really need the real time data feed and a table per minute? – Lex Li Oct 14 '22 at 04:59
  • Microsoft does not recommend logging IIS to SQL Server tables because sending log data to a busy website's SQL Server database consumes system resources. If you still want to enable IIS logging to SQL server, would you choose to use ODBC Logging? https://learn.microsoft.com/en-US/iis/configuration/system.webserver/odbclogging#006 – YurongDai Oct 14 '22 at 07:03
  • We use this data to monitor bot activity, it feeds data into reports, and load balancers. To support this we need near real-time data to be able to react to issues shown in these logs. I looked at the ODBC option but would definitely slow down our servers. The only way I know to get all the log data we need is to create a COM object that plugs into the unmanaged "HttpLoggingModule". We already use the IISLoggingHttpModule with C# code but its missing things like "Time Taken", "bytes recieved/sent". The issue is how to source this data, you can't get at this data from the managed module, afaik. – Agile Noob Oct 14 '22 at 13:26
  • "it feeds data into reports, and load balancers", but usually people don't need reports per minutes. If you do need some real time data to share with load balancers, what you get from a C# IIS module is usually enough. Time Taken can be optional. Bytes received/sent are clearly accessible in managed module (just request/response total bytes). – Lex Li Oct 14 '22 at 16:55

0 Answers0