中小企业运维需要重视日志分析

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
云防火墙,500元 1000GB
简介:

前言

如果把运维看做是医生给病人看病,日志则是病人对自己的陈述,很多时候医生需要通过对病人的描述得出病人状况,是否严重,需要什么计量的药,该用什么类型的药。

所以古人有句话叫做对症下药,这个“症”就是病人的描述加医生的判断,对于重一点的病再加上很多的化验。在医生看病时,病人描述的病情和化验单上的数据对医生的判断是非常重要的。

同理,日志在运维中的作用也是非常类似的,但很不幸,日志在很多中小企业运维中被严重低估,直到磁盘空间不足的时候才想到,磁盘里有个大的日志文件要把他删了,这样可以节省空间。

运维的内容

从上面图可以看出,运维中关注的点还是非常多的,任何一个点都有可能引起运维中的问题。所以大多数运维人员的工作状态都是消防员救火的角色,哪里有问题哪里去,时常被问题牵着走。

下面,我们来看一下常用的监控系统,界面做的很漂亮,功能也很多,但是有个疑问就是你会天天盯着这个界面看吗?

我感觉绝大多数人不会,很多人关注的是异常点,就是当系统有问题的时候,你告诉我哪里有问题,然后,我在根据问题去分析,去处理,当然做处理的时候,这个系统就会用上了。

那上面这些内容和日志有什么关系呢?

日志本身是没有价值的,只有对日志进行分析加以利用的时候才会有价值。日志中包含非常多的有用信息,不光包括运维层面,还包括业务层面,安全层面。很多时候,运维除了需要日志监控,更需要一个统一的告警平台,但很多故障告警需要依据对日志进行自动化的分析得出结论,所以说日志是很重要的。

什么是日志

简单地说,日志就是计算机系统、设备、软件等在某种情况下记录的信息。具体的内容取决于日志的来源。例如,Unix操作系统会记录用户登录和注销的消息,防火墙将记录ACL通过和拒绝的消息,磁盘存储系统在故障发生或者在某些系统认为将会发生故障的情况下,生成日志信息。

日志中有大量信息,这些信息告诉你为什么需要生成日志,系统已经发生了什么。例如,Web服务器一般会在有人访问Web页面请求资源(图片、文件等等)的时候记录日志。如果用户访问的页面需要通过认证,日志消息将会包含用户名。

这就是日志数据的一个例子:可以使用用户名来判断谁访问过一个资源。通过日志,IT管理人员可以了解系统的运行状况,安全状况,甚至是运营的状况。

日志能做什么

在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。

在安全领域,日志可以反映出很多的安全攻击行为,比如登录错误,异常访问等。日志还能告诉你很多关于网络中所发生事件的信息,包括性能信息、故障检测和入侵检测。日志会成为在事故发生后,查明“发生了什么”的一个很好的“取证”信息来源。日志可以为审计进行审计跟踪。

从“一条日志”说起,日志能给我们带来什么?

1.用户数分析


  
  
  1. 111.88.155.166 - - [17/Dec/2015:13:06:05 +0800] "POST /login HTTP/1.1" 200 0 "http://secilog.abc.com/login?langType=zh" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" 

这是一条很普通的nginx中记录的日志,日志的详细内容可查阅相关文档。这里简单说明一下主要的内容。从日志中可以得到访问者的IP,访问的时间,时区,请求的方式,请求页面,返回状态,来源等等信息。仔细一看请求的页面/login就可以猜到只是一个登录请求页面。这条日志的重要含义是登录成功。

这条日志是怎么和我们关注的指标对应的,我们下面接着分析。

活跃用户数,一般是指同一天有多少老用户登录过系统。这个时候就会发现,刚才的登录日志中如果放到一天的统计中就可以知道,一天内有多少次成功登录的次数了。

但细心的朋友可以发现,不准确,因为用户可以重复登陆,这就会造成重复,说的很对,那我们在细化一下,我们换个角度分析,一天内登录成功的不重复IP的数量。是不是更接近真实的结果呢,我感觉从量级和趋势上已经能说明问题了。

刷单用户这个没有标准的说法,我的理解是同一个人为了某种目的大量注册了很多账号后,然后进行某种操作比如刷单等。这种行为很难100%杜绝,但从这条日志中可以得出一些有意思的发现。

