Linux文件系统与日志分析(2)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 1 inode和block1.1 inode和block概述文件数据包括元信息与实际数据。文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节。


3 日志文件介绍与分析


3.1 日志文件介绍

日志的功能:

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

日志文件的分类:

  • 内核及系统日志:
    这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置,决定将内核消息及各种系统程序消息记录到什么位置。日志格式基本相似。
  • 用户日志:
    记录用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
  • 程序日志:
    有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件信息。记录格式不统一。

日志保存位置:

  • 默认位于:/var/log 目录下

主要日志文件介绍:

日志 位置 描述
内核及公共消息日志 /var/log/messages 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,以及用户自定义安装软件的日志,也会在这里列出。
计划任务日志 /var/log/cron 记录与系统定时任务相关的曰志
系统引导日志 /var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息。
邮件系统日志 /var/log/maillog 记录邮件信息的曰志
用户登录日志: /var/log/lastlog 记录系统中所有用户最后一次的登录时间的曰志。这个文件是二进制文件.不能直接用 vi 查看,而要使用 lastlog 命令查看。
/var/log/secure 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录。比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件,不能直接用 vi 查看,而要使用 last 命令查看。
/var/tun/ulmp 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用 vi 查看,而要使用w、who、users等命令查看。


3.2 内核及系统日志

由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf。

  • 软件包:rsyslog-8.24.0-12.el7.x86_64 (可使用 ”rpm -q“ 命令查看)
  • 主要程序:/sbin/rsyslogd
  • 配置文件:/etc/rsyslog.conf (可使用 ”rpm -qc“ 命令查看)

日志消息的级别:

级号 消息 级别 说明
0 EMERG 紧急 会导致主机系统不可用的情况
1 ALERT 警告 必须马上采取措施解决的问题
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 提醒 可能会影响系统功能的事件
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等


日志记录的一般格式:

  • 事件产生的时间。
  • 产生事件的服务器的主机名。
  • 产生事件的服务名或程序名。
  • 事件的具体信息。

网络异常,图片无法展示
|


3.3 用户日志分析

保存了用户登录、退出系统等相关信息:

  • /var/log/lastlog:最近都用户登录事件。二进制文件,使用 lastlog 命令查看。
  • /var/log/secure:与用户验证有关的安全性事件。
  • /var/log/wtmp:用户登录、注销,及系统开、关机事件。二进制文件,使用 last 命令查看。
  • /var/run/utmp:当前登录的每个用户的详细信息。二进制文件,使用w、who、users等命令查看。

分析工具:

  • users、who、w、last、lastb

示例:

1)users:查询最近三次登录的用户信息。

users 命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。 如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。

[root@localhost ~]# users
 root root
复制代码


网络异常,图片无法展示
|


2)who:查看当前登录的用户、终端、登录时间、IP地址。

who命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可

以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用

户名、终端类型、登录日期及远程主机。

[root@localhost ~]# who
 root     pts/0        2022-03-11 21:17 (192.168.72.1)
 root     pts/1        2022-03-11 21:17 (192.168.72.1)
复制代码


网络异常,图片无法展示
|


3)w:查看当前登录的用户、终端、IP地址、登录时间、占用CPU的情况、进程等。

w 命令用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的 输出内容要丰富一些。

[root@localhost ~]# w
  23:24:39 up  2:16,  2 users,  load average: 0.25, 0.18, 0.16
 USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
 root     pts/0    192.168.72.1     21:17    7.00s  0.11s  0.00s w
 root     pts/1    192.168.72.1     21:17    2:06m  9.05s  9.03s top
复制代码


网络异常,图片无法展示
|


4)last: 读取 /var/log/wtmp 文件,显示登录系统的用户信息。

last 命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。通过 last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前 主机可能已被入侵。

[root@localhost ~]# last -n 3  //查看最近3次登录信息
 root     pts/3        192.168.72.1     Fri Mar 11 23:00 - 23:19  (00:19)    
 root     pts/2        192.168.72.1     Fri Mar 11 23:00 - 23:19  (00:19)    
 root     pts/3        192.168.72.1     Fri Mar 11 22:22 - 23:00  (00:37)    
 wtmp begins Tue Jan 18 17:39:14 2022
 [root@localhost ~]# last -t 20220305200000 |head -5   //查看2022年3月5日20点之前的登录信息
 root     pts/1        192.168.72.1     Sat Mar  5 18:32 - 19:47  (01:15)    
 root     pts/0        192.168.72.1     Sat Mar  5 18:32 - 19:47  (01:15)    
 root     pts/1        192.168.72.1     Sat Mar  5 17:07 - 18:23  (01:16)    
 root     pts/0        192.168.72.1     Sat Mar  5 17:07 - 18:23  (01:16)    
 root     pts/1        192.168.72.1     Sat Mar  5 16:55 - 17:05  (00:10)  
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


