Linux文件系统与日志分析
一、文件系统
每个文件都有自己的文件属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据;元数据是存放在inode表中。inode 表中有很多条记录组成,每一条记录对应的存放了一个文件的元数据信息。
-
inode number 节点号
-
文件类型
-
权限
-
UID
-
GID
-
链接数(指向这个文件名路径名称个数)
-
该文件的大小和不同的时间戳
-
指向磁盘上文件的数据块指针
-
有关文件的其他数据
当文件有过变动,文件信息中的最近时间会有变动,有三个时间;
最近访问atime:查看文件的时间
最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
最近改动ctime:最近更改文件元信息的时间,比如改变权限等
二、日志系统
日志主要是用来记录程序在运行时发生的各种事件和一些报错信息,将系统和应用发生的事件记录至日志中,以助于排错和分析使用。
日志的分类:
系统日志: 由系统服务rsyslog统一进行管理,日志格式基本相似,其主配置文件/etc/rsyslog.conf
用户日志:记录系统用户登录及退出系统的相关信息
程序日志:由各种应用程序独立管理的日志文件,记录格式不统一
日志默认保存在:/var/log
当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的。
下载官网:http://www.rsyslog.com/
rsyslog 特性
-
多线程
-
支持多种协议:UDP, TCP, SSL, TLS, RELP
-
支持多种数据库:MySQL, PGSQL, Oracle实现日志存储
-
强大的过滤器,可实现过滤记录日志信息中任意部分
-
自定义输出格式
-
适用于企业级
2.2日志文件
2.1普通文件日志
-
-
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
-
/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
-
/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
-
/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况
-
/var/log/boot.log 系统服务启动的相关信息,文本格式
-
/var/log/messages :系统中大部分的信息
-
当一个程序无法启动时:
systemctl start 程序名 (可以查看程序的报错信息,知道为什么起不来)
这样看由于屏幕的限制有时候会无法屏显示,可以
systemctl start 程序名 > a
把报错结果导给文件a 然后
cat a 这样就能全部看到了
2.3特殊软件日志
一般大型软件都有属于自己的日志文件,但是小型的软件是没有自己的日志文件的,会保存在/var/log/messages中,时间比较久或者软件太多的话会分不清那个日志是属于哪个的,看清起来很麻烦,所有一些小心软件可以自己指定日志存储位置。
这个软件就可以分割日志,把日志独立出来,前提条件是这个软件要支持
rsyslog分成三部分:
-
-
GLOBAL DIRECTIVES:全局配置(兜底的配置,所有的软件适用)
-
全局配置和软件的单独配置冲突是,单独配置先生效,优先级更高
当有自定义日志设置的时候在local 7* 下面进行设置,可以设置为local 0-6;local 7被占用了无法设置,当有软件需要自己设置日志目录时在这里添加
2.4实际展示,
在rsyslog中修改个性化的日志配置
在ssh中配置他的日志保存为local6
这样ssh的日志目录就被修改好了,我们可以看一下
然后用另外一台电脑ssh一下这条电脑的ip,远程登陆一下
这台电脑里面的sshlog就有显示了,把SSH的日志独立出来了
这样是本地的日志保存,假如把日志保存到别的计算机上面时,只要把日志到给另外一台机器,让他做日志服务。
首先要开启远程日志功能
用命令 vim /etc/rsyslog.conf 两台机器之间都要开启这个功能
在发送的计算机中
然后wq保存退出之后,计算机就会一直监听了
在接收的计算机中
这样就配置好了,接受的电脑中就可以接受日志文件了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了