如果同一个IP一天登录成功次数过多,比如一天登录了一百次,每次间隔的时间都差不多,说明这个人有刷单嫌疑,可以先找出来,然后再进一步的分析。

新增用户数的含义是一天内,有多少注册成功的用户,这个时候可以类比登录日志,只要把登录日志的url换成注册日志的url就可以发现一天新增的用户数是多少。

同理,恶意注册用户数也是类似的,一天同一个IP下注册成功的次数非常多。此IP恶意注册的可能性就很大。当然,还需要进一步的分析,比如IP是否是一个大楼里面的出口IP,注册后此用户做了什么来判断。

从上面的分析可以看出举一反三,可从日志中可以看出运营中的很多内容,比如浏览商品的排行,用户访问时间,用户来源等等。

2.安全行为分析

下面,我们还从这条日志中分析一下安全的行为:


  
  
  1. 111.88.155.166 - - [17/Dec/2015:13:06:05 +0800] "POST /login HTTP/1.1" 302 0 "http://secilog.abc.com/login?langType=zh" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" 

这还是一条登录日志,唯一和上面登录日志不一样的地方是服务器返回值。一个是302,一个是200。有什么区别呢?302的意思是服务器进行过页面跳转,200还是正常返回页面,从中就可以理解,这是一条登录失败的记录。很好,有这条记录就可以发现很多的安全行为。

恶意密码猜测,可以理解为在一段时间内,用户大量的登录失败,返回了很多登录失败记录。从这条定义就可以到日志中发现规律,我们把时间放大到5分钟,当5分钟内,同一个IP有超过20次以上的登录失败行为,基本上可以断定在进行密码猜测。

当然,密码猜测有自动的也有手动的,如果区分呢。我们看一下这个内容"http://secilog.abc.com/login?langType=zh",这个含义是post提交的来源是"http://secilog.abc.com/login?langType=zh"这个网页,也就是从这个网页发起的。如果这个地址不对,极有可能是用工具来进行暴力破解。

同理cc攻击就更容易理解了,同一个IP在很短的时间内访问并产生了大量的请求,基本上可以认为是cc攻击。其他的webshell,sql注入等也可以从日志中分析出部分来,但不是太准确,因为日志中指记录get请求的参数,post参数正常是不记录的。

从上面的分析中可以得知,日志中还是有很多宝贵的东西在里面,只是我们没有发现。

如何分析日志

收集日志

一般日志分析中主要包括以下几个层面,首先是收集日志,然后对日志进行格式化分析,然后进行过滤或者归并,然后对日志进行告警分析,然后入库。

收集主要就是对各种协议的支持,例如syslog,sftp等。

格式化分析是重点,毕竟每种日志的格式不一样。举个例子:下图是一个pix防火墙和ids的日志,通过对原始日志杂乱无序的内容分析出有意义的维度。通过这些维度后,我们得出很多有价值的信息,比如操作系统,协议等等。

分析日志

日志分析中有关键字分析,统计分析和关联分析。

◆ 关键字分析就是针对日志中的关键字进行分析。

◆ 统计分析是根据一段时间根据某种规律进行分析。

◆ 关联分析是用于在海量审计信息中找出异构异源事件信息之间的关系分析。

关联分析方法(对于存在关联关系信息的上下文制定合理的审计策略,通过组合判断多个异构事件判断操作行为性质,发掘隐藏的相关性,发现可能存在的违规行为。)

日志分析工具推荐

这些东西本身很复杂,如果都要从头做工作量很大。当然,市场上也有很多比较好的产品支持此功能。比如HP ArcSight,IBM Security QRadar SIEM 等等。

但是这些产品都是非常昂贵的产品,有没有可以免费使用的产品呢?

有,比如国外的elk,ossim。这几个产品都各有优缺点,看大家自己选择了。elk是一个半成品,自己要使用需要做大量的工作;ossim,相对是成品,但是汉化还是不是太好,这两个国外产品对国内使用者的习惯还不是太好。

另外,国产日志监控工具还有Secilog,Secilog它相对平衡一点。Secilog的特点是支持syslog、snmp、jdbc、ftp/sftp等协议收集或者采集日志。对日志进行分析,格式化处理,产生告警,同时对原始日志和格式化后的日志进行全文搜索索引的存储,支持采集横向扩展集群,支持海量日志的分析和查询。

