日志作用、logger工具、日志管理器、日志转储功能、转储实验

一、日志的作用

用于记录系统、运行程序中发生的各种事件

通过阅读日志,有助于诊断和解决系统故障

Linux系统日志路径:/var/log/messages(记录很多类型的日志)

(修改终端的Scrollback szie值可以看到历史操作记录)

(对于操作日志,会话关闭之后也不能查看历史操作信息的,可以写到文件中去,便于显示排错)

扫描二维码关注公众号,回复: 5915285 查看本文章

二、日志文件的分类(内核及系统日志、用户日志、程序日志)

1.内核及系统日志

由系统服务rsyslog统一进行管理,日志格式基本相似

软件包:rsyslog-5.8.10-8

主要程序:/sbin/rsyslogd(此程序完成服务,程序启动会产生进程)

配置文件:/etc/rsyslog.conf(程序根据配置文件工作)

系统日志保存位置

默认位于:/var/log 目录下

主要日志文件介绍

内核及公共消息日志:/var/log/messages

计划任务日志:/var/log/cron

系统引导日志:/var/log/dmesg

邮件系统日志:/var/log/maillog

保存了用户登录、退出系统等相关信息(数据文件----)

/var/log/lastlog:最近的用户登录事件

[root@111 log]# cat lastlog

]¼\pts/1172.16.2.504甜pts/1172.16.2.50X䛰ts/2172.16.2.50[root@111 log]#

[root@111 log]# file lastlog------------文件是数据文件,不是文本文件

lastlog: data

[root@111 log]# last--------查看命令

/var/log/wtmp:用户登录、注销及系统开、关机事件

[root@111 log]# file wtmp----------数据文件

wtmp: data

[root@111 log]# w---------查看命令

20:31:26 up 2:28, 2 users, load average: 0.00, 0.01, 0.05

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 172.16.2.50 19:13 0.00s 0.06s 0.00s w

root pts/1 172.16.2.50 19:32 57:24 3.64s 0.00s /usr/local/mysql/b

/var/run/utmp:当前登录的每个用户的详细信息

/var/log/secure:与用户验证相关的安全性事件

用户登录分析

who、w、users、last、ac、lastlog(都是读取以上数据文件内容显示出来的结果)

日志记录的一般格式

[root@localhost log]# tail -1 /var/log/messages

Jan 11 10:41:02 localhost abrtd: Init complete, entering main loop

(时间、主机名、子系统名、消息字段)

语法(规则)

日志设备(类型).(连接符号)日志级别   日志处理方式(action)

可以自己修改配置文件规则,但是要重启rsyslog服务

日志级别

NONE:什么都不记录

EMERG(紧急):会导致主机系统不可用的情况

ALERT(警告):必须马上采取措施解决的问题

CRIT(严重):比较严重的情况

ERR(错误):运行出现错误

WARNING(提醒):可能会影响系统功能的事件

NOTICE(注意):不会影响系统但值得注意

INFO(信息):一般信息

DEBUG(调试):程序或系统调试信息等

从下到上,级别从低到高,记录的信息越来越少

连接符号

 . :记录大于等于后面的级别日志

 .=:只记录等于后面的级别日志

.!=:只记录不等于后面的级别日志

了解日志处理方式

本地文件:通常就是文件的绝对路径

打印机:例如 /dev/lp0 这个打印机装置

用户名称:显示给登录中的某些用户

远程主机(日志服务器):例如 @202.100.100.1

*:所有在线的用户

2.用户日志

 记录系统用户登录及退出系统的相关信息

3.程序日志

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

三、logger(主动记录日志工具)

通过logger命令发送日志内容给rsyslog,rsyslog再将内容做进一步处理

logger:从命令行直接向系统日志文件写入一行信息,需要标准输入,可以使用管道

例如:logger -it "testlog" -p local2.info 会卡住等待输入日志的内容

-p:指定规则

-it:指定日志模式

注意:当添加一条日志内容,而内容没有生效时,看SELinux是否关闭

修改配置文件/etc/selinux/config ,将enforcing改为disabled

四、日志管理策略:

1.及时作好备份和归档

2.控制日 志访问权限

日志中可能会包含各类敏感信息,如账户、口令等

3.集中管理日志

使用日志服务器便于日志的统一收集、整理和分析

杜绝日志信息的意外丢失、恶意篡改或删除

  

应用示例:

将客户机B中所有日志消息,自动发送到服务器A的日志文件中

在服务器A配置:


 

1、修改/etc/rsyslog.conf文件,把以下2项的注释取消(看开放TCP还是UDP)---#去掉

$ModLoad imudp

$UDPServerRun 514

2、重启rsyslog服务

service rsyslog restart

在客户机B配置:

1、修改/etc/rsyslog.conf文件,在最后加一行,内容如下:

*.*  @服务器IP

2、重启rsyslog服务

service rsyslog restart

注意事项:

一个@是UDP协议传输    两个@@是用TCP协议传输

注意防火墙的开关

[root@centos6 ~]# service iptables status

iptables: Firewall is not running.

在客户机通过logger添加日志

在服务器上查看日志(日志处理方式根据服务端的规则)

  

五、日志转储功能(logrotate):与rsyslog无关

logrotate把旧的日志文件删除,并创建新的日志文件,叫做"转储"。可以根据日志文件的大小,天数来转储(周期性任务:这个过程一般通过crond进程来执行)logrotate还可以用于压缩日志文件

logrotate的主配置文件:/etc/logrotate.conf

logrotate -v /etc/logrotate.conf

-f:强制转储  -v:查看转储输出的信息

