记录的保存文件名

  1. /var/log/boot.log 电脑启动会叫日志信息会保存到这个文件里面,不会保存启动后的文件
  2. /var/log/messages 系统报错都会保存到这个文件里面
  3. /var/log/lastlog所有最近登录的信息
  4. /var/log/cron记录crontab
  5. /var/log/dmesg内核检查信息
  6. /var/log/maillo``或 /var/log/mail/`记录SMTP信息
  7. /var/log/secure 只要牵涉到“ 需要输入帐号密码”的软件
  8. /var/log/wtmp/var/log/faillog记录登录成功和失败的账号信息

记录日志文件的程序

程序名 作用
rsyslog.service 主要登录系统与网络等服务的讯息
logrotate 主要在进行登录文件的轮替功能
systemd-journald.service 最主要的讯息收受者,由 systemd 提供的

rsyslog程序

这个程序是统一管理,记录日志

服务有没有开启

命令

1
ps aux | grep rsyslog 

image-20210308142456616

rsyslog程序修改配置文件

rsyslog.service的配置文件在/etc/rsyslog.conf

我们可以通过配置文件修改日志文件的保存的地方

看一下文件内容

image-20210308143139847

他的格式分三部分

  1. 服务器名称
  2. 信息等级

服务器名称

man rsyslogd 这样可以了解他的配置的相关内容

下面的内容都是linux内核syslog函数自行定制的服务名称

相对序号 服务类别 说明
0 kern(kernel) 核心 (kernel) 产生的讯息,大部分都是硬件侦测以及核心功能的启用;
1 user 在用户层级所产生的信息,例如用户使用 logger 指令来记录登录文件的功能;
2 mail 只要与邮件收发有关的讯息记录都属于这个;
3 daemon 主要是系统的服务所产生的信息,例如 systemd 就是这个有关的讯息;
4 auth 主要与认证/授权有关的机制,例如 login, ssh, su 等需要账号/密码的操作;
5 syslog 由 syslog 相关协议产生的信息,其实就是 rsyslogd 这支程序本身产生的信息;
6 lpr 打印相关的讯息啊;
7 news 与新闻组服务器有关的信息;
8 uucp 全名为 Unix to Unix Copy Protocol,早期用于 unix 系统间的程序数据交换;
9 cron 例行性工作排程 cron/at 等产生的讯息记录;
10 authpriv 与 auth 类似,但记录较多账号私人的信息,包括 pam 模块的运作等;
11 ftp 与 FTP 通讯协议有关的讯息输出;
16-23 local0 ~ local7 保留给本机用户使用的一些登录文件讯息,较常与终端机互动。

软件开发者也可以通过上面的服务来定义自己的开发的软件,同时都调用syslog函数的mail服务名称

上面的服务差异很打,比如mail服务多的要命,他会记录很多东西。这样的话我们就可以用其他的适合的服务进行记录日志

信息等级

下面的是越靠近0问题越严重

等级数值 等级名称 说明
7 debug 用来 debug (除错) 时产生的讯息数据;
6 info 仅是一些基本的讯息说明而已;
5 notice 虽然是正常信息,但比 info 还需要被注意到的一些信息内容;
4 warning (warn)警示的讯息,可能有问题,但是还不至于影响到某个 daemon 运作的信息;基本上, info,notice, warn 这三个讯息都是在告知一些基本信息而已,应该还不至于造成一些系统运作困扰;
3 err (error)一些重大的错误讯息,例如配置文件的某些设定值造成该服务无法启动的信息说明, 通常藉由 err 的错误告知,应该可以了解到该服务无法启动的问题;
2 crit 比 error 还要严重的错误信息,这个 crit 是临界点 (critical) 的缩写,这个错误已经很严重了喔;
1 alert 警告警告,已经很有问题的等级,比 crit 还要严重;
0 emerg (panic)等级,意指系统已经几乎要宕机的状态。 很严重的错误信息了。通常大概只有硬件出问题,导致整个核心无法顺利运作,就会出现这样的等级的讯息。

下面还有两个特殊的等级

等级名称 作用
debug 错误检查等级
nome 不需登录等级

在信息等级前面还有一个连接符合下面的是他的意思

连接符合 作用
. 代表比后面还要严重的等级 (含该等级) 都被记录下来的意思,例如: mail.info 代表只要是 mail的信息,而且该信息等级严重于 info (含 info 本身)时,就会被记录下来的意思
.= 代表所需要的等级就是后面接的等级而已, 其他的不要
.! 代表不等于, 即除了该等级外的其他等级都记录

一般来说,我们比较常使用的是.这个链接符号

logrotate程序

他是提供日志定期删除用的
就是将旧的登录文件更改名称,然后创建一个空的登录文件,如此一来, 新的登录文件将重新开始记录,然后他长时间了就会自动删除以前的文件

systemd程序

经过systemd程序启动的服务他都会记录,他用的是systemd-journald.service 服务

日志格式

他的格式是

  1. 发生的时间
  2. 发生的事件的主机名
  3. 启动事件的服务名
  4. 产生的实际内容
1
2
3
4
5
6
7
8
9
~ » sudo cat  /var/log/messages                                          
[sudo] zss 的密码:
Mar 5 07:25:47 zss rsyslogd: [origin software="rsyslogd" swVersion="8.2012.0" x-pid="657" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Mar 5 07:25:47 zss kernel: [ 4.232728] EDAC amd64: F17h_M60h detected (node 0).
Mar 5 07:25:47 zss kernel: [ 4.232780] EDAC amd64: Node 0: DRAM ECC disabled.
Mar 5 07:25:47 zss kernel: [ 4.283804] r8169 0000:02:00.0 eth0: Link is Down
Mar 5 07:25:47 zss kernel: [ 4.341015] EDAC amd64: F17h_M60h detected (node 0).
Mar 5 07:25:47 zss kernel: [ 4.341063] EDAC amd64: Node 0: DRAM ECC disabled.
Mar 5 07:25:47 zss kernel: [ 4.413099] EDAC amd64: F17h_M60h detected

上面的意思

Mar 5 07:25:47的意思:Mar三月的意思,那Mar 5 07:25:47就是3月5日07:25:47

zss的意思:`使用的主机名

kernel的意思:`程序名

[ 4.232728] EDAC amd64: F17h_M60h detected (node 0)的意思:`产生的实际内容

更新中。。。。。