我正在尝试将 iis 日志导入 mysql 数据库,但只获取了文件的一部分。我正在使用此代码:
LogParser "SELECT * INTO iisLog FROM \\appdev1\c$\inetpub\logs\LogFiles\W3SVC1\u_ex130312.log" -i:W3C -o:SQL -server:app4 -database:iislogs -driver:"MySQL ODBC 5.1 Driver" -username:iis -password:P@ssW0rd -createTable:ON"
日期、时间、运动和其他一些字段正在填充,但 csusername、sip、csURIStem 和其他字段没有任何数据显示。当我查看日志文件时,我可以看到这些字段应该有数据填充。我遗漏了什么?
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2013-03-12 00:00:02
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2013-03-12 00:00:02 10.1.65.119 GET / - 80 - 10.1.65.190 - 401 2 5 0
2013-03-12 00:00:02 10.1.65.119 GET / - 80 - 10.1.65.191 - 401 2 5 0
2013-03-12 00:00:07 10.1.65.119 GET / - 80 - 10.1.65.190 - 401 2 5 15
2013-03-12 13:11:25 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 109
2013-03-12 13:11:25 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 93
2013-03-12 13:11:26 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 15
2013-03-12 13:11:26 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 15
2013-03-12 13:11:26 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 MCORP\TRAIN20 10.1.65.249 - 200 0 0 499
2013-03-12 13:11:26 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 MCORP\TRAIN7 10.1.65.249 - 200 0 0 499
2013-03-12 13:11:26 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 109
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 93
2013-03-12 13:11:27 10.1.65.119 GET / - 80 - 10.1.65.190 - 401 2 5 0
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 15
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/updates/net4 format=xml 80 - 10.1.65.249 - 415 0 0 15
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 MCORP\TRAIN9 10.1.65.249 - 200 0 0 109
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 - 10.1.65.249 - 401 2 5 15
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/updates/net4 format=xml 80 - 10.1.65.249 - 415 0 0 0
2013-03-12 13:11:27 10.1.65.119 POST /SP/PC/session.svc/ method=Get 80 MCORP\TRAIN8 10.1.65.249 - 200 0 0 109
2013-03-12 13:11:28 10.1.65.119 GET /SP/PC/appsets.svc/ level=0 80 MCORP\TRAIN9 10.1.65.249 - 200 0 0 46
2013-03-12 13:11:28 10.1.65.119 GET /SP/PC/appsets.svc/CCRF_TRAIN/ level=1 80 MCORP\TRAIN9 10.1.65.249 - 200 0 0 202
Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.5466) 401 2 5 109
2013-03-12 15:10:56 10.1.65.119 POST /SP/PC/App/SystemConfigService/SystemConfigService.asmx - 80 - 10.36.24.125 Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.5466) 401 2 5 156
2013-03-12 15:10:57 10.1.65.119 GET / - 80 - 10.1.65.190 - 401 2 5 0
答案1
最简单的改变是使用选项-i:IISW3C
而不是-i:W3C
。
否则,尝试创建(或修复)主要包含 varchar 字段的 MySQL 表(然后跳过 createTable)。
更安全(也是最推荐的)的做法是输出到-o:csv
,然后将该文件导入 MySQL(例如 mysqlimport)。这还允许您检查字段是否符合您的预期。当然,可能希望在真实文件的一部分上进行测试。