1.系统中主要的日志文件

/var/log/boot.log:
开机的时候系统核心会去侦测与启动硬件,接下来开始各种核心支持的功能启动等。 这些流程都会记录在 /var/log/boot.log 里面哩! 不过这个文件只会存在这开机启动 的信息,前次开机的信息并不会被保留下来!
/var/log/cron:
你的 crontab 调度有没有实际被进行? 进行过程 有没有发生错误?你的 /etc/crontab 是否撰写正确?在这个登录文件内查看看。
/var/log/dmesg:
记录系统在开机的时候核心侦测过程所产生的各项信息。由于 CentOS 默认将开机时
核心的硬件侦测过程取消显示, 因此额外将数据记录一份在这个文件中;
/var/log/lastlog:
可以记录系统上面所有的帐号最近一次登陆系统时的相关信息。lastlog 指令就是利用这个文件的记录信息来显示的。
/var/log/messages:
这个文件相当的重要,几乎系统发生的错误讯息 (或者是重要的信息) 都会记录在 这个文件中; 如果系统发生莫名的错误时,这个文件是一定要查阅的登录之 一
/var/log/secure:
基本上,只要牵涉到“需要输入帐号密码”的软件,那么当登陆时 (不管登陆正确或 错误) 都会被记录在此文件中。 包括系统的 login 程序、图形接口登陆所用的 gdm 程序、 su, sudo 等程序、还有网络连线的 ssh, telnet 等程序, 登陆信息都会被记 载在这里;
/var/log/wtmp, /var/log/faillog:
这两个文件可以记录正确登陆系统者的帐号信息 (wtmp) 与错误登陆时所使用的帐 号信息 (faillog) ! 我们在第十章谈到的 last 就是读取 wtmp 来显示的, 这对于追 踪一般帐号者的使用行为很有帮助!
读取的时候不能使用 vim来打开
要使用 who 命令 我也不知道为啥
who /var/log/wtmp 正确的打开方式

tips:
但是 rsyslogd 的登录文件只要“被编辑过”就无法继续记录! 你使用vim打开日志文件 例如/var/log/message 离开的时候你执行了:wq的命令 即使你没有做任何的更改 日志文件就会以为你编辑了 就会停止写入 日志文件
想要解决这个只能重启 rsyslogd 这个服务

我们一般为了保证日志文件的安全都会给
日志文件 加上 chattr 权限 -a 属性是只能增加不能修改 -i是啥也不能干 我们一般是使用 -a 权限
例子:chattr +a /var/log/message
取消的话使用 chattr -a /varlog/message 就可以

2.管理日志的服务

了解三个概念:

image.png

日志的管理方式

基本上有两种方式,一种是由软件开发商自
行定义写入的登录文件与相关格式, 例如 WWW 软件 apache 就是这样处理的。另一种则 是由 Linux distribution 提供的登录文件管理服务来统一管理。 你只要将讯息丢给这个服务 后,他就会自己分门别类的将各种讯息放置到相关的登录文件去!CentOS 提供 rsyslog.service 这个服务来统一管理登录文件

rsyslog.service :记录登录文件的服务

配置文件

  1. # 来自 CentOS 7.x 的相关数据
  2. [root@study ~]# vim /etc/rsyslog.conf
  3. 1 #kern.* /dev/console
  4. 2 *.info;mail.none;authpriv.none;cron.none /var/log/messages
  5. 3 authpriv.* /var/log/secure
  6. 4 mail.* -/var/log/maillog
  7. 5 cron.* /var/log/cron
  8. 6 *.emerg :omusrmsg:*
  9. 7 uucp,news.crit /var/log/spooler
  10. 8 local7.*

rsyslogd 针对各种服务与讯息记录在某些文件的配置文件就是
/etc/rsyslog.conf
这个文件规定了:
(1)什么服务
(2)的什么等级讯息
(3)需要被记 录在哪里(设备或文件)
这个文件的格式:

  1. 服务名称[.=!]讯息等级
  2. 讯息记录的文件名或设备或主机
  3. # 下面以 mail 这个服务产生的 info 等级为例:
  4. mail.info
  5. /var/log/maillog_info
  6. # 这一行说明:mail 服务产生的大于等于 info 等级的讯息,都记录到
  7. # /var/log/maillog_info 文件中的意思。

服务名称

rsyslogd 主要还是通过 Linux 核心提供的 syslog 相关规范来设置数据的分类的, Linux 的 syslog 本身有规范一些服务讯息, 你可以通过这些服务来储存系统的讯息。 Linux 核心的 syslog 认识的服务类型主要有下面这些:
image.png
调用的实例:
image.png

讯息等级

image.png

基本上,在 0(emerg) 到 6(info) 的等级之间,等级数值越高代表越没事,等 级靠近 0 则代表事情大条了!除了 0 到 6 之外还有两个比较特殊的等级, 那就是 debug(错误侦测等级) 与 none (不需登录等级)

链接符号

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

自定义日志保存位置

  1. # 1. 先设置好所要创建的文件设置!
  2. [root@study ~]# vim /etc/rsyslog.conf
  3. # Add by VBird 2015/08/19 <==再次强调,自己修改的时候加入一些说明
  4. *.info /var/log/admin.log <==有用的是这行啦!
  5. # 2. 重新启动 rsyslogd 呢!
  6. [root@study ~]# systemctl restart rsyslog.service
  7. [root@study ~]# ll /var/log/admin.log
  8. -rw-r--r--. 1 root root 325 Aug 20 00:54 /var/log/admin.log
  9. # 瞧吧!创建了这个登录文件出现啰!

3.日志文件服务器的设置

简介

我们 CentOS 7.x 默认的 rsyslogd 本身就
已经具有这个登录文件服务器的功能了, 只是默认并没有启动该功能 ,那个默认的端口就是 UDP 或 TCP 的 port 514

架构图

image.png

配置文件的修改

service 端设置:

  1. # 1. Server 端:修改 rsyslogd 的启动配置文件,
  2. /etc/rsyslog.conf 内!
  3. [root@study ~]# vim /etc/rsyslog.conf
  4. # 找到下面这几行:
  5. # Provides UDP syslog reception
  6. #$ModLoad imudp
  7. #$UDPServerRun 514
  8. # Provides TCP syslog reception
  9. #$ModLoad imtcp
  10. #$InputTCPServerRun 514
  11. # 上面的是 UDP 端口,下面的是 TCP 端口!
  12. #如果你的网络状态很稳定,就用 UDP 即可。
  13. # 不过,如果你想要让数据比较稳定传输,那么建议使用 TCP 啰!
  14. #所以修改下面两行即可!
  15. $ModLoad imtcp
  16. # 2. 重新启动与观察 rsyslogd 喔!
  17. [root@study ~]# systemctl restart rsyslog.service
  18. [root@study ~]# netstat -ltnp | grep syslog
  19. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  20. tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 2145/rsyslogd
  21. tcp6 0 0 :::514 :::* LISTEN

client端设置:

  1. [root@study ~]# vim /etc/rsyslog.conf
  2. *.* @@192.168.1.100
  3. #*.* @192.168.1.100 # 若用 UDP 传输,设置要变这样!
  4. [root@study ~]# systemctl restart rsyslog.service