我必须为 ruby 上的 postfix 日志编写解析器。它应该找到反弹,将其格式化为 JSON 并发送到某个地方。我不是系统管理员,不想在我的笔记本电脑上安装 postfix 服务器。我在哪里可以找到这样的文件来使用?有人可以寄吗?
我在 IIS7 服务器上安装了 mojoportal CMS,用户报告下载 pdf 文件时出现问题。对于我和大多数其他人来说,它总是可以很好地下载,无论是在浏览器中还是在 Adobe Reader 中显示。
使用 logparser 查询 IIS 日志,所有的响应都是状态 200(OK)或 304(未修改),但发送的字节差异很大。有时为零,一些 211,一些大约是 27059 的完整文件大小的一半,以及介于两者之间的很多。大量显示27059的全尺寸。
这些其他较小字节数的条目是否代表某种类型的错误,与报告的问题相关?这可能是浏览器/客户端问题还是服务器端问题?
如果有任何其他有用的信息,请告诉我。这是一个共享托管服务器,所以我在服务器上可以挖掘的内容有些有限。
*编辑:我注意到具有较小字节数的日志条目位于相同客户端IP的一系列条目中,所以我猜浏览器正在做一些事情,它通过多个请求以块的形式获取文件。按客户端对字节求和仍然不会导致每个客户端传输的总字节数一致。
寻找将 LP 集成到此工作流程中的示例:
- SQL 服务器事件表明 IIS 抛出了一个错误。
- SQL 解析错误消息的正文并生成查询 IIS 日志以收集更多信息的 LP 命令行。
- 一封电子邮件将发送给技术支持,其中包含指向将运行并显示 LP 输出的 html(或 .aspx)页面的链接。
所以我认为问题归结为:
我如何将 LP 连接到 IIS7?
编辑:好的......重新沸腾这个问题。当触发 IIS 异常时,我想查看会话 cookie 与错误事件中找到的会话 cookie 相同的所有其他日志行。是的,我可以忍受通过计划任务轮询 IIS 日志——这将 ELMAH/SQL 排除在外。
但是现在问题变成了: 查找所有日志行,其中 session cookie = session cookie 在有错误的行中找到
反正有没有使用 LogParser 获得完整的错误消息?
当我运行以下查询时:
logparser -i:EVT -o:NAT "SELECT TimeGenerated,EventID,Message from System WHERE EventTypeName='Error event'"
我得到以下输出:
2009-09-02 19:35:44 7000 The USB Mass Storage Driver service failed to start due to the following error: %%1058
EventViewer 中的完整“消息”是:
说明:USB 大容量存储驱动程序服务因以下错误而无法启动:
该服务无法启动,原因可能是它已被禁用或没有与之关联的已启用设备。
如何使用 logparser 获取完整的消息?
随着 Stack Overflow 的增长,我们开始仔细查看我们的 IIS 日志以识别有问题的 HTTP 客户端——比如流氓网络蜘蛛、设置大页面每秒刷新的用户、写得不好的一次性网络爬虫、狡猾的尝试增加页面计数的用户数不胜数,依此类推。
我提出了一些LogParser查询,它们可以帮助我们在指向 IIS 日志文件时识别大多数奇怪和异常情况。
URL 的最高带宽使用率
SELECT top 50 DISTINCT
SUBSTR(TO_LOWERCASE(cs-uri-stem), 0, 55) AS Url,
Count(*) AS Hits,
AVG(sc-bytes) AS AvgBytes,
SUM(sc-bytes) as ServedBytes
FROM {filename}
GROUP BY Url
HAVING Hits >= 20
ORDER BY ServedBytes DESC
url 命中 avgbyte 服务 ------------------------------------------------- - ---- -------- -------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
URL 的热门点击
SELECT TOP 100
cs-uri-stem as Url,
COUNT(cs-uri-stem) AS Hits
FROM {filename}
GROUP BY cs-uri-stem
ORDER BY COUNT(cs-uri-stem) DESC
网址命中 ------------------------------------------------- - ---- /content/img/sf/vote-arrow-down.png 14076 /content/img/sf/vote-arrow-up.png 14018
IP / User-Agent 的最高带宽和点击次数
SELECT TOP 30
c-ip as Client,
SUBSTR(cs(User-Agent), 0, 70) as Agent,
Sum(sc-bytes) AS TotalBytes,
Count(*) as Hits
FROM {filename}
group by c-ip, cs(User-Agent)
ORDER BY TotalBytes desc
客户端用户代理totbytes命中 ------------- ------------------------------------- -------- --------- ----- 66.249.68.47 Mozilla/5.0+(兼容;+Googlebot/2.1;135131089 16640 194.90.190.41 omgilibot/0.3++omgili.com 133805857 6447
按 IP / User-Agent 按小时划分的最高带宽
SELECT TOP 30
TO_STRING(time, 'h') as Hour,
c-ip as Client,
SUBSTR(cs(User-Agent), 0, 70) as Agent,
Sum(sc-bytes) AS TotalBytes,
count(*) as Hits
FROM {filename}
group by c-ip, cs(User-Agent), hour
ORDER BY sum(sc-bytes) desc
hr 客户端用户代理 totbytes 命中 -- ------------- ----------------------------------- ------ -------- ---- 9 194.90.190.41 omgilibot/0.3++omgili.com 30634860 1549 10 194.90.190.41 omgilibot/0.3++omgili.com 29070370 1503
按 IP / User-Agent 按小时计算的热门点击
SELECT TOP 30
TO_STRING(time, 'h') as Hour,
c-ip as Client,
SUBSTR(cs(User-Agent), 0, 70) as Agent,
count(*) as Hits,
Sum(sc-bytes) AS TotalBytes
FROM {filename}
group by c-ip, cs(User-Agent), hour
ORDER BY Hits desc
hr 客户端用户代理命中数字节 -- ------------- ----------------------------------- ------ ---- -------- 10 194.90.190.41 omgilibot/0.3++omgili.com 1503 29070370 12 66.249.68.47 Mozilla/5.0+(兼容;+Googlebot/2.1 1363 13186302
{filename} 当然是 IIS 日志文件的路径,例如
c:\working\sologs\u_ex090708.log
我为良好的 IIS LogParser 查询做了很多网络搜索,但发现的很少。上面的这 5 个,极大地帮助了我们识别严重的问题客户。但我想知道——我们缺少什么?
还有哪些其他方法可以对 IIS 日志进行切片和切块(最好使用 LogParser 查询)来挖掘它们的统计异常?你有在你的服务器上运行的任何好的 IIS LogParser 查询吗?
我在我的 IIS 日志上使用LogParser来获取每小时访问量的图表:
SELECT date,QUANTIZE(time,3600),COUNT(*) FROM ex*.log WHERE cs-uri-stem
LIKE '%SomePage.aspx' GROUP BY date,QUANTIZE(time,3600)
问题:如果在一个小时内无法访问 SomePage.aspx,则输出中根本就缺少该行。我只是想知道,即使 COUNT(*) 为 0,我可以告诉 LogParser 每小时插入一行吗?
基本上我需要一些东西来告诉 logparser 使用 MIN(date) 和 MAX(date) 作为“边界”和“期望”每小时一行。显示目前只是进入一个文本文件,然后进入 Excel 以创建一个图表(在 SomePage.aspx 上每小时点击数)所以为了得到一个适当的线性图表,我需要每小时输入一个条目,即使它是 0,如果我可以直接从 LogParser 获取它,那会很棒。