文章目录 3-网站日志分析案例-MapReduce执行日志清洗 准备环境: 1.数据介绍 2.基于IDEA创建Maven工程 3.日志清洗 创建日志清洗类 创建MR 导入HDFS 4.问题解决 问题1: 问题2: 总结 3-网站日志分析案例-MapReduce执行日志清洗 准备环境: Linux环境 Windows环境 均做了调试 本文代码是基于window开发,因为数据量较大时,相比虚拟机,本地运行更顺畅些 图2 日志记录数据格式 1.2 要清理的数据 (1)根据前面的关键指标的分析,我们所要统计分析的均不涉及到访问状态(HTTP状态码)以及本次访问的流量,于是我们首先可以将这两项记录清理掉; (2 )根据日志记录的数据格式,我们需要将日期格式转换为平常所见的普通格式如20150426这种,于是我们可以写一个类将日志记录的日期进行转换; (3)由于静态资源的访问请求对我们的数据分析没有意义,于是我们可以将 3部分。
3、IV是初始向量(IV,Initialization Vector)。 比如 {'apple', 'banana', 'cherry', 'banana', 'apple'} 的基数就是 3 。 PFMERGE 的使用示例 redis> PFADD str1 "apple" "banana" "cherry" (integer) 1 redis> PFCOUNT str1 (integer) 3 os.O_WRONLY, 0644 ) //打开go生成的日志 if err == nil { log.Out = logFd //打开出错,则用日志文件存错误信息 params.routineNum) //读取日志文件量更大,设置为3倍 var pvChannel = make(chan urlData, params.routineNum) var
#导入正则模块 import re auth="no_shutdown_" ''' 分析日志的模块,查找日志中标志性信息产生的次数 ''' #定义你需要查找的对象的正则表达式wordcheck #需要分析的日志的路径 wordcheck,filesource): #定义一个空的字典用来存放查询的结果 size={} #异常捕获当文件不存在的时候抛出异常 try: #打开日志文件 如果有异常抛出文件异常 except FileExistsError as e: print(e) #没有异常打印结果 else: return size #测试分析 apache访问日志中的所有访问过的ip和次数 rs=checklog("(\d+\.){3}\d+","/var/log/httpd/access_log") print(rs) ---- 结果 因为是测试机上的日志结果比较少 {'127.0.0.1': 58, '192.168.2.254': 10}
四、Windows日志实例分析 在Windows日志中记录了很多操作事件,为了方便用户对它们的管理,每种类型的事件都赋予了一个惟一的编号,这就是事件ID。 1. 五、WEB日志文件分析 以下列日志记录为例,进行分析: #Software: Microsoft Internet Information Services 6.0 #Version: 1.0 sxjyzx/2.gif - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0 分析 表示程序有错; sc-substatus 服务端传送到客户端的字节大小; cs–win32-statu客户端传送到服务端的字节大小; 1**:请求收到,继续处理 2**:操作成功收到,分析 有时是为了防止发生系统过载 503——服务器过载或暂停维修 504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长 505——服务器不支持或拒绝支请求头中指定的HTTP版本 FTP日志分析
1、提交当天访问次数最多的IP,即黑客IP 已知中间件是Linux上的Apache,常见日志路径一般是: /var/log/apache/ /var/log/apache2/ /var/log/httpd / 这里定位到日志路径是/var/log/apache2。 通过命令ls -lah根据文件大小,判断日志文件是access.log.1,因为access.log的大小是0。 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" | md5sum计算md5值,得到:2D6330F380F44AC20F3A02EED0958F66 flag{2D6330F380F44AC20F3A02EED0958F66} 3、查看index.php页面被访问的次数,提交次数 使用命令cat access.log.1 | grep ' /index.php
MySQL日志: mysql> SHOW [GLOBAL|SESSION] VARIABLES LIKE '%log%'; 这样子可以看到所有关于日志的变量: 错误日志 、查询日志、慢查询日志、事务日志 错误日志: 默认开启,且在datadir的根目录下,文件名是"HOSTNAME.err" 可以在/etc/my.cnf中定义 log_error 会包含sock文件找不到、MySQL未初始化 还比如会反解0.0.0.0到本地失败的信息 2、服务器运行过程中的错误信息 3、时间调度器运行一个时间时产生的信息 由于事务日志没有写入磁盘,当下一个操作需要用到上一个操作的结果时,事务日志就必须能够生成一个视图给用户查询。 查看也是一样 一般在利用二进制日志进行还原时,必须使用此项,关闭会话级别的二进制日志。 否则只会突然增加二进制日志的量,不便于管理。
GC 日志分析 首先,如果需要查看 GC 日志,需要在 jvm 参数中加入如下参数 -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClogs /tomcat6-gc.log GC 日志 2016-11-23T11:01:27.738+0800: 0.150: [GC [PSYoungGen: 331K->288K(5952K)] 331K- PSPermGen: 3060K->3060K(21248K)], 0.0052429 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] Young GC 日志 image Full GC 日志分析 ? image JVM 参数设置 jvm 参数对应堆内存设置 ? image 比例设置 ? 32M) -XX:MaxGCPauseMillis=500 :设置最大暂停时间(毫秒) -XX:+DisableExplicitGC:禁止显示GC的调用(即禁止开发者的 System.gc();) GC日志
C、如何筛选 如果想要查看账户登录事件,在右边点击筛选当前日志,在事件ID填入4624和4625,4624 登录成功 4625 登录失败 D、事件ID及常见场景 对于Windows事件日志分析,不同的 \System32\ipconfig.exe 进程终止 C:\Windows\System32\ipconfig.exe 3、在入侵提权过程中,常使用下面两条语句,会形成怎么样的日志呢? net user USER PASSWORD /add net localgroup administrators USER /add 0x02 日志分析工具 A、Log Parser Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory pvid=000115_3w_a Winserver 2008事件日志-事件ID详解 https://blog.csdn.net/Jason_WangYing/article/details/62418008
在nginx.conf中定义的日志格式如下: http { ... http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ... } 日志文件如下 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-" nginx没有命令直接将日志按天分割 access-api-$(date -d "yesterday" +"%Y%m%d").log cron: 0 0 * * * /mydata/nginx/nginx.log.sh 从nginx服务器将日志数据传输到日志服务器 remote_addr = s.group(1) local_time = s.group(2) request_method = s.group(3)
AWStats日志分析系统介绍 1.AWStats日志分析系统 (1)Peri语言开发的一款开源日志分析系统 (2)可用来分析Apache、Samba、 Vsftpd、 IIS等服务 器的访问日志 (3 )信息结合crond等计划任务服务,可对日志内容定期进行分析 部署AWStats日志分析系统 1.安装AWStats软件包 2.为要统计的站点建立配置文件 3.修改站点统计配置文件 4.执行日志分析,并设置 crontab计划任务 访问AWStats分析系统 1.查看统计页面 2.设置网页自动跳转,方便访问 具体操作: 1.安装DNS和HTTP服务软件包 [root@localhost ~]# yum install localhost ~]# vim /etc/named.conf (2)区域配置文件 [root@localhost ~]# vim /etc/named.rfc1912.zones (3) [root@localhost named]# vim kgc.com.zone (4)开启DNS服务 [root@localhost named]# systemctl start named 3.
日志采用默认的格式产生,一直也没太关注, 这次正好藉着博客改版,尝试分析下近期的日志,以对网站状态有个全局的了解。 网上有许多日志分析采用的是简单粗暴的bash脚本(awk)来进行处理, 好处是分析速度快,但坏处是拓展性不强,如果未来想要做图表或者在网页前端展示就比较麻烦了。 扯得有点远了,还是继续分析日志吧。 错误日志分析 错误日志也叫应用程序日志,主要用于方便开发者或者运维在出问题的时候排查原因。 分析 错误日志相对于访问日志要少(废话),但从中也能找到对我们有价值的信息。
0x03 事件日志分析 对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明: 事件ID 说明 4624 登录成功 4625 登录失败 4634 注销成功 3 网络(Network) 最常见的情况就是连接到共享文件夹或共享打印机时。 4 批处理(Batch) 通常表明某计划任务启动。 案例2:可以利用eventlog事件来查看计算机开关机的记录: 1、在“开始”菜单上,依次指向“所有程序”、“管理工具”,然后单击“事件查看器”; 2、在事件查看器中,单击“系统”,查看系统日志; 3、 0x04 日志分析工具 Log Parser Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志 Event Log Explorer Event Log Explorer是一款非常好用的Windows日志分析工具。
常见的日志分析问题及解决方案2.1 日志文件格式不统一问题:日志文件格式不统一,导致难以进行统一分析。解决方案:使用日志解析工具将日志文件转换为统一格式。 :日志文件内容复杂,难以直接分析。 解决方案:使用日志分析工具提取关键信息。 解决方案:使用日志聚合和分析工具进行大规模分析。 4.2 优化分析建议:根据系统的变化和新的日志需求,及时优化日志分析工具和配置。
具体链接请参考windows日志转发_leeezp的博客-CSDN博客_windows日志转发 安装 ewk (es+winlogbeat+kibana) 转发主机日志_leeezp的博客-CSDN博客 这篇文章记录windows事件和日志的对应关系。 (Windows 10) – Windows security | Microsoft Docs 登录失败如果在windows事件查看器 — Windows日志 — 安全 查看不到日志,可能是因为没有开启 在 “审核策略” — “审核登录事件” 开启 “成功” 和 “失败”的日志: 设置完再次mstsc登录失败,在安全日志可以查看到登录失败 事件ID 4625 的告警: 如果没有配置本地安全策略开启登录审计 登录失败不清楚为什么会有1149 认证成功的日志。 这个日志可以用于远程登录失败的审计,无法审计登录成功。登录成功还是需要事先开启本地安全策略审核登录事件。
慢查询日志一般用于性能分析时开启,收集慢SQL然后通过explain进行全面分析,一般来说,生产是不会开启的,收集慢查询语句是十分耗性能的,但是我们在测试环境是可以模拟分析的,优化SQL语句,接下来就通过实战 ,讲解如何开启慢日志查询以及如何分析。 global VARIABLES like 'long_query_time%' 查看三、模拟慢sql并分析由于本次数据库安装通过docker安装,所以需要进入到mysql容器内部去查看慢日志,上面看到慢日志地址 Navicat客户端模拟,查询超时,睡眠4秒,由于我们上面设置了查询超过3s保存慢日志select sleep(4);图片 4)再一次查看cat /var/lib/mysql/dca928abb464- 指定日志文件,查看记录集中最多的sqlmysqldumpslow -s r -t 10 /var/lib/mysql/dca928abb464-slow.log图片三、总结本文通过实战demo,一步一步配置分析如何利用慢日志去定位查询耗时的
一、Windows日志文件的保护 日志文件对我们如此重要,因此不能忽视对它的保护,防止发生某些“不法之徒”将日志文件清洗一空的情况。 1. 修改日志文件存放目录 Windows日志文件默认路径是“%systemroot%system32config”,我们可以通过修改注册表来改变它的存储目录,来增强对日志的保护。 、安全日志、系统日志。 设置文件访问权限 修改了日志文件的存放目录后,日志还是可以被清空的,下面通过修改日志文件访问权限,防止这种事情发生,前提是Windows系统要采用NTFS文件系统格式。 二、Windows日志实例分析 在Windows日志中记录了很多操作事件,为了方便用户对它们的管理,每种类型的事件都赋予了一个惟一的编号,这就是事件ID。 1.
前言 长话短说,事情的起因是这样的,由于工作原因需要分析网站日志,服务器是windows,iis日志,在网上找了找,github找了找,居然没找到,看来只有自己动手丰衣足食。 ,然后每个ip去分析; 3. 基于访问请求的状态码,也大致可以判断出行为。 目前分三个模块,一个日志归类模块命名为url.py,攻击分析模块attac.py, ip地理位置查询模块ipfind.py,还有一个主函数。 现实不足:看了差不多有3个月日志了吧,先说一个最严重的问题,post请求data看不见,本身日志就看不到data,何况等到https普及了日志什么样也不知道,要是有能力最好做成和waf联动那样的。 而未知威胁则不同了,就好比一个0day,攻击waf没用了,日志分析看不出来了,那么只能依靠应急响应以及服务器的报警了。
0x00 事件 帮助朋友搭建了博客,运行过了一段时间,准备发个网站分析报告给他。 有效的数据只有 Nginx 的访问日志,于是使用决定 GoAccess 工具对这个日志进行分析, 0x01 安装 吾使用的是 CentOS,使用 yum 源进行安装即可。 $ yum -y install goaccess 其他平台可参考官方下载:https://goaccess.io/download 0x02 使用 1、确定日志格式 从 Nginx 的配置中可以查看日志文件的格式 --log-format 指定日志格式字符串。 --date-format 日志格式日期。它们都以百分号(%)开头。 --time-format 日志格式时间。它们都以百分比(%)开头。 3、查看分析文件 最后在浏览器中打开 test.html 文件,就能看到访问日志的具体分析: image.png image.png :
FullEventLogView比eventvwr的优势就不赘言了 http://www.nirsoft.net/utils/full_event_log_view.html 说下使用技巧 外部机器.evtx的分析用它非常方便 ,.evtx一般在C:\Windows\System32\winevt\Logs目录,要分析哪台机器的,把日志拿过来,在FullEventLogView里如下图指定数据源,数据源里的文件后缀用*.evtx 指定条件分析很方便: 条件维度如下图比较多,时间、事件级别、事件ID、来源、描述等 可以指定条件正向过滤,也可以指定条件反向过滤 扩展: 端口耗尽、tcpip相关的事件ID 4227,4231,4266 8197,8198,12288,12289 这样过滤(一般来说用事件ID过滤效率高,过滤得快,如果用description里的字符串过滤,效率会差一些,过滤得慢) 或者 powershell命令过滤日志举例 : tcpip来源的日志4227,4231,4266(如过滤到,则需要放大tcp动态端口范围、缩短timewait回收时间) Get-EventLog -LogName System -Source Tcpip
3.Spark SQL概述 1.Spark SQL前世今生 为什么要使用sql? spark,hive on mapreduce Shark hive on spark ==> shark(把hive解析后的作业翻译成spark作业) 优点:1.基于spark;2.基于内存的列式存储;3. 自己的守护进程执行的,非mr (对内存要求比较高) presto facebook,京东 支持sql drill 支持sql 能够访问:hdfs、rdbms、json、hbase、mongdb、c3、 hive ==> 外部数据源 3.Spark SQL 概述 官网:http://spark.apache.org/sql/ Spark SQL is Apache Spark's module for SQL的功能,他还提供了其他的非常丰富的操作:外部数据源,优化 Spark SQL概述小结: 1.Spark Sql并不局限于SQL 2.可以访问hive、json、parquet等文件的数据 3.