系统日志管理

本文详细介绍rsyslog服务的功能,包括日志采集、管理和格式化,以及日志的远程同步方法。此外,还介绍了journalctl这一日志查看工具的使用方法。

rsyslog

1.rsyslog: 此服务是用来采集系统日志的,他不生产日志,只是起到采集作用。
2.rsyslog的管理

/var/log/messages服务信息日志
/var/log/secure系统登陆日志
/var/log/maillog邮件日志
/var/log/boot.log系统启动日志
/var/log/cron定时任务日志

3.指定日志采集路径
日志采集规则:将什么类型的日志,什么级别的日志 /var/log/file

日志类型分为:

authpam产生的日志
authprivssh.ftp等登陆信息的验证信息
cron时间任务相关
kren内核
lpr打印
mail邮件
mark(syslog)-rsyslog服务内部的信息,时间标识
news新闻组
user用户程序产生的相关信息
uucpunix to unix copy,unix主机之间相关的通讯
local 1~7自定义的日志设备

日志的级别分为:

debug有调试信息的,日志信息最多
info一般信息的日志,最常用
notice最具有重要性的普通条件的信息
warning警告级别
err错误级别,阻止某个功能或者模块不能正常工作的信息
crit严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert需要立刻修改的信息
emerg内核崩溃等严重信息
none什么都不记录

注意:
从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册:man 3 syslog

操作示例:
目的:把系统中所有日志采集到/var/log/westos文件中
操作:

vim /etc/rsyslog.conf  
*.*                 /var/log/westos

systemctl restart rsyslog

注意: 必须重启服务才会生效!
在这里插入图片描述
测试:

systemctl restart sshd     ##命令目的为了生成日志
cat /var/log/westos         ##此文件中出现了日志信息

在这里插入图片描述
可以看到,任何类型,任何级别的日志都定向采集到文件/var/log/westos中了(底下的/etc/rc.d/rc.local本应该清空的)
4.日志的远程同步
首先,要先清空发送方和接收方/etc/rc.d/rc.local的内容

>/etc/rc.d/rc.local
reboot       ##重启

在日志发送方:

vim /etc/rsyslog.conf
*.*           @172.25.254.224        ##"@"表示UDP协议发送,“@@”表示TCP协议发送,地址为接收方的地址
systemctl restart rsyslog

在这里插入图片描述
在日志接收方:

vim /etc/rsyslog.conf
15:$ModLoad imudp      ##日志接收模块
16:$UDPServerRun 514       ##开启接收端口
systemctl restart rsyslog

在这里插入图片描述
在接收方关闭防火墙:

systemctl stop firewalld        ##关闭防火墙
systemctl disable firewalld     ##设定防火墙开机关闭

在这里插入图片描述
测试:
在发送方和接收方都清空日志文件

> /var/log/messages

在日志的发送方:

logger hello
cat /var/log/messages     ##查看日志已经生成

在这里插入图片描述
在日志的接收方查看:

cat /var/log/messages

在这里插入图片描述
注意:UDP和TCP的区别:
两种都是传输协议,UDP提供了无连接的数据报服务,而TCP是面向连接的传输控制协议,UDP在传输数据前不建立连接,不对数据报进行检查和修改,不需等待对方应答,所以会出现乱序,分组丢失,重复的问题,UDP的优点是:快速,网络开销小。TCP是先建立连接再传输数据,不会有数据丢失或乱序的情况出现,优点是稳定。

日志采集格式的设定

有时采集到的日志不是我们想要的格式,我们可以对日志采集的格式进行设定。

vim /etc/rsyslog.conf

定义WESTOS这样的采集格式:

$template WESTOS,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
说明
%timegenerated%显示日志时间
%FROMHOST-IP%显示主机ip
%syslogtag%日志记录目标
%msg%日志内容
\n换行

例如,在server端按照WESTOS的格式采集日志,并将采集到的所有日志保存到/var/log/all_messages这个文件下:
在这里插入图片描述
查看生成日志的文件,可以看到采集到的日志格式发生了改变。
在这里插入图片描述

修改默认的日志采集格式

同样的在/etc/rsyslog.conf中,为了保险起见,我们先将默认格式复制一行注释掉,在添加新的一行,修改默认的采集格式为WESTOS。
在这里插入图片描述
可以看到其他收集日志文件的格式均发生了改变。
在这里插入图片描述
在这里插入图片描述
注意:本机的设定只对本机生效。

journal

journalctl 日志查看工具
journalctl -n 3查看最近的三条日志
journalctl -p err查看错误日志
journalctl -o verbose查看日志的详细参数,可以显示PID
journalctl --since查看从什么时候开始的日志
journalctl --until查看到什么时候为止的日志
journalctl --since --until查看两个时间段之间的日志

例如:
journalctl查看系统开机后的全部日志:
在这里插入图片描述

查看最近5条日志:

在这里插入图片描述

查看错误日志:

在这里插入图片描述

查看两个时间段之间的日志:

在这里插入图片描述

查看日志的详细参数:

systemctl status sshd.service
systemctl restart sshd.service
systemctl status sshd.service

在这里插入图片描述
在这里插入图片描述

如何使用systemd-journal保存系统日志

默认情况下systemd-journal是不保存系统日志到硬盘里的,所以当系统关机后再次开机只能看到本次开机后产生的日志,上次关机之前的日志是无法查看的。
所以我们可以作以下的设定:
首先我们建立一个日志目录,更改组,权限:
在这里插入图片描述
然后,killall -1的目的是进程重新加载该配置,不关闭。
在这里插入图片描述
重启后可以发现,关机前产生的日志同样得到了保存。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值