如果把“运维”看做是医生给病人看病,那么“日志”则是病人对自己病情的陈述。很多时候,医生需要通过对病人的描述当中得出病人的状况,是否严重,需要用什么剂量的药物,该用什么类型的药物。所以古人有句话叫做“对症下药”,这个“症”就是病人的自我病情描述,加上医生的专业判断;再严重一点的疾病,需要加上一些检测工具和化验的数据。在医生看病时,病人描述的病情和化验单上的数据,对医生的判断是非常重要的。
日常的网络管理和运维,包含了上图当中的诸多方面,运维当中的任何一个点出现问题,都会影响到网络的安全和服务的稳定性。所以大多数网络运维人员的工作状态,都是充当“消防员救火”的角色,哪里有问题就解决哪里,时常被各种突发的问题牵着鼻子走。
今天,我们来讲讲日常网络运维当中的“日志”管理。
一、什么是日志?
简单地说,日志就是计算机系统、设备、软件等在某种情况下记录的信息。具体的内容取决于日志的来源。例如,Unix操作系统会记录用户登录和注销的消息,防火墙将记录ACL通过和拒绝的消息,磁盘存储系统在故障发生或者在某些系统认为将会发生故障的情况下生成日志信息。
日志中有大量信息,这些信息告诉你为什么需要生成日志,系统已经发生了什么。例如,Web服务器一般会在有人访问Web页面请求资源(图片、文件等等)的时候记录日志。如果用户访问的页面需要通过认证,日志消息将会包含用户名。
这就是日志数据的一个例子:可以使用用户名来判断谁访问过一个资源。通过日志,IT管理人员可以了解系统的运行状况,安全状况,甚至是运营的状况。
二、日志能做什么?
在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。
在安全领域,日志可以反应出很多的安全攻击行为,比如登录错误,异常访问等。日志还能告诉你很多关于网络中所发生事件的信息,包括性能信息、故障检测和入侵检测。日志会成为在事故发生后查明“发生了什么”的一个很好的“取证”信息来源。日志可以为审计进行审计跟踪。
从“一条日志”说起,日志能给我们带来什么?
1、 用户数分析
这是一条很普通的nginx中记录的日志,日志的详细内容可查阅相关文档。这里简单说明一下主要的内容。从日志中可以得到访问者的IP,访问的时间,时区,请求的方式,请求页面,返回状态,来源等等信息。中小企业运维中容易被低估的日志仔细一看请求的页面/login就可以猜到只是一个登录请求页面。这条日志的重要含义是登录成功。
从这条日志怎么和我们关注的指标对应的,我们下面接着分析。
活跃用户数,活跃用户数一般是指同一天有多少老用户登录过系统。这个时候就会发现,刚才的登录日志中如果放到一天的统计中就可以知道,一天内有多少次成功等登录的次数了。
但细心的朋友可以发现,不准确,因为用户可以重复登陆,这就会造成重复,说的很对,那我们在细化一下,我们换个角度分析,一天内登录成功的不重复ip的数量。是不是更接近真实的结果呢,我感觉从量级和趋势上已经能说明问题了。
刷单用户这个没有标准的说法,我的理解是是同一个人为了某种目的大量注册了很多账号后,然后进行某种操作比如刷单等。这种行为很难100%杜绝,但从这条日志中可以得出一些有意思的发现。
如果同一个ip一天登录成功次数过多,比如一天登录了一百次,每次间隔的时间都差不多,说明这个人有刷单嫌疑,可以先找出来然后再进一步的分析。
新增用户数的含义是一天内有多少注册成功的用户,这个时候可以类比登录日志,只要把登录日志的url换成注册日志的url就可以发现一天新增的用户数是多少。
同理恶意注册用户数也是类似的,一天同一个ip下注册成功的次数非常多。此ip恶意注册的可能性就很大。当然还需要进一步的分析,比如ip是否是一个大楼里面的出口ip,注册后此用户做了什么来判断。
从上面的分析可以看出举一反三,可从日志中可以看出运营中的很多内容,比如浏览商品的排行,用户访问时间,用户来源等等。
2、 安全行为分析
下面我们还从这条日志中分析一下安全的行为:
这还是一条登录日志,唯一和上面登录日志不一样的地方是服务器返回值。一个是302,一个是200。有什么区别呢?302的意思是服务器进行过页面跳转,200还是正常返回页面,从中就可以理解,这是一条登录失败的记录。很好,有这条记录就可以发现很多的安全行为。
恶意密码猜测,可以理解为在一段时间内,用户大量的登录失败,返回了很多登录失败记录。通过从这条定义就可以到日志中发现规律,我们把时间放大到5分钟,当5分钟内,同一个ip有超过20次以上的登录失败行为,基本上可以断定在进行密码猜测。
同理cc攻击就更容易理解了,同一个ip在很短的时间内访问并产生了大量的请求,基本上可以认为是cc攻击。其他的webshell,sql注入等也可以从日志中分析出部分来,但不是太准确,因为日志中指记录get请求的参数,post参数正常是不记录的。
从上面的分析中可以得知,日志中还是有很多宝贵的东西在里面,只是我们没有发现而已。
三、如何分析日志?
1、收集日志
一般日志分析中,首先是收集日志,然后对日志进行格式化分析,然后再进行过滤或者归并,然后对日志进行告警分析,最后入库。
收集主要就是对各种协议的支持,例如syslog,sftp等。
格式化分析是重点,毕竟每种日志的格式不一样。
2、分析日志
日志分析中有关键字分析,统计分析和关联分析。
关键字分析就是针对日志中的关键字进行分析。
统计分析是根据一段时间根据某种规律进行分析。
关联分析是用于在海量审计信息中找出异构异源事件信息之间的关系分析。
关联分析方法(对于存在关联关系信息的上下文制定合理的审计策略,通过组合判断多个异构事件判断操作行为性质,发掘隐藏的相关性,发现可能存在的违规行为。)
日志本身是没有价值的,只有对日志进行分析加以利用的时候才会有价值。日志中包含非常多的有用的信息,不光包括运维层面,还包括业务层面,安全层面。很多时候运维除了需要日志监控,更需要一个统一的告警平台,但很多故障告警需要依据对日志进行自动化的分析得出结论,所以说日志是很重要的。
亿速云,业内资深的专业云计算服务提供商、云安全服务提供商,致力于为广大互联网企业用户和传统行业的企业用户提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器”等云主机租用服务以及企业上云的综合解决方案。亿速云的云主机租用服务,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
亿速云为用户提供的专业防御DDoS攻击的高防云服务器、高防裸金属服务器,具备“大规模、超大规模的DDoS攻击防御能力;可根据DDoS攻击流量大小的变化,灵活升降服务器的配置;以及全业务场景支持”等特点与优势,防御性能出色,防御效果显著,在业内众多DDoS防护产品中具有较强的竞争力。