Linux文件系统与日志分析

发布时间:2024年01月08日

目录

一、Linux文件系统

1、inode与block

2、查看inode号码的命令

3、inode包含文件的元信息

4、Linux系统文件的三个主要时间属性

5、用户通过文件名打开文件时系统内部过程

6、inode的大小

7、inode的特点

二、日志

1、日志的功能

2、日志文件的分类

3、系统日志介绍

3、ELK

4、rsyslog管理

5、rsyslog配置文件

6、用户登录日志

7、last和lastb:查询用户登录的历史记录

8、journalctl日志管理工具

9、查询当前登录的用户情况

10、日志的管理策略

三、实操:将ssh服务日志单独存放

1、进入rsyslog配置文件,添加自己的文件位置

2、进入ssh配置文件,将ssh配置成使用local6

3、重启服务

4、验证,并查看本机日志记录(tail -f /var/log/secure)

四、实操:通过网络将本地的日志远程备份到另外一台机器

1、两台机器都关闭防火墙工具与selinux

2、打开配置文件,进行修改配置

3、重启服务

4、查看514端口是否启动

5、测试使用logger写入一条测试日志

6、接收方开启TCP和端口514

7、重启日志服务

8、查看接收方是否能收到日志记录


一、Linux文件系统

1、inode与block

文件数据包括元信息与实际信息,文件存储在硬盘上,硬盘最小的存储单位是扇区,每个扇区存储512个字节。

①block:块。连续的八个扇区组成一个block,大小为4k。(是文件存储的最小的单位)

②inode:索引节点,用于存储元信息,在同一个硬件设备上是唯一的,是可以被用完的,用完后无法创建任何文件。

③block和inode的关系:一个文件必须占用一个inode号,但是至少占用一个block。

2、查看inode号码的命令

1.	查看文件名对应的inode号码
	ls -i 文件名
2. 	查看文件inode信息中的inode号码
	stat 文件名

3、inode包含文件的元信息

  • 文件的字节数(字节占用多少空间,也称文件大小)
  • 文件拥有者的 User ID
  • 文件的 Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳(ctime、atime、mtime)
  • 文件类型
  • 链接数
  • 有关文件的其他数据
  • 不包含文件名,文件名在目录结构中

4、Linux系统文件的三个主要时间属性

①ctime:最后一次改变问价或目录的时间

②atime:最后依次访问文件或目录的时间

③mtime:最后一次修改文件或目录(内容)

5、用户通过文件名打开文件时系统内部过程

①系统找到与这个文件名对应的inode号码

②通过inode号码,获取inode信息

③根据inode信息,找到文件数据所在的block,读出数据

例题:磁盘有剩余,但无法继续建立文件?

inode用完了,lvm扩容,普通分区删除无用文件。

6、inode的大小

①inode号也会消耗硬盘空间,每个inode的大小一般是128字节或256字节

②inode在同一个文件系统里唯一,在不同的文件系统中可以重复

查看每个硬盘分区的inode总数和已经使用的数量,可以用命令df -i

7、inode的特点

①删除inode的方法:

删除inode号的方法:
 
方法一: find 文件位置 -inum inode号码 -exec rm -rf {} \;
 
方法二: find 文件位置 -inum inode号码 -delete

二、日志

日志默认保存在/var/log目录下

1、日志的功能

①用于记录系统,程序运行中发生的各种事件

②通过阅读日志,有助于诊断和解决系统故障

2、日志文件的分类

①由系统服务rsyslog统一进行管理,日志格式基本相似

②主配置文件/etc/rsyslog.conf

③记录系统用户登录及退出系统的相关信息

④由各种应用程序独立管理的日志文件,记录格式不统一

3、系统日志介绍

①sysklogd系统日志服务

②rsyslog系统日志服务

rpm -qi rsyslog
#查看rsyslog的详细信息
rpm -ql rsyslog
#查看rsyslog的文件列表

3、ELK

由Elasticsearch, Logstash, Kibana三个软件组成

4、rsyslog管理

4.1日志消息的级别

Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要):

级别?? ?消息? ? ? ? ? ?级别?? ?具体描述
0?? ?EMERG? ? ? ? ? 紧急?? ?会导致主机系统不可用的情况
1?? ?ALERT? ? ? ? ? ? 警告?? ?必须马上采取措施解决的问题
2?? ?CRIT? ? ? ? ? ? ? ?严重?? ?比较严重的情况
3?? ?ERR? ? ? ? ? ? ? ?错误? ? ?运行出现错误
4?? ?WARNING? ? ?提醒? ? ?可能影响系统功能,需要提醒用户的重要事件
5?? ?NOTICE? ? ? ? ?注意? ? ?不会影响正常功能,但是需要注意的事件
6?? ?INFO? ? ? ? ? ? ? 信息? ? ?一般信息
7?? ?DEBUG? ? ? ? ? 调试? ? ?程序或系统调试信息等
是yum或rpm安装配置文件一般放在etc下

在改配置文件一定要先备份,查看软件的配置文件位置,用rpm -qc软件名,去查看,一般以.conf

结尾的是配置文件。

5、rsyslog配置文件

配置文件格式:/etc/rsyslog.conf

①modules:相关模块配置

②global diretives:全局配置

③rules:日志记录相关的规则配置

6、用户登录日志

/var/log/secure: 记录用户认证相关的安全事件信息。
/var/log/lastlog: 记录每个用户最近的登录事件。二进制格式
/var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/ run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式


7、last和lastb:查询用户登录的历史记录

①last命令用于查询成功登录到系统的用户记录

②lastb命令用于查询登陆失败的用户记录

用户名登录错误,密码输入错误都会被记录在里面,登录失败也属于安全时间,表示可能有人在尝试破解密码。除了使用lastb命令以外,还可以直接从安全日志/var/log/secure中获取相关信息。

8、journalctl日志管理工具

日志的配置文件:/etc/systemd/journald.conf

9、查询当前登录的用户情况

①users

②who

③w

10、日志的管理策略

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

三、实操:将ssh服务日志单独存放

ssh远程连接协议:(1)压缩功能,传输快 (2)密文传输

1、进入rsyslog配置文件,添加自己的文件位置

vim /etc/rsyslog.conf

2、进入ssh配置文件,将ssh配置成使用local6

3、重启服务

4、验证,并查看本机日志记录(tail -f /var/log/secure)

四、实操:通过网络将本地的日志远程备份到另外一台机器

就算本机系统崩溃,我们可以查看另一台机器备份的日志,来排查故障

1、两台机器都关闭防火墙工具与selinux

2、打开配置文件,进行修改配置

3、重启服务

4、查看514端口是否启动

5、测试使用logger写入一条测试日志

6、接收方开启TCP和端口514

7、重启日志服务

systemctl restart rsyslog.service

8、查看接收方是否能收到日志记录

文章来源:https://blog.csdn.net/rmh0713/article/details/135455450
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。