Centos 7系统日志

前言

       CentOS 7系统生成的日志主要是通过systemd日志守护进程进行处理和记录的。其日志记录的内容包括系统和服务启动和关闭的信息、系统运行过程中产生的错误、警告和通知信息等等。

系统日志通常被记录在/var/log目录下,主要的日志文件有:

  1. messages: 系统基本日志信息,包括系统启动、关闭、网络等信息。

  2. secure: 系统认证和授权相关的日志信息,如登录、su操作、sudo操作等。

  3. journalctl: 通过journalctl命令可以查看系统日志的详细信息,包括系统启动信息、服务启动信息、错误信息等。

       除此之外,系统日志还包括定时任务的日志信息、yum软件包管理器的日志信息、Apache Web服务器的访问和错误日志、MySQL数据库系统的日志信息等。管理员可以根据不同的需求选择查看特定的日志文件,以了解系统的运行情况和问题。

目录

1 引言

 1.1 日志的重要性

 1.2 常见的系统日志

2 rsyslog日志管理

 2.1 日志类型

 2.2 日志优先级

 2.3 自定义日志

3 logrotate日志轮转【重点!!!】

 3.1 日志轮转

 3.2 日志轮转实例

 3.3 日志安全,操作日志的隐藏权限


1 引言

 1.1 日志的重要性

Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要对Linux日志系统有个详细的了解。

Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不同的文件中。

 1.2 常见的系统日志

/var/log/messages:记录Linux操作系统常见的系统和服务错误信息以及系统的各种事件(包括 kernel 日志、syslog、auth 日志等)。

/var/1og/boot.log:记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息。

/var/log/lastlog:记录最后一次用户成功登陆的时间、登陆IP等信息(一般通过命令lastlog 查看)。

/var/1og/secure:Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况。/var/log/yum.log:记录 yum 包管理器相关的信息,如软件的安装、更新等。

/var/log/httpd/:记录 Apache 访问日志和错误日志。

/var/log/mysql/:记录 MySQL 数据库的访问日志和错误日志。

【单独讲述下/var/log/messages和/var/log/secure】

(1)/var/log/messages

使用“tail -f /var/log/messages”命令查看日志。

tail -f /var/log/messages

Centos 7系统日志_第1张图片

接下来我们重新打开个窗口,使用“systemctl stop httpd”和“systemctl start httpd”命令,查看日志情况。

systemctl stop httpd
systemctl start httpd

Centos 7系统日志_第2张图片 (2)/var/1og/secure

使用“tail -f /var/log/secure”命令查看日志,接下来我们重新打开个窗口。

tail -f /var/log/secure

测试一:

使用“useradd mortalz7”命令创建一个新用户mortalz7,同时我们使用“passwd mortalz7”命令更改用户密码。

【在此过程中我们故意输错密码一次,观察下日志的变化】

useradd mortalz7
passwd mortalz7

Centos 7系统日志_第3张图片

查看/var/1og/secure系统日志的变化

Centos 7系统日志_第4张图片

测试二:

我们使用“su mortalz7”命令切换用户到mortalz7并退出(使用“exit”命令)。

su mortalz7

 Centos 7系统日志_第5张图片

同时我们查看/var/log/secure系统日志的变化

我们将会发现系统日志出现如图所示情况。

 

2 rsyslog日志管理

 2.1 日志类型

auth:pam产生的日志

authpriv:ssh,ftp等登录信息的验证信息

cron:时间任务相关

kern:内核

lpr:打印

mail:邮件

mark(syslog)-rsyslog:服务内部的信息,时间标识

news:新闻组

user:用户程序产生的相关信息

 2.2 日志优先级

日志级别分为:(7种日志级别 代号0-7)

0  debug 有调试信息的,日志信息最多

1  info 一般信息的日志,最常用

2  notice 最具有重要性的普通条件的信息

3  warning 警告级别