Logrotate的次要配置文件(每个文件代表一种日志的配置):/etc/logrotate.d/*

次要配置文件内容:

要转储的文件(可以有多个){

参数

postrotate

service rsyslog restart-------转储完之后,自动重启rsyslog服务

endscript

}

参数:

compress        通过gzip 压缩转储以后的日志

create mode owner group 转储文件使用指定的文件模式创建新的日志文件(指定文件属主和属组)

mail address    把转储的日志文件发送到指定的E-mail 地址

daily          指定转储周期为每天

weekly         指定转储周期为每周

monthly        指定转储周期为每月

rotate count   指定日志文件删除之前转储的次数,0是没有备份,5是保留5个备份

size size       当日志文件到达指定的大小时才转储,可以指定byte以及KB(sizek)或者MB(sizem)

(如果设定参数是每天转储和大于20M转储的话,假设今天文件大小已经大于20M,那么会转储一次,过一段时间又到达了20M,转储是不会进行的)

六、阶段试验

实验1、如果设定参数是每天转储和大于1k转储的话,假设今天文件大小已经大于1k,那么会转储一次,过一段时间又到达了1k,转储是不会进行的,因为设定的是每天一次

步骤1、

对于local2.*的日志都存放到/var/log/local2.log文件中

[root@111 log]# ls | grep local2--------没有重启rsyslog服务,文件没有生成

[root@111 log]# service rsyslog restart

Shutting down system logger: [ OK ]

Starting system logger: [ OK ]

[root@111 log]# ls | grep local2

local2.log

步骤2、

[root@111 logrotate.d]# pwd

/etc/logrotate.d

[root@111 logrotate.d]# vim local2

[root@111 logrotate.d]# cat local2

/var/log/local2.log{

daily

rotate 3

size 1k

postrotate

service rsyslog restart-------转储完之后,自动重启rsyslog服务

endscript

}----------------------此时是没有重新启动rsyslog服务

步骤3、向local2.info文件中添加内容,使其大小达到1K

[root@111 log]# ll -h local2.log

-rw------- 1 root root 1.5K Mar 26 20:07 local2.log

[root@111 log]# logrotate -v /etc/logrotate.conf

[root@111 log]# ll -h local2.log

-rw------- 1 root root 0 Mar 26 20:08 local2.log

[root@111 log]# ll -h local2.log*

-rw------- 1 root root 0 Mar 26 20:08 local2.log

-rw------- 1 root root 1.5K Mar 26 20:07 local2.log-20190326

步骤4、现在文件已经转储完成一次,如果继续增加内容,看是向哪个文件里面增加、如果再次达到1k,看是否还会转储

[root@111 log]# ll -h local2.log*

-rw------- 1 root root 1.1K Mar 26 20:09 local2.log

-rw------- 1 root root 1.5K Mar 26 20:07 local2.log-20190326

[root@111 log]# logrotate -v /etc/logrotate.conf

rotating pattern: /var/log/local2.log 1024 bytes (2 rotations)

empty log files are rotated, old logs are removed

considering log /var/log/local2.log

log needs rotating

rotating log /var/log/local2.log, log->rotateCount is 2

dateext suffix '-20190326'

glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

destination /var/log/local2.log-20190326 already exists, skipping rotation

[root@111 log]# ll -h local2.log*------------------------------没有新的转储文件生出

-rw------- 1 root root 1.1K Mar 26 20:09 local2.log

-rw------- 1 root root 1.5K Mar 26 20:07 local2.log-20190326

实验2、将主机2上与计划任务相关的日志都发到主机1上去;修改主机1配置文件,将计划任务相关的日志记录到日志文件/var/log/newcron.log,注意该文件不能被随意删除和篡改;设定该日志文件的轮转,每周轮转一次,若该文件大于5k,则自动轮转,保留6个备份

主机1:客户端

主机2:服务端

在服务器上配置:

1、修改/etc/rsyslog.conf文件,把以下2项的注释取消---#去掉,增加计划任务日志文件

2、重启rsyslog服务

[root@111 logrotate.d]# service rsyslog restart

Shutting down system logger: [ OK ]

Starting system logger: [ OK ] 

在客户机上配置:

1、修改/etc/rsyslog.conf文:件,在最后加一行,内

容如下:

*.*  @服务器IP

2、重启rsyslog服务

[root@centos6 ~]# service rsyslog restart

Shutting down system logger: [ OK ]

Starting system logger: [ OK ]

3、服务端次要配置文件修改/etc/logrotate.d

[root@111 logrotate.d]# vim newcron

[root@111 logrotate.d]# cat newcron

/var/log/newcron.log{

weekly

create 0600 root root

size 5k

rotate 6

postrotate

service rsyslog restart

endscript

}

  

测试


 

在客户端输入

[root@centos6 ~]# echo 123456789 | logger -it "test" -p cron.info

在服务端查看,并向文件添加内容,达到5k,然后转储

[root@111 logrotate.d]# tail -3 /var/log/newcron.log

Apr 4 14:56:14 centos6 test[2306]: 123456789

[root@111 log]# ll -h newcron.log

-rw------- 1 root root 5.8K Mar 26 20:41 newcron.log

[root@111 log]# logrotate -v /etc/logrotate.conf

[root@111 log]# ll -h newcron.log*

-rw------- 1 root root 0 Mar 26 20:42 newcron.log

-rw------- 1 root root 5.9K Mar 26 20:42 newcron.log-20190326

猜你喜欢

转载自blog.csdn.net/weixin_44569143/article/details/89000470