> 文章列表 > 【Linux系统】Linux文件系统与日志分析

【Linux系统】Linux文件系统与日志分析

【Linux系统】Linux文件系统与日志分析

文件系统与日志分析

  • 一、inode与block
    • 1.1inode和block概述
    • 1.2inode包含文件的元信息
    • 1.3Linux系统文件的三个主要时间属性
    • 1.4用户通过文件名打开文件的过程
    • 1.5inode的大小
    • 1.6模拟磁盘ionde用完
  • 二、日志文件
    • 2.1日志的功能
    • 2.2日志文件的分类
      • 2.2.1内核及系统日志
      • 2.2.2用户日志
      • 2.2.3程序日志
    • 2.3日志消息的级别
      • 2.2.4日志级别及记录服务内容由/etc/rsyslog.conf决定
  • 三、通过rsyslog收集日志进行统一管理
    • 3.1日志收集
  • 四、查看用户登录工具、日志分析
    • 4.1last、lastb
    • 4.2日志分析
    • 4.3journalctl日志管理工具
    • 4.3日志管理策略

一、inode与block

1.1inode和block概述

  • 文件数据包括辕信息与实际数据
  • 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
    block(块)
  • 连续摆个扇区组成一个block(4k)
  • 是文件存取的最小单位
    inode(索引节点)
  • 用于存储文件元信息
  • 中文译名为“索引节点”,也叫i节点
  • 【Linux系统】Linux文件系统与日志分析
  • 查看inode的方式
  • ls -i 文件名
  • stat 文件名
    查看block的方式
  • block --getbsz 设备
  • stat -f 设备名

1.2inode包含文件的元信息

  • 文件字节数
  • 文件拥有者
  • 文件的Group id
  • 文件的读、写、执行权限
  • 文件的时间戳

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

ctime(change time)

  • 最后一次改变文件或目录(属性)的时间
    atime(access time)
  • 最后一次访问文件或(目录)的时间
    mtime(modify time)
  • 最后一次修改文件或目录(内容)的时间
  • 【Linux系统】Linux文件系统与日志分析

1.4用户通过文件名打开文件的过程

【Linux系统】Linux文件系统与日志分析

1.5inode的大小

  • inode也会消耗硬盘空间,每个inode一般是128字节或者是256字节
  • 格式化文件系统时确定 inode 的总数
  • 使用 df -i 命令可以查看每个硬盘分区的 inode 总数和已经使用的数量
    inode 的特殊作用
  • 当文件名包含特殊字符,可能无法正常删除文件,直接删除 inode ,也可以删除文件
  • 移动或者重命名文件时,只改变文件名,不影响 inode 号码
  • 打开一个文件后,系统通过 inode 号码来识别该文件,不再考虑文件名

1.6模拟磁盘ionde用完

【Linux系统】Linux文件系统与日志分析
【Linux系统】Linux文件系统与日志分析

二、日志文件

2.1日志的功能

  • 用于记录系统、程序允许中发送的各种事情
  • 通过阅读日志,有助于诊断何解决系统故障

2.2日志文件的分类

2.2.1内核及系统日志

  • 有系统服务rsyslog统一管理,日志格式级别相似
  • 配置文件在/etc/rsyslog.conf里面

2.2.2用户日志

  • 记录系统用户登录及退出系统的相关信息
  • 配置文件在/var/log目录下
    主要日志文件介绍
存放内容 存放位置
内核及公共消息日志 messages
计划任务日志 cron
系统引导日志 dmesg
邮件系统日志 maillog
用户登录日志 lastlog、secure、wtmp、btmp

/var/log/mesages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障 对于未使用独立日表文件的应用程序成服务,一般都可以从该日表文件中获得相关的事件记录信息

  • /var/log/cron: 记录crond计划任务产生的事件信息
  • /var/log/dmesg: 记现Linuxx系统在引号过程中的的各种事件信息
  • varog/maillog:记录进入或发出系统的电子邮件活动。
  • /var/og/lastlog: 记录每个用户最近的等录事件
  • /var/log/rpmpkgs; 记录系统中安装的备rpm包列表信息
  • /var/oa/secure: 记录用户认证相关的安全事件馆息
  • var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件
  • /var/run/btmp:记录失败的、错误的登录尝试及验证事件。

2.2.3程序日志

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

2.3日志消息的级别

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

日志格式【Linux系统】Linux文件系统与日志分析
【Linux系统】Linux文件系统与日志分析

2.2.4日志级别及记录服务内容由/etc/rsyslog.conf决定

  • 服务内容 --> 记录日志级别 – > 其它
服务名 记录内容
auth 用户认证时产生的日志
authpriv ssh、 ftp等登录俏息的验证信息
daemon 一些守护进程产生的日志
ftp FTP产妮独生的目志
lpr 打印相关活动
mark rsyslog服务内部的信息,时间标识
news 网络新闻传输协议(nntp)产生的消息
syslog 系统目志
uuep Unix-to-Unix Copy 两个unix之间的相关通信
console 针对系统控测台的消息。
cron 系统执行定时任务产生的日志。
kern 系统内核目志
loca10-1oca17 自定义程序使用
mail 邮件目志
user 用户进程

【Linux系统】Linux文件系统与日志分析

三、通过rsyslog收集日志进行统一管理

(1)准备两台服务器,一台用来发送日志,一台服务器用来存放日志
(2)关闭两台服务器的防火墙,selinux

setenforce 0 
systemctl stop firewalld
systemctl disable firewalld

(3)修改客户端(发送端)配置文件,并重新启动服务
取消以下四行注释

【Linux系统】Linux文件系统与日志分析

(4)定义发送格式,发送内容,发送地点,启动rsyslog服务

  • #%timestamp% :时间戳
  • #%fromhost-ip% :接收的信息来自于哪个节点的 IP
  • #%hostname% :主机名
  • #%syslogseverity-text% :日志等级
  • #%syslogtag% :服务进程
  • #%msg% :日志内容
  • #接收方 IP 前面一个 @ 表示 TCP 传输,两个 @ 表示 UDP 传输

【Linux系统】Linux文件系统与日志分析

(5)修改服务端(接收端)配置,重新启动服务

【Linux系统】Linux文件系统与日志分析
【Linux系统】Linux文件系统与日志分析

(6)创建日志目录,验证日志文件

【Linux系统】Linux文件系统与日志分析
【Linux系统】Linux文件系统与日志分析
【Linux系统】Linux文件系统与日志分析

3.1日志收集

集群规模小的(30台以下)

  • resyslog
  • shell/python (脚本)
    集群规模大的
  • ELK
  • 专门收集日志的平台,需要三台以上服务器搭建

四、查看用户登录工具、日志分析

  • users、who 、w

4.1last、lastb

  • last : 命令用于查询成功登录到系统的用户记录
  • lastb :用于查询登录失败的用户记录

4.2日志分析

  • access_log (记录客户访问事件)
  • error_log (记录错误事件)
    分析工具
  • 文本查看、grep过滤检索
  • awk、sed等文本过滤
  • Webalizer、Awstats等日志工具分析

4.3journalctl日志管理工具

选项 功能
-r 倒序查看日志
-k 查看内核日志
-b 0 默认是0查看本次启动的日志
-b 1 查看上一次启动的日志(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志)
-u 指定查看某个服务的日志
-f 跟踪查看
-n 20 只显示最后20行
journalctl_PID=1 根据服务的PID查看日志
journalctl_UID=0 查看指定用户的日志

4.3日志管理策略

  • 设置日志保存期限(通过find过滤日志时间,设置crontab任务定时删除)
  • 控制日志访问权限(设置usmak)