4  err 错误级别,阻止某个功能或者模块不能正常工作的信息

5  crit 严重级别,阻止整个系统或者整个软件不能工作的信息

6  alert 需要立刻修改的信息

7  emerg 内核崩溃等严重信息

none 不记录任何信息

【其中warning和err常见】

 2.3 自定义日志

rsyslog的格式:日志对象.日志级别+日志文件

. 表示大于或者等于后面指定的日志级别

.= 表示等于侯建指定的日志级别

.! 表示不要这个级别的信息

举例:

(1)*.*   

第一个*表示的是日志类型,要存储哪一方面的日志;后面的.*表示的是你想要定义的什么级别。

(2)kern.err  /var/log/kernel.log  

err第四级别,大于错误级别写到/var/log/kernel.log(自己定义的文件)。

(3)mail.info  /var/log/mail.log  

所有大于等于info级别的mail邮件都写到/var/log/mail.log。

好了,了解的差不多了,最终你就可以使用vim /etc/rsyslog.conf命令开始编写啦~

编写成功后,记得重启日志服务,让本机的日志生效

systemctl restart rsyslog

logrotate日志轮转【重点!!!】

 3.1 日志轮转

首先先了解下配置文件

vim /etc/logrotate.conf

//全局配置

weekly 轮转周期默认一周轮转一次

rotate4 轮转次数 默认轮转4次(只保留四份文件,当第五份日志文件产生之后,将自动删除最旧的那份文件)

create 创建新文件

dateext 以轮转时刻的时间作为轮转文件的结尾

//局部配置

include /etc/logrotate.d

missingok 在文件不存在的时候也不报错

create 0600 root utmp

强制轮转

logrotate -s /var/lib/logrotate/logrotate.status  /etc/logrotate.conf

-s 指定最后的日志轮转记录文件为/var/lib/logrotate/logrotate.status

 3.2 日志轮转实例

测试日志轮转,轮转文件/var/log/yum.log

(1)配置轮转规则:vim /etc/logrotate.d/yum

vim /etc/logrotate.d/yum

Centos 7系统日志_第6张图片

notifempty表示空文件不轮转(在notifempty前面加#,使空文件也轮转)

(2)为了验证实验的成功性,我们修改下文件内容(如图)。

Centos 7系统日志_第7张图片

(3)查看:ls /var/log/yum.*,只有/var/log/yum.log

ls /var/log/yum.*

(4)使用date命令查看当前时间

date

修改日期(daily是以天来算的,不能等一天再来看效果,所以我们直接选择修改日期)

date 09301805

date后面加“月日时分”

(5)执行手动轮转命令

logrotate /etc/logrotate.conf

(6)查看:ls /var/log/yum.*

多了个日志文件,成功啦~

 3.3 日志安全,操作日志的隐藏权限

(1)建议测试时先把/etc/logrotate.d/syslog中messages删除(vim命令进入/etc/logrotate.d/syslog中,删除/var/log/messages一行)

vim /etc/logrotate.d/syslog

(2)删除完成后,在最下面添加如下命令:

/var/log/messages  {
prerotate
        chattr -a /var/log/messages
    endscript

#notifempty
 daily
 create 0777 root root
 missingok
 rotate 3

postrotate
        chattr +a /var/log/messages
    endscript
}

 添加成功后,输入“:wq”保存退出。

(3)执行手动轮转命令

logrotate /etc/logrotate.conf

运行完毕后没有报错说明编写没有问题,如果报错说明刚才/etc/logrotate.d/syslog中编写有错。(比如说missingok中没有空格或者postrotate打错字母等等。)

【为多个日志文件配置日志轮转】

vim命令进入/etc/logrotate.d/syslog中,删除所想要修改的在最下面进行添加即可(跟刚才同理)

创作不易,给个三连吧~

Centos 7系统日志_第8张图片

你可能感兴趣的:(CentOS,centos,linux,运维)