5)lastb:读取 /var/log/btmp 文件,显示登入系统失败的用户信息。

lastb 命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。除 了使用 lastb 命令查看以外,也可以直接从安全日志文件/var/log/secure 中获得相关信息。

[root@localhost ~]# lastb
 yuji     pts/0                         Mon Mar  7 04:02 - 04:02  (00:00)    
 zhangsan pts/0                         Mon Mar  7 03:43 - 03:43  (00:00)    
 yuji     pts/0                         Mon Mar  7 03:40 - 03:40  (00:00)    
 root     pts/0                         Sat Mar  5 12:15 - 12:15  (00:00)    
 btmp begins Sat Mar  5 12:15:57 2022
复制代码


网络异常,图片无法展示
|


3.4 程序日志分析

由相应的应用程序独立进行管理:

  • Web服务:/var/log/httpd/
  • access_log、error_log
  • 代理服务:/var/log/squid
  • access.log、cache.log
  • FTP服务:/var/log/xferlog

分析工具:

  • 文本查看、grep过滤检索、Webmin管理套件中查看
  • awk、sed等文本过滤、格式化编辑工具
  • Webalizer、Awstats等专用日志分析工具


3.5 日志管理策略

  1. 及时做好备份和归档
  2. 延长日志保存期限
  3. 控制日志访问权限
  • 日志中可能会包含各类敏感信息,如账户、口令等。
  1. 集中管理日志
  • 将服务器的日志文件发到统一的日志文件服务器
  • 便于日志信息的统一收集、整理和分析
  • 杜绝日志信息的意外丢失、恶意篡改或删除


4 内核及系统日志管理


4.1 系统日志相关服务

4.1.1 sysklogd 系统日志服务介绍

CentOS 5 之前版本采用的日志管理系统服务

  • syslogd: system application 记录应用日志
  • klogd: linux kernel 记录内核日志

事件记录格式:

  • 日期时间 主机 进程[pid]: 事件内容

C/S架构:

  • 通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理


4.1.2 rsyslog 系统日志服务

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的”。


官网:

www.rsyslog.com/

rsyslog 特性:

  • 多线程
  • UDP, TCP, SSL, TLS, RELP
  • MySQL, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式
  • 适用于企业级中继

网络异常,图片无法展示
|


查看 rsyslog 工具的详细信息:

[root@localhost ~]#rpm -qi rsyslog 
 Name        : rsyslog
 Version     : 8.24.0
 Release     : 12.el7
 Architecture: x86_64
 Install Date: 2021年08月06日 星期五 20时59分53秒
 Group       : System Environment/Daemons
 Size        : 2001814
 License     : (GPLv3+ and ASL 2.0)
 Signature   : RSA/SHA256, 2017年08月11日 星期五 03时43分05秒, Key ID 24c6a8a7f4a80eb5
 Source RPM  : rsyslog-8.24.0-12.el7.src.rpm
 Build Date  : 2017年08月07日 星期一 08时56分12秒
 Build Host  : c1bm.rdu2.centos.org
 Relocations : (not relocatable)
 Packager    : CentOS BuildSystem <http://bugs.centos.org>
 Vendor      : CentOS
 URL         : http://www.rsyslog.com/
 Summary     : Enhanced system logging and kernel message trapping daemon
 Description :
 Rsyslog is an enhanced, multi-threaded syslog daemon. It supports MySQL,
 syslog/TCP, RFC 3195, permitted sender lists, filtering on any message part,
 and fine grain output format control. It is compatible with stock sysklogd
 and can be used as a drop-in replacement. Rsyslog is simple to set up, with
 advanced features suitable for enterprise-class, encryption-protected syslog
 relay chains.
复制代码
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
22天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
85 8
|
1月前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
35 7
|
1月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
54 7
|
2月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
64 3
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
70 0
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
49 0
|
3月前
|
存储 缓存 Linux
Linux文件系统的功能规划
【9月更文挑战第12天】本文通过类比图书馆,形象地解释了文件系统的组织形式和管理方法。首先,文件系统需按块存储文件,并设有索引区方便查找。其次,热点文件应有缓存层提高效率,文件需分类存储以便管理。最后,Linux内核需记录文件使用情况,通过文件描述符区分不同文件,确保文件操作准确无误。
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
348 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板

热门文章

最新文章