Linux日志管理

一、日志的种类和记录方式

在CentOS 7中,系统日志消息由两个服务负责处理:systemd-journaldrsyslog

1. 常见日志文件的作用 系统日志文件概述:/var/log目录保管由rsyslog维护的,存放的一些特定于系统和服务的日志文件。

日志文件

用途

/var/log/message

大多数系统日志消息记录在此处。如与身份验证定期作业任务等

/var/log/secure

安全和身份验证相关的消息和登录失败的日志文件

安全和身份验证相关的消息和错误的日志文件

/var/log/maillog

与邮件服务器相关的消息日志文件

/var/log/cron

与定期执行任务相关的日志文件

/var/log/boot.log

与系统启动相关的消息记录

/var/log/dmesg

与系统启动相关的消息记录(硬件相关)

/var/log/wtmp也是一个二进制文件,记录每个用户的登录次数和持续时间等信息。

可以用last命令输出wtmp中内容:last显示到目前为止,成功登录系统的记录。

/var/log/btmp文件查看暴力破解系统的用户

/var/log/btmp文件是记录错误登录系统的日志。

2. 日志的记录方式

日志的记录在rsyslog中由日志的“类别”和“级别”组成。
1)日志的分类(类别):

daemon

后台进程相关    

kern

内核产生的信息

lpr

打印系统产生的

cron

定时相关

mail

 邮件相关

syslog

日志服务本身的

news

新闻系统

authpriv

 安全认证

local0~7

自定义的日志设备

local0-local7

8个系统保留,程序使用或者是用户自定义

2)日志的级别(轻-重)

编号

优先级

严重性

7

debug

信息对开发人员调试应用程序有用,在操作过程中无用

6

info

正常的操作信息,可以收集报告,测量吞吐量

5

notice

注意,正常但重要的事件

4

warning

警告,提示如果不采取行动。将会发生错误

3

err

错误,阻止某个模块或程序的功能不能正常使用

2

crit

关键的错误,已经影响了整个系统或软件不能正常工作的信息

1

alert

警报,需要立即修改的信息

0

emerg

紧急,内核崩溃等严重信息

3)补充命令

1、grep以行为单位过滤数据,awk以列为单位过滤数据,uniq-c表示 x显示重复内容并且显示重复的次数。
grep Failed /var/log/secure|awk '{print $11}'|uniq -c

2、将ens33网卡收到的来自于192.168.1.63的数据包丢弃,不再接收

iptables -A INPUT -i ens33 -s 192.168.1.63(暴力破解地址) -j DROP

3、随着运行时间增加,日志文件变得过大时。清空日志可选方式有:

方法1:[root@localhost ~]# > /var/log/btmp

方法2: rm -rf /var/log/btmp && touch /var/log/btmp

4、两者的区别?

方法一是以空进行覆盖;inode不变。不容易出现问题

二是先删除再创建;inode无法确定

4)如何防止删除日志:

chattr +a /var/log/日志文件名

#设定a隐藏属性

5)配置文件/etc/rsyslog.conf

# 日志服务的配置文件,记录了日志的类型和级别,以及对应日志文件的保存位置。当要将日志传输到服务器端保存时,在文件内添加:

日志类型.级别   @@服务器IP:514(@@表示tcp协议,@表示udp协议,514为对应端口)

*.info;mail.none;authpriv.none;cron.none       /var/log/messages

 #点前面是级别,后面是类别,代表所有info级别以上的都要记,mail.none;authpriv.none;cron.none类别都不记,在下面独立记录

authpriv.*                                                        /var/log/secure

mail.*                                                              -/var/log/maillog

#加- 因为频繁产生日志

cron.*                                                             /var/log/cron

*.emerg                                                          :omusrmsg:*

#广播形式发送报错信息

 uucp,news.crit                                              /var/log/spooler

 local7.*                                                        /var/log/boot.log

 

注释:

#$UDPServerRun 514    #允许514端口接收使用UDP协议转发过来的日志。

#$InputTCPServerRun 514      #允许514端口接收使用TCP协议转发过来的日志。

*.info;mail.none;authpriv.none;cron.none /var/log/messages

所有的类别级别是info以上 除了mail,authpriv,cron (产生的日志太多,不易于查看)

类别.级别

authpriv.*        认证相关日志                           /var/log/secure

mail.*              邮件相关的日志                       -/var/log/maillog

cron.*              计划任务相关的日志                 /var/log/cron

