网站日志是记录web服务器接收处理请求以及运行时错误等各种原始信息的以·log结尾的文件,确切的讲,应该是服务器日志。网站日志最大的意义是记录网站运营中比如空间的运营情况,被访问请求的记录。通过网站日志可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器、什么分辨率显示器的情况下访问了你网站的哪个页面,是否访问成功。
如何分析网站日志:
核心提示:网站日志是我们SEO人员与基础数据之间互通有无的入口,同时分析网站日志能力也是考量一个网站维护正常与否的重要指标之一。如何分析网站日志呢,编者从以下几种方式当中为您详细总结并做以介绍。
基础的网站日志是衡量整个网站优化过程中最为常见的方式工具之一,同时借助于网站日志,站长朋友们可以更为方便、高效的查看网站整体于运营情况。而网站本身就是属于一种智能的数据库,都记录着网站每一天的访问与统计数据。它们被形成一种格式,存储在网站空间的FTP当中,通过查看这些数据报表,就会对整个网站数据排名、收录有更好的排名展示。通常情况下,我们在获取网站日志的过程中,都会用到最为常见的FTP上传、下载工具。我们平常关注的都是利用最为显眼的方式,此外在其他分析统计方法当中,更要多重基础得到网站日志IP地址、访问返回值、以及访客性质等多方面来进行权威的判定,更为高效的利用网站日志,达到最好的展示效果。具体我们在统计网站数据排名、访问路径以及方式等过程中,均有一定的表现形式。
这里也是为您总结了几种网站日志分析应该注意的要点:
1、用户的IP地址。我们可以根据用户的IP地址来判断用户的地理位置,从而统计出目到访用户的地理区域。尤其是企业做了竞价推广以后,如果发展同一个IP一天之内多次访问,那可能就是恶意点击。
2、访问日期和时间。根据访问日期和时间,我们可以确定好网站在什么时间段访问率比较高,从而有针对性的对其原因和优势进行分析,然后采取相关措施利用那个时段进行集中营销等等。
3、访问次数和停留时间。通过分析用户的访问次数和停留时间,我们可以判断用户的购买意向强度和对某些内容的关注度,从而帮助企业有针对性的加强客户联系和进行内容优化建设。
4、页面被抓取量和次数。通过网站日志分析网站页面的被抓取量和次数,以此判断搜索引擎蜘蛛的活跃力度、抓取深度以及亲和程度等等,从而使网站优化更有针对性,从而让搜索引擎蜘蛛抓取和收录更多的网站资源。
5、访问页面的返回码。不论是搜索引擎蜘蛛还是访问用户,根据访问页面的HTTP状态码,我们都可以追溯和判断网站页面是否正常,以便及时进行页面调整等等。
6、访客来路。知道用户通过什么渠道访问到你的网站很重要。这样企业就完全可以根据相关来源渠道进行优化建设,从而大大增加自身的客源优势。
总的来讲,对于网站日志,我们也应掌握基础的分析统计方式,如今常见的网站日志分析已经成为当今使用最为常见的种类之一,未来市场当中,更是需要这样优秀而又耐用的方式来提升网站整体质量,了解以及掌握基础的网站运营方式,才可以在未来更好的来展示网站优化、运营推广效果。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
不知道你说的日志的种类指的什么意思,再apache中记录日志的格式分种类,1.有简单记录的比如记录ip,访问时间。
2.有复杂一点的比如ip,访问时间,页面,返回结果
但记录类型都是文本。不知掉这么解释可否
日志实体类信息包括哪些内容?组件选择选择组件,我们这边主要是从以下几个方面进行考量的:
组件对应的开源生态完整、活跃度高
对应的技术栈是我们所熟悉的,我们这边语言技术栈主要是Java、Go,如果组件语言是C、Ruby,应该就被排除了。
运维成本
易部署、性能好
1、Agent
一提到日志收集方案,大家第一个想到的肯定是ELK(Elasticsearch、Logstash、Kibana ),但Logstash依赖于JVM不管是性能还是简洁性,都不是日志收集agent的首选。
个人感觉一个好的agent应该是资源占用少,性能好,不依赖别的组件,可以独立部署。而Logstash明显不符合这几点要求,也许正是基于这些考虑elastic推出了Filebeat。
2、Collector、MQ
elasticsearch集群在部署的时候,一般都是提前估计好容量、机器、shard等信息,因为elasticsearch集群运行后,再水平拓展,比较麻烦,而我们这边由于业务及成本限制无法很好的预估容量,所以就结合公司实际要求:使用日志服务的业务方自带机器,也就是业务方会有独立的elasticsearch集群。
每个业务方都使用自己的elasticsearch集群,所以集群压力不会很大,从而Collector、MQ这两个组件对于我们的作用也就很小了。
3、ETL
因为Elasticsearch Ingest Node完全可以满足我们的解析需求,所以就没有必要再引入Logstash等相关组件了。
到这里,基本可以看出我们的架构如下:
架构合适的,就是最好的。
三、业务需求
我们这边收集日志应对的场景主要是:文本日志、docker日志、k8s日志,恰恰这些EFK全家桶都支持。
我们希望日志收集产品可以满足以下几个需求:
按照项目、应用、实例维度检索日志并支持搜索关键字高亮(因为大家检索日志的时候,肯定是检索某个应用、某个实例的日志)
支持检索出某条想要的日志后,可以查看上下文(查看该日志所在日志文件的前后多少条)
支持日志下载(目前支持两种场景:搜索结果下载、上下文下载;支持两种方式:在线下载、离线下载)
支持Elasticsearch Query String查询
支持自动化批量部署、卸载Filebeat,部署、卸载过程可视化
单实例支持多elasticsearch集群
支持文本日志、docker日志、k8s日志并能与将日志与其业务意义对应上。(即不管是哪种日志形式、来源,最终都需要与业务意义上的项目、应用、实例对应起来,因为对于日志的使用者来说,查询日志的出发点肯定是查询某个项目、某个应用(可以不选)、某个实例(可以不选)、某段时间的日志。)
四、具体实现
基于需求及EFK套件,梳理我们场景中特有的东西:
docker日志的场景比较单一,都是通过之前一个产品A发布部署的,其docker命名规则比较统一,可以通过截取docker.container.name来获取应用名字;同时在部署的时候,可以知道部署目标机器的ip,这样就可以通过应用+ip来作为实例名称。
k8s场景也比较统一,都是通过之前一个产品B发布部署的,其pod命名规则比较统一,可以通过截取kubernetes.pod.name来获取应用名字(但需要通过namespaces关联到tenant,再通过tenant与项目一一对应);k8s中的pod.name就是唯一的,以此来作为实例名称即可。
文本日志:因为文本日志主要的场景是已经裸机部署的应用,这种场景下,不存在应用自动迁移的情况,所以文本日志的应用名称、实例名称可以在部署的时候打上标签即可。
具体规则及解析见下图(实例部分处理暂未标注):
其实,我们不太推荐写日志到文本文件中,使用标准输出就好。
到这里可以发现我们选择Filebeat来作为日志的收集端,Elasticsearch来存储日志并提供检索能力。
那么,日志的清洗在哪里做呢?
日志的清洗一般有两种方式:
先把日志收集到kafka,再通过Logstash消费kafka的数据,来清洗数据
直接通过Elasticsearch的[Ingest Node]来清洗数据,因为Ingest Node也支持Grok表达式
对于,我们的场景而言,我们需要清洗数据的要求比较简单,主要是应用、实例名称的截取还有文本日志中日志时间的处理(@timestamp重置,时区处理),所以我们选择了方案2。
其实,选择方案二还有个原因就是:系统在满足需求的同时,尽量保持简单,减少依赖的组件。
在我们的方案中,并没有提供Kibana 的界面直接给用户用,而是我们自己根据公司业务独立开发的。
前端界面为什么不采用Kibana,而需要自己开发?
1、kibana对于业务开发人员有一定的学习成本
2、kibana界面没有很好的将日志内容与业务意义关联起来(界面选择总比一次次的输入要好,这也是我们将日志的项目、应用、实例等业务信息解析出来的原因)
3、log-search支持Query String,因此对于熟悉kibana的开发人员来说,在我们自己开发的前端界面检索效果是一样的。
log-search提供的功能可以参见github:log-search
https://github.com/jiankunking/log-search
如果日志需要清洗的比较多,可以采用方案1,或者先不清洗,先把数据落到Elasticsearch,然后在查询的时候,进行处理。比如在我们的场景中,可以先把日志落到Elasticsearch中,然后在需要检索应用名称的时候,通过代码来处理并获取app名字。
五、监控、告警
其实基于日志可以做很多事情,比如:
基于日志做监控(Google Dapper)
基于日志做告警
基于日志做Machine Learning
具体思路,可以参见下图:
前提:能要求使用方,按照某种规则打印日志。
监控发展:监控基本就是先打通链路trace,然后再在上报信息或者日志信息中,加强业务方面标识,即给监控添加业务维度方面的视角。
六、其它
1、DaemonSet
以DaemonSet方式部署Filebeat来收集日志,其实收集也是宿主机/var/lib/docker/containers目录下的日志。
Running Filebeat on Kubernetes
2、Sidecar
一个POD中运行一个sidecar的日志agent容器,用于采集该POD主容器产生的日志。
莫名想起了istio。
Filebeat可以以sidecar模式来进行容器日志的收集,也就是filebeat和具体的服务容器部署在同一个pod内,指定收集日志的路径或文件,即可将日志发送到指定位置或Elasticsearch这类的搜索引擎。
每个pod内部署filebeat的模式,好处是和具体的应用服务低耦合,可扩展性强,不过需要在yaml进行额外配置。
3、业界案例分享
InfoQ运维大会日志处理专题演讲干货合集
曹林华-沪江网日志平台化之路
黎吾平-日志分析场景下的搜索引擎改进
林冰玉-QA 与Ops通力打造反脆弱的软件系统
周辉-新思路打造移动端个案综合日志分析系统
个人微信公众号:
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
展开全文
APM:ELK 与 Prometheus
同为监控应用的两个平台,Prometheus和ELK的对比: ELK和Prometheus的对比 Prometheus ELK 轻量、部署相对简单 较重,组件较多,部署起来较麻烦 使用灵活,需要使用者会灵活运用 上手较为简单 适用于短期使用,比如SIT测试 适用于长久稳定地运行 ...
APP打开
Linux下常见的日志文件名
Linux常见的日志文件名: /var/log/cron 工作调度 /var/log/dmesg 内核检测过程中产生的信息 /var/log/lastlog 检测所有账号登陆信息 /var/log/maillog或/var/log/mail/* 邮件 /var/log/messages 记录系统发生的所有错误信息 /var/log/secure 涉及账号密码信息 /var/log/w...
APP打开
评论(23)
写评论
码工邢美玲码龄4年
哇啊1年前
刘佳欢--hannah码龄5年
谢谢分享1年前
衣舞晨风码龄10年
回复刘佳欢--hannah:愿能对你有所帮助
1年前
xudc码龄10年
学习了1年前
mortredly码龄1年
很优秀啊1年前
LaLaLa_OvO码龄10年
我现在每次去生产环境下载tomcat里的log文件分析,感觉好麻烦Ծ‸Ծ,感谢博主提供的思路,虽然一下子没太懂,但是研究下应该可以理解的1年前
码哥Think—Coder码龄3年
厉害1年前
fightsyj码龄4年
优秀1年前
叄拾叄画生码龄2年
不错1年前
qq_45010093码龄1年
我要下载码1年前
衣舞晨风码龄10年
回复qq_45010093:???
1年前
码农凉快-Eric码龄3年
日志很重要,在下需努力!1年前
去APP查看全部评论
SpringBoot控制台彩色输出
#控制台彩色输出 spring: output: ansi: enabled: ALWAYS SpringBoot控制台彩色输出
APP打开
分布式系统中的日志落地经验总结
@分布式系统中的日志落地经验总结 在过去的2年多的时间里,随着在公司推进容器云,陆陆续续的和日志打了不少交道,在这里做一个总结: 为什么需要日志 日志如何接收与存储 日志如何收集 日志收集客户端分析 日志的标准化 日志报警 日志归档 其他问题 为什么需要日志 日志的作用我觉得有三点: 故障排错 数据分析 业务审计 1,关于故障排错,当线上发生异常,查看应用的错误日志、堆栈信息、代理层的访问...
APP打开
关于日志的那些事儿 - 樱木天亥 - CSDN博客
写这篇文章是源于耗子叔在左耳听风专栏的群里发布了命题作文「关于日志的那些事儿」,正好可以去查阅资料,学习了解一下日志方面的知识。 什么是日志 首先,什么是...
关于日志的那些事儿_xiemanR的专栏-CSDN博客
关于日志的那些事儿 日志的作用 1.审计 商业分析:比如从日志中提取用户行为(比如,一个点击事件流)并结合用户的其他详情(比如,最终购买行为)来生成报告或者推荐相关...
如何打一手好Log
如果项目上过线的话,那你一定知道Log是多么重要。 为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题。这时打一手好Log的重要性绝不亚于写一手好代码。项目出问题时,你要能拿出Log证明自己负责的部分没有问题,如果是自己的问题,要从Log里快速找出错误原因。如果没有从Log里找出错误原因,那一定是一件很悲催的事情,特别是在bug不容易重现的情况下。那简直...
APP打开
关于日志那些事
关于日志那些事 对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。在生产环境中,日志是查找问题来源的重要依据。本文从日志的定义、作用、分类、级别等角度介绍日志。 什么是日志 日志是用来保存系统发生的事件信息和各种对象执行的操作信息的管理对象...
APP打开
关于日志的那些事儿 - weixin_34416754的博客 - CSDN博客
写这篇文章是源于耗子叔在左耳听风专栏的群里发布了命题作文「关于日志的那些事儿」,正好可以去查阅资料,学习了解一下日志方面的知识。 什么是日志 首先,什么是...
Filebeat 收集日志的那些事儿_360技术-CSDN博客
点击蓝字关注我们最近因为云原生日志收集的需要,我们打算使用Filebeat作为容器日志收集工具,并对其进行二次开发,因此笔者将谈谈 Filebeat 收集日志的那些事儿。本文不...
一起来学 SpringBoot 2.x | 第三篇:SpringBoot 日志配置
点击上方“芋道源码”,选择“置顶公众号”技术文章第一时间送达!源码精品专栏 精尽 Dubbo 原理与源码专栏( 已经完成 69+ 篇,预计总共 75+ 篇 )中文详细注释...
APP打开
写日志的那些事儿
2019独角兽企业重金招聘Python工程师标准>>>...
APP打开
Filebeat 收集日志的那些事儿_weixin_48726650的博客-CSDN博客
Filebeat 收集日志的那些事儿 1前言 开源日志收集组件众多,之所以选择Filebeat,主要基于以下几点: 功能上能满足我们的需求:收集磁盘日志文件,发送到Kafka集群支持多行...
Filebeat 收集日志的那些事儿_HULK一线技术杂谈-CSDN博客
女主宣言最近因为云原生日志收集的需要,我们打算使用Filebeat作为容器日志收集工具,并对其进行二次开发,因此笔者将谈谈 Filebeat 收集日志的那些事儿。本文不涉及过...
日志记录的作用和方法 java
程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据。日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事情。这里列举下面三个方面的内容,辅以代码示例,总结如何写好日志,希望对他人有所启发和帮助: 怎样记日志可以方便Troubleshooting程序运行状态可以记哪些应该避免怎样的日志方
APP打开
JB的ARTS之旅-关于日志的那些事
前言 很多小伙伴看到标题,可能会有疑问,什么叫ARTS?,这里答疑一下: 这是来自于左耳朵耗子专栏的一个活动,详情请来到某乎了解; 而ARTS实际意义是: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip:学习至少一个技术技巧 4.Share:分享一篇有观点和思考的技术文章 复制代码 因精力有限,暂时只能挑一个完成,希...
APP打开
运维的那些事儿 - 狂生小白的博客 - CSDN博客
十二、应用系统日志 这里边可分析的东西就多了, 不过...人工智能那些事儿0.目录那些有意思的事儿那些数学的...关于思维导图的那些事 阅读数 529 前言:经过米老...
写评论
23
9
82
分享
APP内打
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)