Linux的文件系统和分析日志

一、文件系统

1.1、inode和block概述

  • 元信息:每个文件的属性信息,比如:文件的大小,时间,类型,权限等,也称为文件的元数据(meta data)
  • 元数据是存放在inode(index node)表中。inode 表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息。
  • 文件数据包括元信息与实际数据。
  • 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节。

       block(块)

  • 连续的八个扇区组成一个block,4k
  •  是文件存取的最小单位

      inode(索引节点)

  • 中文译名为“索引节点”,也叫 i 节点
  • 用于存储文件元信息
  • 一个文件必须占用一个inode ,至少占用一个block

 

1.2、inode表结构

包含文件的元信息

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

查看inode

  • ls -i 命令:查看文件名对应的inode号码
  • stat 命令:查看文件的inode信息

1.3、用户访问文件的过程

当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

二、日志管理

2.1、日志的功能

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

2.2、日志文件的分类

  • 内核及系统日志:由系统服务rsyslog统一进行管理,日志格式基本相似,其主配置文件 /etc/rsyslog.conf
  • 用户日志:记录系统用户登录及退出系统的相关信息
  • 程序日志:由各种应用程序独立管理的日志文件,记录格式不统一

2.3、日志服务

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

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。

rsyslog 特性

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

2.4、ELK

ELK:由Elasticsearch, Logstash, Kibana三个软件组成非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene

Elasticsearch是个开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能
Logstash对日志进行收集、分析,过滤,并将其存储供以后使用
Kibana 可以提供的日志分析友好的 Web 界面

2.5、常见的一些日志文件

日志文件位置 日志文件说明
/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等命令查看

 

2.6、用户日志分析常用命令

  • users、who、w、last、lastb

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

who命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用户名、终端类型、登录日期及远程主机。

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

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

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

 

posted @ 2022-10-20 16:29  赵哈哈#  阅读(61)  评论(0编辑  收藏  举报