Linux文件系统与日志分析
目录
- Linux文件系统与日志分析
- 日志是解决问题的唯一手段
- 1.inode表结构
- 1.1 元数据
- 1.2 inode内容
- 1.3 inode内容
- 1.4 目录文件的结构
- 1.5 inode的号码
- 1.6 恢复XFS类型的文件
- 2. 日志服务管理
- 2.1 系统日志介绍
- 2.2 rsyslog系统日志服务
- 2.3 rsyslog日志管理
- 2.3.1 系统日志术语
- 2.4 日志文件
- 2.5 日志管理工具 journalctl
- 3. 日志实际操作
- 1.inode表结构
- 日志是解决问题的唯一手段
Linux文件系统与日志分析
日志是解决问题的唯一手段
1.inode表结构
1.1 元数据
元数据(元信息)是存放在inode表中
- 文件数据包括元信息和实际数据
- 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
- block(块)
- 连续的八个扇区组成一个block
- 是文件存取的最小单位
- inode(索引节点)
- 索引节点也叫i节点
- 用于存储文件元信息
1.2 inode内容
一个文件必须占用一个inode,但至少占用一个block
查看某个文件的inode信息
stat [文件名]
如:stat aa.txt
每个文件都必须占用一个inode,inode表会占用文件系统磁盘空间的1%,有时inode已经用光,但硬盘还未存满,所以无法在硬盘上创建新文件。
1.3 inode内容
- Linux系统文件三个主要的时间属性
- ctime(change time)
- 最后一次改变文件或目录(属性)的时间
- atime(access time)
- 最后一次访问文件或目录的时间
- mtime(modify time)
- 最后一次修改文件或目录(内容)的时间
- ctime(change time)
1.4 目录文件的结构
-
目录也是一种文件
-
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
-
Linux系统内部不使用文件名,而使用inode号码来识别文件
-
文件名便于用户识别,文件名是inode号的别称
1.5 inode的号码
- 用户通过文件名打开文件时,系统内部的过程
- 系统找到这个文件名对应的inode号码
- 通过inode号码,获取inode信息
- 根据inode信息,找到文件数据所在的block,读出数据
- 查看inode号码的方法
- ls -i命令:查看文件名对应的inode号码
- ls -i 文件名
- stat命令:查看文件inode信息中的inode号码
- stat 文件名
- ls -i命令:查看文件名对应的inode号码
1.6 恢复XFS类型的文件
- xfsdump命令格式
- xfsdump -f 备份存放位置,要备份的路径或设备文件
- xfsdump备份级别(默认0)
- 0:完全备份
- 1-9:增量备份
- xfsdump常用选项:-f、-L、-M、-s
- xfsrestore命令格式
- xfsrestore -f 恢复文件的位置 存放恢复后文件的位置
- 模拟删除并执行恢复操作
xfsdump使用限制
- 只能备份已挂载的文件系统
- 必须使用root的权限才能操作
- 只能备份XFS文件系统
- 备份后的数据只能让xfsrestore解析
- 不能备份两个具有相同UUID的文件系统
2. 日志服务管理
2.1 系统日志介绍
日志记录的内容包括
- 历史事件:时间、地点、人物、事件
- 日志级别:事件的关键性程序,Loglevel
日志等级
等级名称 | 说明 |
---|---|
error(LOG_ERR) | 错误信息,一般达到err等级的信息已经可以影响到服务或系统的运行了 |
info(LOG_INFO) | 基本的通知信息 |
warning(LOG_WARNING) | 警告信息,但是还不会影响到服务或系统的运行 |
2.2 rsyslog系统日志服务
收集、管理、记录日志
性能强
rsyslog 特性
- 多线程
- UDP, TCP, SSL, TLS, RELP
- MySQL, PGSQL, Oracle实现日志存储
- 强大的过滤器,可实现过滤记录日志信息中任意部分
- 自定义输出格式 可以日志
- 适用于企业级
2.3 rsyslog日志管理
可以自定义日志文件的位置
该软件要支持rsyslog
日志管理策略
- 及时作好备份和归档
- 延长日志保存期限
- 控制日志访问权限
- 日志中可能会包含各类敏感信息,如账户、口令等
- 集中管理日志
- 将服务器的日志文件发到统一的日志文件服务器
- 便于日志信息的统一收集、整理和分析
- 杜绝日志信息的意外丢失、恶意篡改和删除
2.3.1 系统日志术语
- facility 设施,从功能或程序上对日志进行归类
- Priority 级别,从低到高排序
日志消息的级别
级号 | 消息 | 级别 | 说明 |
---|---|---|---|
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
2.4 日志文件
一个程序报错
systemctl status 程序名 #程序日志
-
日志的功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
-
日志文件的分类
-
内核及系统日志
- 由系统服务rsyslog统一进行管理,日志格式基本相似
-
用户日志
- 记录系统用户登录及退出系统的相关信息
-
程序日志
- 由各种应用程序独立管理的日志文件,记录格式不统一
-
-
日志保存位置
- 默认位于:/var/log目录下
2.5 日志管理工具 journalctl
[root@localhost ~]#journalctl -xe
[root@localhost ~]yum install epel-release.noarch -y
[root@localhost ~]yum install nginx -y
问题 找几点到几点之间的日志
#查看指定时间的日志
[root@localhost ~]#journalctl --since "2023-07-30" --until 2023-07-31 13:00"" -u nginx
3. 日志实际操作
#查看ssh服务的日志位置
#修改ssh配置文件,32下一行添加自己的自定义
75行添加自己的文件位置
[root@localhost ~]#systemctl restart rsyslog.service sshd
#重启服务