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

简介: 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日志并进行多维度分析。
相关文章
|
21天前
|
Linux 应用服务中间件 PHP
性能工具之linux常见日志统计分析命令
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处。在命令行中,它还能够接受,和执行外部的 AWK 程序文件,可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的。
58 1
|
5天前
|
存储 缓存 Linux
【Linux】文件系统
在打开文件之前,我们需要找到文件 -> 就要从磁盘中找到对应文件 -> 通过文件路径与文件名
19 4
|
14天前
|
存储 缓存 数据管理
深入理解 Linux 文件系统的层次结构
【4月更文挑战第30天】 本文旨在探讨和解析 Linux 操作系统中文件系统的结构与原理。不同于通常的摘要,我们将直接深入到文件系统的核心概念,包括其目录结构、关键组件以及它们如何相互作用以支持 Linux 操作系统的功能。通过剖析文件系统的层次性设计,我们能够更好地理解其在数据管理、用户权限控制和系统安全性方面的重要性。
|
1天前
|
存储 Linux
Linux为新创建的磁盘分区添加文件系统
Linux为新创建的磁盘分区添加文件系统
|
2天前
|
Linux Windows 存储
|
4天前
|
存储 算法 Linux
【Linux】详解文件系统以及周边知识
【Linux】详解文件系统以及周边知识
|
6天前
|
存储 Linux 编译器
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
13 0
|
7天前
|
存储 Linux Shell
Linux文件系统
Linux文件系统
17 2
|
8天前
|
存储 监控 安全
Linux ContOS7 日志管理(rsyslog)
Linux ContOS7 日志管理(rsyslog)
|
9天前
|
安全 Linux 数据安全/隐私保护
深入理解 Linux 文件系统的权限控制
【5月更文挑战第5天】本文旨在详细解析 Linux 操作系统中文件系统权限的核心机制。通过分析用户、组和其他人在文件及目录上拥有的读、写、执行权限,我们探讨了如何实现对系统资源的精确控制。文章还将介绍如何使用命令行工具来修改和管理这些权限,以及权限如何在安全策略和系统管理中扮演关键角色。