可以分析用于Linux日志、Windows日志、防火墙日志ids日志、业务日志等日志,支持所有文本类型的日志存储和查询。

除此以外,它还内置16种告警:密码猜测攻击,非上班时间登录,非上班地点登录,账号猜测攻击,密码猜测攻击成功,敏感文件操作,高危命令操作,主机扫描,端口扫描,非法外联,sql注入,Xss攻击,非法访问,敏感文件访问,WebShell攻击,CC攻击。

通过告警规则的设定,很容易的增加其他告警。同时,系统通过告警规则配置可以支持业务告警,接口请求异常,恶意刷单,大单告警等。

很高兴你能看完,希望对你有用。





作者:朱林
来源:51CTO
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
100 2
|
1月前
|
存储 运维 监控
API明细日志及运维统计日志全面提升API可运维性
在数字化转型的大潮中,数据已成为企业最宝贵的资产之一。而数据服务API可快速为数据应用提供数据接口。面对越来越多的API以及越来越多的应用调用,如何快速查看API的服务情况、异常情况及影响范围,以及查看API的调用详情,进行API的性能优化、错误排查变得越来越重要,本文将介绍如何配置和开通API运维统计及明细日志,以及如何查看日志进行介绍。
|
4月前
|
运维 监控 Devops
DevOps文化下的企业运维转型
【8月更文挑战第22天】在数字化转型的浪潮中,DevOps不仅仅是一种技术实践,更是一种企业文化。本文将探讨如何在DevOps文化的引导下,实现企业运维的高效转型,包括理念更新、流程优化和团队协作等方面。我们将一起思考如何打破传统壁垒,构建一个更加灵活、高效和协同的运维体系,以应对不断变化的市场和技术挑战。
65 1
|
27天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维在企业IT管理中的应用与实践####
本文深入探讨了智能化运维(AIOps)的核心技术原理,通过对比传统运维模式,揭示了AIOps如何利用大数据、机器学习等先进技术提升故障预测准确性、优化资源分配及自动化处理流程。同时,文章详细阐述了智能化运维平台的实施步骤,包括数据收集与分析、模型训练与部署、以及持续监控与优化,旨在为企业IT部门提供一套切实可行的智能化转型路径。最后,通过几个典型应用案例,如某大型电商平台的智能告警系统和金融企业的自动化故障排查流程,直观展示了智能化运维在实际业务场景中的显著成效,强调了其在提升运维效率、降低运营成本方面的关键作用。 ####
48 4
|
2月前
|
运维 Prometheus 监控
运维中的自动化实践每月一次的系统维护曾经是许多企业的噩梦。不仅因为停机时间长,更因为手动操作容易出错。然而,随着自动化工具的引入,这一切正在悄然改变。本文将探讨自动化在IT运维中的重要性及其具体应用。
在当今信息技术飞速发展的时代,企业对系统的稳定性和效率要求越来越高。传统的手动运维方式已经无法满足现代企业的需求。自动化技术的引入不仅提高了运维效率,还显著降低了出错风险。本文通过几个实际案例,展示了自动化在IT运维中的具体应用,包括自动化部署、监控告警和故障排除等方面,旨在为读者提供一些实用的参考。
|
2月前
|
运维 监控 数据可视化
出海运维日志通到底重要不重要?
出海运维日志通到底重要不重要?
|
3月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
235 3
|
3月前
|
运维 监控 安全
高效运维管理:提升企业IT系统稳定性与性能
在当今信息化时代,高效的运维管理对于企业IT系统的稳定性和性能至关重要。本文将探讨如何通过优化运维流程、引入自动化工具和建立完善的监控体系等措施,实现高效运维管理,从而提升企业的核心竞争力。
|
4月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之运维中心中的运行日志可以保留多久
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
运维 监控 数据可视化
自动化运维:使用Python脚本进行日志分析
【8月更文挑战第31天】当系统出现问题时,我们通常会查看日志寻找线索。然而,手动阅读大量日志既费时又易出错。本文将介绍如何使用Python脚本自动分析日志,快速定位问题,提高运维效率。我们将从简单的日志读取开始,逐步深入到复杂的正则表达式匹配和错误统计,最后实现一个自动化的日志监控系统。无论你是新手还是老手,这篇文章都将为你提供有价值的参考。让我们一起探索如何用代码解放双手,让运维工作变得更加轻松吧!