日志收集简介| 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习日志收集简介

开发者学堂课程【场景实践-基于阿里云 Quick BI 对 MOOC 网站日志分析日志收集简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/524/detail/7073


日志收集简介

内容介绍:

一、前言

二、网站日志

三、网站日志分析

四、网站访问日志搜集-nginx

五、网站访问日志搜集-tomcat

 

一、前言

当前社会是一个信息爆炸的社会。仅仅中国就有超过7亿的网民,而这么多网民每天都在根据自己的兴趣爱好生活或者工作需要去访问形形色色的网站。只需要连接网络,无时无刻都在产生着日志数据。在海量的日志数据中隐藏着有价值的信息。为此网站开发人员或分析人员必须通过数据分析获知这些有价值的信息,并由此了解网站当前情况。通过这些信息还可以作为网站优化的依据。

1、本节课程目标:

1)了解网站日志分析的意义(日志是什么,为什么要收集它以及日志分析的重要性)

2)了解网站日志如何搜集(举两个例子包括Tomcatnginx2个服务器去如何配置收集我们的日志数据)

3)使用编程语言对日志数据进行处理

4)使用 MaxCompute 处理数据

5)使用 QuickBI(阿里云开发的高效安全稳定的商业智能平台)以图表形式展示数据 

2、目录结构:

网站日志分析背景

网站日志分析一般流程

使用阿里云产品进行分析

案例:MOOC网站用户访问日志分析

 

二、网站日志

日志网络设备、系统及服务程序等,在运作时都会产生一个叫 log 的事件记录。它的每一行都记载着日期、时间、使用者及动作等相关操作的描述。

网站日志就是网站在运行过程中所产生的日志,包括系统日志和程序日志。

l  系统日志一般就是网站所基于的服务器容器所自动生成的日志,如访问日志,系统错误日志等等。常见的网站系统错误日志有Tomcatnginx

l  程序日志则由用户在程序中自定义构建。(所以并不具备一定的通用性,用户可以通过自己的程序去任意构建日志)

本次课程实验中使用的是网站的系统访问日志。系统的访问日志具有通用的格式。

网站日志分析的重要性:

网站日志本身并没有太大价值,而当我们对其进行分析并利用的时候就会产生很大的价值。

通过对网站日志的分析,我们可以了解︰

l  网站运行状况(如网站PV, UV )

l  网站安全状况(如恶意攻击,密码暴力破解)

l  网站运营状况(如搜索引擎流量来源)

l  网站用户信息(如操作系统,浏览器)  可以在日志数据中收集到用户操作系统和浏览器信息

以上分析可以提供决策支持,比如增加服务器,提升网站安全,修改营销策略等。

 

三、网站日志分析

1.数据采集:通过服务器容器自动搜集

l  Tomcat

l  Nginx

l  程序(也可以在网站程序中进行自定义设计)

2.数据处理:

l  清理(清理掉不需要的数据)

l  转换(将一些数据转换为我们想要的数据)

l  抽取(从海量的数据中提取想要的数据)

l  SQL

l  Java(如果数据量不太大,可以通过JavaPython在本地进行数据处理)

l  Python

l  Hadoop(如果数据量很大,需要使用大数据平台对日志文件在分布式平台上进行处理)

3.数据展现:

