RHEL九(分析和存储日志)

本章讲解本地日志管理和搭建日志服务器。rhel5中管理日志的服务是syslog,rhel6中管理日志的服务是rsyslog,rhel7中管理日志的服务是rsyslog和systemd-journald,默认情况下这两个服务不冲突,可以同时开起来,systemd-journald作为rsyslog的补充。默认情况下本地日志存储在var/log下。

日志服务的配置文件为/etc/rsyslog.conf

AAA       BBB                      CCC

AAA 产生日志的设备或对象:

authprive 与安全验证相关的日志

cron 计划任务产生的日志

kern 内核产生的日志

user 普通用户产生的日志

localN 保留给其他应用程序使用 N=0-7

BBB 日志级别(使用man sysconfig查看):

KERN_EMERG  0 紧急的错误信息

KERN_ALERT   1 报警信息

KERN_CRIT       2 危急的信息

KERN_ERR        3 错误信息

KERN_WARNING  4 警告信息

KERN_NOTICE   5 稍微需要注意的信息

KERN_INFO    6 正常信息

KERN_DEBUG   7 排错信息

CCC日志存储位置

/var/log/xxx表示存储在本地,前面如果有 - ,表示异步记录日志信息

@@ip 表示日志存储在ip主机上,以TCP协议传输

@ip 以UDP协议传输

AAA.BBB 表示等于或者大于该级别,如AAA.ERR表示日志级别为3、2、1、0

AAA=ERR代表等于该级别

AAA!ERR除了该级别之外的级别都包含

不论AAA还是BBB,都可以使用通配符来表示


查看/etc/rsyslog.conf,可以看到里面有一行:$IncludeConfig=/etc/rsyslog.d/*.conf,这个配置的意思是引入其他配置,所以我们一般不会直接在/etc/rsyslog.conf中修改日志配置信息,而是在/etc/rsyslog.d/创建自己的日志配置文件,修改了配置之后需要systemctl restart rsyslog重启日志服务才生效。使用tail /var/log/mylog -f实时监控日志(即一旦mylog中存在日志将会输出,该命令等于tailf /var/log/mylog) 


实例(日志过滤):在server0主机中配置desktop0主机产生的日志到/var/log/desktop0.log下:

首先如果server0中有防火墙需要设置一下,然后在server0的/etc/rsyslog.d下新建desktop0.conf文件,vim中输入   :fromhost, isequal,   "desktop0.example.com"  /var/log/desktop0.log   :fromhost, isequal,   "desktop0.example.com"  ~(~表示只记录 /var/log/desktop0.log中,其他地方就不记录)。  重启日志服务:systemctl restart rsyslog,desktop0中测试:logger this is test log,可以看到server0中/var/log/desktop0.log下输出了”this is test log“日志信息


日志轮循

日志文件会随着时间越来越大,很不方便查看,因此需要使用日志轮循策略,将旧的日志文件删除,并创建新的日志文件,这个过程叫做转储。该策略的配置文件为/etc/logrotate.conf,它相当于一个全局的轮循策略,我们定义日志轮循策略在/etc/logrotate.d下,因为/etc/logrotate.conf中引用了该文件夹

实例:配置desktop0.log日志的轮循:

切换到/etc/logrotate.d,vim desktop0,输入:

/var/log/desktop0.log{

weekly

rotate 5

mail root@server0.example.com

size 4k

}

该配置文件配置了desktop0.log达到4k就会轮循,保留5周的日志,并发送邮件给root。日志轮循的计划任务为/etc/cron.daily/logrotate,可以使用logrotate -f /etc/logrotate.conf强制轮循一下,相当于立即执行了日志轮循计划任务,可以看到/var/log下多了一个desktop0-日期.log文件,该文件就记录了5周的日志信息


使用journalctl查看日志

和rsyslog服务不一样,rsyslog的日志存储在/var/log下,而journal的日志存储在/run/log下,存储的是二进制。/run的挂载点为tmpfs,也就是一个内存文件系统,所以journal的日志存储在内存中,每次重启日志就会丢失,当然也有方法让其永久保存。

优点:

记录的是从系统开机到关机之间的日志

查看日志的时候可以指明时间区间

journalctl查看日志,如果不加任何选项,显示所有记录的日志

journalctl -n 20 查看最后20行的日志

journalctl -p err 查看日志级别为err的日志

journalctl -f 监控日志

journalctl _COMM 服务名称,表示查看该服务产生的日志  如:journalctl _COMM sshd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值