local7.*         开机时显示的信息à存放-->        /var/log/boot.log

注: “- ”号:邮件的信息比较多,现将数据存储到内存,达到一定大小,全部写到硬盘.有利于减少I/O进 程的开销 数据存储在内存,如果关机不当数据消失。

日志输入的规则

  •  . info      大于等于info级别的信息全部记录到某个文件
  • .=级别      仅记录等于某个级别的日志

例:.=info 只记录info级别的日志

  • .! 级别      除了某个级别以外,记录所有的级别信息

 例.!err         除了err外记录所有

  •  .none 指的是排除某个类别

例:mail.none 所有mail类别的日志都不记录

3、日志切割

可以对日志进行指定大小的切割

日志轮替的主要作用是把旧日志文件移动并改名,同时建立新的空日志文件。当旧日志文件数量超出保存范围后就进行删除。

配置文件:

/etc/logrotate.conf和/etc/logrotate.d/目录下的配置文件

# logrotate命令的配置文件,记录了日志文件的切割规则

            include :   引用/etc/logrotate.d之下文件的规则

局部优先级高于全局

nodateext在日志轮替切割后,旧日志文件不以日期为后缀名。

compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。

delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归 档压缩。

notifempty: 如果日志文件为空,轮循不会进行。

sharedscripts:在此关键字之后的脚本执行一次。

prerotate/endscript:在日志轮替之前执行脚本命令。endscript 标识prerotate 脚本结束。

postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。

logrotate命令:

 格式:logrotate [选项] 配置文件名

选项:如果此命令不添加子选项,则会按照配置文件中的条件进行日志轮替。

 -v:显示日志轮替过程。加-v选项会显示日志的轮替过程。

 -d:预演,不实际轮循

 -f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中的所有日志进行轮替。

自定义日志

1、先rz上传自己定义的规则,alog

2、将alog剪切mv到/etc/logrotate.d/目录下

      mv  ./alog  /etc/logrotate.d/

3、vim修改/etc/rsyslog.conf文件

*.*       /var/log/all.log   #自定义的日志文件名称

4、systemctl  restart   rsyslog #重启rsyslog服务,使其配置生效

5、以alog规则对all.log进行日志轮替

      logrotate -vf   /etc/logrotate.d/alog

6、查看/var/log/可看到新的日志

如果遇到大日志文件可以使用split命令对文件进行切分:

split:文件拆分

      -a:指定输出文件名的后缀长度,默认为2个字符。

      -d:指定输出文件名的后缀长度用数字代替。

      -b:指定输出文件的大小,可用k,m,g等表示。

cat:文件合并

      cat /拆分文件1 /拆分文件2..../拆分文件n > 合并文件

./test.d/mess500k大小进行拆分

#得到4个文件大小相加等于原文件大小,可查看内容

先将原文件删除,用cat命令将4个文件合并到新的文件中

#合并的文件大小和原文件一致,内容也相同

补充:如果拆分的是视频、音频,拆分后的文件无法正常打开,合并后可以正常使用

4、配置远程日志服务器-实现日志集中的管理

server端配置

1、修改配置文件,选择tcp,将注释去掉

[root@localhost ~]# vim /etc/rsyslog.conf  

$ModLoad imtcp   

$InputTCPServerRun 514  

2、重启服务

[root@localhost ~]# systemctl restart rsyslog

3、查看服务监听的状态:

[root@localhost ~]# netstat -anlpt| grep 514

4、在服务端关闭selinux和防火墙

[root@localhost ~]# getenforce Enforcing

[root@localhost ~]# setenforce 0

[root@localhost ~]# getenforce Permissive

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl status firewalld

[root@localhost ~]# iptables -F

client端配置

1、登录客户端Linux02,修改主机名。

2、修改配置文件

[root@ln ~]# vim /etc/rsyslog.conf

注: *.* 所有类别和级别的日志 ; @@192.168.13.11:514 运端tcp协议的日志服务端的IP 和端口

3、重启服务

[root@ln ~]# systemctl restart rsyslog

4、测试,创建用户lsy01

5、在服务器端查看日志,可以看到客户端创建用户的日志

[root@localhost ~]# vim /var/log/secure

总结

服务器使用udp协议,客户端只能使用的配置文件中这一行只能有一个@

*.* @192.168.13.64:514

服务器使用tcp协议,客户端只能使用的配置文件中这一行必须有两个@@

*.* @@192.168.13.64:514

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值