《日志管理与分析权威指南》一2.2 日志的概念

简介:

本节书摘来华章计算机《日志管理与分析权威指南》一书中的第2章 ,第2.2节,(美) Anton A. Chuvakin Kevin J. Schmidt Christopher Phillips 著 姚 军 简于涵 刘 晖 等译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 日志的概念

大多数操作系统都具备某种类型的日志记录功能,能够生成日志消息。然而,许多计算机用户(听起来令人惊讶,这其中包括系统管理员)并不知道日志的存在,更不要说去查看它们了。有三个主要原因驱使我们研究日志的来源范围。
首先,安全日志记录(Security logging)着眼于攻击、恶意软件感染、数据窃取及其他安全问题的检测和响应。聚焦于安全的日志记录的典型例子就是用户身份认证(登录)的记录,以及意在分析某人是否具有访问某个资源的合适授权的访问决策。
其次,运营日志记录用于为系统操作人员提供有用的信息,例如通知他们系统故障和潜在的可操作条件。运营日志也可能被用于服务配给甚至是财政决策(基于访问的定价,Web服务器访问日志是日志用于业务而不仅限于IT操作的常见例子)。这一类日志来源极为广泛,涵盖了大量的日志类型。
另外,依从性日志记录通常和安全日志记录有大量重叠,因为法规通常是为了改进系统和数据的安全而制定的。知道两类依从性日志记录的区别是极其重要的:影响IT的法规和强制要求(例如PCI DSS、HIPAA、ISO、ITIL等)以及通用准则等系统法规、其他系统设计和安全强制要求。
最后,应用程序调试日志记录(application debug logging)是特殊的一类日志记录,它服务于应用程序或系统开发人员而非系统操作人员。这种日志记录通常在生产系统中被禁用,但可以在必要时启用。许多调试日志中的消息可以供完全了解应用程序或者掌握应用程序源代码的开发人员进行分析。
上述四类日志记录由几乎所有日志源(事件生产者)产生,但是可以由不同的系统(事件消费者)以不同的方式分析或消费。
操作系统产生的日志自然属于以上所讨论的范围。例如,Windows XP、Vista以及Windows 7都有一个被叫做“事件日志”(Event Log)的日志记录系统。当系统中发生特定的事件,操作系统或某个应用程序会向事件日志系统中写入一些信息。举个例子,当某Windows程序崩溃后,往往有一个查看“更多细节”的选项,大部分用户很乐意忽略它们。那些信息正是最终进入事件日志的内容。
精明的“高级用户”由于经历过Windows NT 3.5那些“糟糕的日子”,已经知道在哪找到事件查看器(Event Viewer)(见图2.1)。

image


Unix系统的日志记录技术叫做syslog,它使人们回想起20世纪80年代早期Unix sendmail程序的那些日子。像Windows一样,操作系统本身以及某些应用程序向syslog中写入消息。如果系统管理员并未禁用日志记录或移除日志文件(“由于硬盘空间已满”),他可能会看到如下条消息:
image

这一条目包含日期、主机名以及生成此消息的服务名,还有消息自身的内容。这条特定的消息表示针对某个并不存在的域执行了一次DNS查询。
一些应用程序可以生成自己的日志,Web站点管理员可能对Web服务日志比较熟悉。
image

这组日志条目显示了来自不同来源(左边)的Web服务请求,包括请求的日期和时间、请求文档的位置以及表明文档交付状态的响应码(200,301以及其他)。具体地说,200表明这个文档成功显示(‘OK’代码),301表明目标被移动到了其他位置(通过google搜索“http response codes”可以找到这些代码的详细信息!)。
Web服务器日志通常会为了各种原因而被分析,包括利用率以及其他电子商务、市场类的分析。网站管理员常常挖掘Web服务器日志,研究用户概况,了解他们的行为、完成其他市场相关的任务。此外,Web服务器日志还能用来研究Web服务器性能和网站的可用性。
下面是一个Snort NIDS(网络入侵检测系统)“警报”日志消息的例子。
image

注意,在这个Snort的例子中,这些消息被称做警报,而其他NIDS/NIPS(网络入侵检测/防御系统)供应商称它为警告(alarms)或其他完全不同的名称。在所有情况下,它们实际上记录的都是一条用于向值班的操作人员或者安全分析人员告警的日志消息。
以上展示的所有日志记录系统都对安全日志分析很有用。Unix、Windows以及Web服务器日志可能包含有关该组织安全态势的重要线索。
上面列出的只是常见日志记录系统的几个例子,我们将在第9章和第15章介绍这些日志系统以及其他一些系统。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 的日志管理与分析
【5月更文挑战第11天】MongoDB日志管理与分析至关重要,包括系统日志和操作日志,用于监控、故障排查和性能优化。合理配置日志详细程度、存储位置和保留策略,使用日志分析工具提升效率,发现性能瓶颈和安全性问题。日志分析有助于优化查询、调整配置,确保数据安全,并可与其他监控系统集成。面对日志量增长的挑战,需采用新技术如分布式存储和数据压缩来保障存储和传输。随着技术发展,不断进化日志管理与分析能力,以支持MongoDB的稳定高效运行。
【MongoDB 专栏】MongoDB 的日志管理与分析
|
6天前
|
C++
JNI Log 日志输出
JNI Log 日志输出
14 1
|
6天前
|
存储 运维 大数据
聊聊日志硬扫描,阿里 Log Scan 的设计与实践
泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。
|
12天前
|
XML Java Maven
Springboot整合与使用log4j2日志框架【详解版】
该文介绍了如何在Spring Boot中切换默认的LogBack日志系统至Log4j2。首先,需要在Maven依赖中排除`spring-boot-starter-logging`并引入`spring-boot-starter-log4j2`。其次,创建`log4j2-spring.xml`配置文件放在`src/main/resources`下,配置包括控制台和文件的日志输出、日志格式和文件切分策略。此外,可通过在不同环境的`application.yml`中指定不同的log4j2配置文件。最后,文章提到通过示例代码解释了日志格式中的各种占位符含义。
|
13天前
|
运维 监控 Go
Golang深入浅出之-Go语言中的日志记录:log与logrus库
【4月更文挑战第27天】本文比较了Go语言中标准库`log`与第三方库`logrus`的日志功能。`log`简单但不支持日志级别配置和多样化格式,而`logrus`提供更丰富的功能,如日志级别控制、自定义格式和钩子。文章指出了使用`logrus`时可能遇到的问题,如全局logger滥用、日志级别设置不当和过度依赖字段,并给出了避免错误的建议,强调理解日志级别、合理利用结构化日志、模块化日志管理和定期审查日志配置的重要性。通过这些实践,开发者能提高应用监控和故障排查能力。
88 1
|
13天前
|
存储 监控 关系型数据库
PHP编写的电脑监控软件:用户登录日志记录与分析
使用PHP编写简单但功能强大的电脑监控软件,记录用户登录日志并进行分析。代码示例展示了如何获取并存储用户IP地址和登录时间到数据库,然后进行登录数据的分析,如计算登录频率和常见登录时间。此外,还介绍了如何通过定时任务自动将监控数据提交到网站,以便实时监控用户活动,提升系统安全性和稳定性。
39 0
|
14天前
|
弹性计算 运维 Shell
|
14天前
|
数据可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
|
19天前
|
机器学习/深度学习 前端开发 数据挖掘
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
223 11
|
20天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
90 0