了解如何可以建立一个早期预警系统,为您的网站的更重要的错误,使用服务器日志,看看你应该注意什么。
随着网络变得越来越复杂,使用JavaScript框架和库的前端网站进行网络应用,单页应用程序,json-ld,等等,我们越来越多地看到一个更大的表面积出错。当所有你所得到的是HTML和CSS的链接,那么你就有很多混乱。然而,在当今世界的动态生成网站通用JS接口,有很大的误差空间。
我们面临的第二个问题是,很难知道什么时候发生了什么问题,或者当谷歌改变了他们如何处理的事情。这是只有当你考虑像复合站点迁移情况或重新设计,在那里你会突然档案大量旧内容,或重新映射的URL结构。那么,我们如何应对这些挑战呢?
旧的方式
从历史上看,你这样的分析的方式是通过查看您的日志文件,使用的是,或,如果你是铁杆,日志分析器。这些都是伟大的,但他们需要你知道你有一个问题,或者说,你在寻找和发生的一段日志,有问题的你需要解决的问题。不是不可能的,我们已经写了这样做相当广泛,在我们的博客和我们的日志文件分析指南。
然而,这个问题是相当明显的。它需要你的样子,而不是让你意识到有东西要找。考虑到这一点,我想我会花一些时间调查是否有可以做的事情,使整个过程花费更少的时间,并作为一个早期预警系统。
援助之手
我们需要做的第一件事是让我们的服务器在某处发送日志文件。我的标准解决方案,这已成为使用日志旋转。这取决于你的服务器,你可以使用不同的方法来做到这一点,但在Nginx的它看起来像这样:
# time_iso8601 looks like this: 2016-08-10T14:53:00+01:00
if ($time_iso8601 ~ "^(d{4})-(d{2})-(d{2})") {
set $year $1;
set $month $2;
set $day $3;
}
access_log /var/log/nginx/$year-$month-$day-access.log;
这允许您查看任何特定日期或日期集的日志,简单地将数据从与该期间有关的文件中拔起。设置日志的旋转,我们就可以建立一个脚本,我们会在午夜使用cron,把日志文件,涉及昨日的数据和分析。如果你想,你可以每天看几次,或每周一次,或在任何时间间隔最适合你的数据量水平。
下一个问题是:我们要寻找什么?嗯,一旦我们有了一天的日志,这是我得到我的系统报告:
30 *状态码
生成一个由用户产生的所有页面的列表,导致重定向。如果链接到该资源的页面在您的网站上,将其重定向到实际的结束点。否则,联络人联系你让他们排序链接到它应该去的地方。
404状态码
类似的故事。任何404ing资源应进行检查以确保他们应该失踪。任何应该是有可以调查为什么它没有解决,并链接到任何实际丢失的可以处理在相同的方式作为一个301 / 302代码。
50 *状态码
一些糟糕的事情发生了,你不会有一个好的一天,如果你看到许多50 *代码。您的服务器正在死亡的请求到特定的资源,或可能是你的整个网站,这取决于到底有多坏这是。
爬行预算
谷歌抓取的每一个资源列表,有多少次被请求,多少个字节被传送,以及时间来解决这些请求。比较这个与你的网站地图,以找到网页,谷歌不会爬行,或它的锤击,并根据需要修复。
顶部/至少请求的资源
类似上述,但详细介绍了搜索引擎的最和最不要求的东西。
坏演员
许多机器人寻找漏洞会要求像wp_admin,wp_login,404s,config.php,和其他类似的公共资源的URL。使对这些类型的网址的重复请求的任何IP地址可以自动添加到一个IP黑名单。
模式匹配的网址报告
使用正则表达式匹配请求的URL与预定义的模式很简单,在你的网站或页面类型的特定区域报告。例如,你可以对图像的请求报告,JavaScript文件被调用,分页,表单提交(通过寻找POST请求),逃跑的片段,查询参数,或几乎任何其他。它提供的一个URL和HTTP请求,你可以将它设置为一个片段进行报道。
尖尖的搜索抓取行为
日志由Googlebot请求数量的每一天。如果它增加超过百分之十,这是感兴趣的东西。作为一个侧面说明,与大多数数字系列,一个计算,以点极端的异常值是不难创造,而且很可能是值得你的时间。
输出数据
根据任何特定部分的重要性,您可以将数据设置为以两种方式登录。首先,大量的40 *和50 *状态代码或坏演员的要求将是值得触发一个电子邮件。这可以让你很快知道,如果发生的事情,这可能表明一个大问题。然后,你可以得到的顶部,无论是什么,并解决它作为一个优先事项。
作为一个整体的数据也可以通过一个仪表板上的报告。如果你每天的日志中没有这么多的数据,你可能只想在运行时查询文件,并在你查看它的时候生成报告新鲜。另一方面,大量的流量的网站,因此更大的日志文件可能要缓存每天的输出到一个单独的文件,所以数据不必计算。很明显,你使用的方法的类型取决于你将在规模上运行的规模和你的服务器硬件是如何强大的。
结论
由于服务器日志和基本的脚本,没有理由你应该有一个的情况下,某些地方的问题在您的网站上,你不知道。技术问题,主动通知是在一个世界里,谷歌会以更快的速度的一个必要的事情,这意味着他们可以开始把你的排名下降几小时内到现场停机或错误,谢谢。