IISLogLoader è un tool a riga di comando il cui scopo è quello di caricare in un db ACCESS o SQL server i log di IIS.
Il motivo è quello di avere in una tabella interrogabile via SQL i dati dei log.
Cominciamo dalla struttura del DB:
il database è formato da una sola tabella, che conterrà tutti i dati mappando 1 a 1 i campi selezionabili dei log di IIS. Questa l'istruzione di create della tabella
CREATE TABLE [dbo].[TFULLLOG](
[ID] [int] IDENTITY(1,1) NOT NULL,
[LOGDATE] [nvarchar](50) NULL,
[LOGTIME] [nvarchar](50) NULL,
[LOGC-IP] [nvarchar](255) NULL,
[LOGCS-USERNAME] [nvarchar](255) NULL,
[LOGS-SITENAME] [nvarchar](255) NULL,
[LOGS-COMPUTERNAME] [nvarchar](255) NULL,
[LOGS-IP] [nvarchar](255) NULL,
[LOGS-PORT] [nvarchar](255) NULL,
[LOGCS-METHOD] [nvarchar](255) NULL,
[LOGCS-URI-STEM] [nvarchar](255) NULL,
[LOGCS-URI-QUERY] [nvarchar](255) NULL,
[LOGSC-STATUS] [nvarchar](10) NULL,
[LOGSC-SUBSTATUS] [nvarchar](255) NULL,
[LOGSC-WIN32-STATUS] [nvarchar](255) NULL,
[LOGSC-BYTES] [nvarchar](255) NULL,
[LOGCS-BYTES] [nvarchar](255) NULL,
[LOGTIME-TAKEN] [nvarchar](255) NULL,
[LOGCS-VERSION] [nvarchar](255) NULL,
[LOGCS-HOST] [nvarchar](255) NULL,
[LOGCS-USER-AGENT] [nvarchar](255) NULL,
[LOGCS-COOKIE] [nvarchar](255) NULL,
[LOGCS-REFERER] [nvarchar](255) NULL,
[FILENAME] [nvarchar](255) NULL,
[FILEEXT] [nvarchar](255) NULL,
[DOMAIN] [nvarchar](255) NULL,
[NTDOMAIN] [nvarchar](255) NULL,
CONSTRAINT [PK_TFULLLOG] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
) ON [PRIMARY]
Solamente gli utlimi tre campi non sono campi standard per i log IIS, ma sono campi che il tool calcolerà per avere informazioni più comode su cui fare poi dei filtri, e sono:
FILENAME: il nome del file senza path
FILEEXT: l'estensione del file (comprensiva del "punto")
DOMAIN: IIS ovviamente non logga mai il dominio perchè i log sono differenziati per dominio, per questo motivo, come vedremo, il dominio è un parametro obbligatorio del tool
Vediamo ora la sintassi del tool:
IISLogLoader <folder> <domain> [NOSTATIC]
<folder>: the folder where IIS log are stored
<domain>: the http domain that owns the logs
[NOSTATIC] (optional): loads only application pages, like .aspx, .asp etc.
Il tool usa un file di configurazione chiamato CONFIG.INI nel quale sono contenute le informazioni per collegarsi al DB. Ecco due esempi, uno per ACCESS e l'altro per SQL Server:
ACCESS example:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TEMP\IISLog.mdb;Persist Security Info=True
System.Data.OleDb
SQL Server example:
Password=SQLUSERPASSWORD;Persist Security Info=True;User ID=SQLUSER;Initial Catalog=IISLog;Data Source=SQLSERVER\SQLINSTANCE;Language=Italian
System.Data.SqlClient