l  图表化(对于图表化可以使用工具Tableau

l  Tableau(可以对没有编程或开发经验的人去使用)

l  D3.js(如果对JavaScript前端技术比较了解可以使用D3.js

l  Python(也可以使用Python进行图表化的展示)

4.结果处理:对网站日志进行数据分析,最终目的为了结果处理,从中提取有用信息对网站做针对性优化

l  程序优化

l  服务器调整

l  SEO优化

 

四、网站访问日志搜集-nginx

Nginx是一个高性能的HTTP和反向代理服务器。(常用来做用户请求的分发以及简单的负载均衡。默认不开启访问日志收集)

要开启访问日志收集,修改nginx配置文件: conf/nginx.conf,只需要增加access_log即可。如果想要配置访问日志的格式,可以使用log_format

access_log logs/access.log

//首先指定access_log,然后指定日志的路径,默认处于安装目录下,即当前目录为nginx安装下的logs/access.log

access _log logs/access.log combined;

//可以自己构建日志的格式,默认在后面增加格式名称

log_format combined '$remote_addr - $remote_user [$time_local] '

‘"$request" $status $body_bytes_sent ' ’"$http_referer" "$http_user_age”’;

//同时通过log_format指定格式名称,默认格式为地址、远程用户名、本地时间、请求地址、HTTP请求状态、发送字节数、链接来源、用户客户端信息

 

五、网站访问日志搜集-tomcat

Tomcat 是一个被广泛使用的免费的开放源代码的Web应用服务器。

修改 tomcat 配置文件: conf/server.xml,在安装目录下找到 conf 目录,在目录下找到server.xml,在server.xml中找到最下面的 Access log 配置,默认被注释了,即默认不开启访问日志收集。放开注释 tomcat 将会自动搜集访问日志。

访问日志配置如下:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">  

//指定host名字,app所处目录

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

//默认提供不需要修改  directory 日志文件所输出的目录,此处默认为logs。若想输出到其它路径,可以进行修改

prefix="localhost_access_log." suffix= ".txt"

//日志前缀文件名,默认后缀为.txt文件

pattern="%h %l %u %t &quot;%r&quot; %s %b"/>

</Host>

//整个日志格式,%h -远程主机名即host%l -远程逻辑从identd的用户名,%u -远程用户身份验证,%t -用户访问日期和时间。 &quot””,即%r””括住,%r - 第一行的要求,%s -HTTP状态请求的响应(一般成功为200,若为300及以上表示请求被跳转,若为400及以上表示用户请求错误,客户端请求发生错误可能为找不到页面或者客户端认证失败,若为500及以上表示网站服务器发生错误)%b -发送的字节数即http请求的流量

日志格式:

%a-远程IP地址

%A-本地IP地址

%b -发送的字节数,不包括HTTP头,如果为0则为”-"

%B–发送的字节数,不包括HTTP

%h -远程主机名

%H-请求协议

%l -远程逻辑从identd的用户名(总是返回'-')

%m-请求方法

%p-本地端口

%q-查询字符串

%r - 第一行的要求

%s -响应的HTTP状态代码

%S-用户会话ID

%t -日期和时间,在通用日志格式

%u -远程用户身份验证

%U–请求的URL路径

%v -本地服务器名

%D-处理请求的时间(以毫秒为单位)

%T -处理请求的时间(以秒为单位)

%I -当前请求的线程名称

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 消息中间件 监控
阿里云sls日志服务简介和使用流程
阿里云SLS(Simple Log Service)是一种高度可扩展的、低成本的日志托管服务,它提供了全面的日志采集、存储、分析和呈现功能。阿里云SLS是全球首个在公共云上提供日志服务的企业,它具有高可靠性、高稳定性和高安全性等特点,可满足不同企业的日志需求。
|
Prometheus Cloud Native 数据库
Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
427 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
Kubernetes Java Linux
轻量级日志系统Loki原理简介和使用(3)
轻量级日志系统Loki原理简介和使用(3)
1197 0
轻量级日志系统Loki原理简介和使用(3)
|
存储 数据可视化 搜索推荐
分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介
分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介
200 0
|
中间件 Go 数据库
slog 简介:用于 Go 的结构化日志
slog 简介:用于 Go 的结构化日志
|
SQL 安全 关系型数据库
MySQL的binlog日志的简介与查看
MySQL的binlog日志的简介与查看
1689 4
|
消息中间件 存储 Kafka
go语言并发实战——日志收集系统(二) Kafka简介
go语言并发实战——日志收集系统(二) Kafka简介
282 1
|
存储 数据采集 监控
阿里云SLS简介和购买流程
阿里云SLS是阿里巴巴集团旗下的一款日志服务产品。作为阿里云日志服务的核心组成部分,阿里云SLS(Simple Log Service)为企业提供了一种高效、安全、稳定的日志收集、存储、检索和分析解决方案。
|
CDN
利用工具合并CDN日志操作——内容简介
利用工具合并CDN日志操作——内容简介自制脑图
170 0
利用工具合并CDN日志操作——内容简介