RedHat Linux系统中的日志管理和时间同步

日志管理服务

系统日志中记录系统各种重大活动记录,如系统的严重问题日志、系统中立即要更改的信息、程序报错等

systemd-journald.service

journald的系统日志服务是默认记录系统活动的服务程序,这个服务是在rhel7开始出现使用的服务程序主要针对本机
默认日志存放路径: /run/log/journal
可以看出存放在 /run 目录中的日志是会随着系统的关闭被清空

journalctl命令的用法

journald服务使用命令是 “journalctl”
直接使用journalctl命令就是显示从系统启动到现在的系统日志,如下图:
在这里插入图片描述
journalctl的参数

参数说明
-n显示日志最近的几条,如 -n 5
-p显示指定级别的日志
-o设定日志的显示方式
-F PRIORITY查看可控日志级别
-u指定查看服务
-f监控日志
- -since查看日志从哪个时间开始
- -until查看日志到什么时间
- -disk-usage查看日志大小
- -vacuum-size设定日志存放大小,在命令中设置属于临时性,重启系统会失效
- -vacuum-time日志在系统中最长存放时间,在命令中设置属于临时性,重启系统会失效
  • -n 后面加数字来查询日志
    在这里插入图片描述
  • -p
    journald的日志采集内容分为8个级别,分别是
    0 emerg 系统的严重问题日志
    1 alert 系统中立即要更改的信息
    2 crit 严重级别会导致系统软件不能正常工作
    3 err 程序报错
    4 warning 程序警告
    5 notice 重要信息的普通日志
    6 info 普通信息
    7 debug 程序排错信息

实验操作:
在这里插入图片描述
在这里插入图片描述
除了输入对应级别名称,也可以输入对应的数字来查询
在这里插入图片描述

  • -o
    日志的显示方式有很多种,可以用 “man journalctl” 来具体查看
    在这里插入图片描述
    我这里只介绍和演示几种常用的格式
short经典模式显示日志
verbose显示日志的全部字节
export适合传出和备份的二进制格式
jsonjs格式显示输出

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

  • -F PRIORITY
    在这里插入图片描述
    可以看到我们可控的日志级别只有3、4、5、6、7这几个级别
  • -u
    参数-u 后面接具体的服务名称,如sshd、NetworkManager、fierwall等信息,来查看相关服务的日志报告
    在这里插入图片描述
  • f
    日志监控,简单来说就是实时更新采集的日志
    在这里插入图片描述
    在这里插入图片描述
  • –since --until
    这两个参数连起来就是从什么时间到什么时间,是在查询某个时间点后时间段时用到的参数
    在这里插入图片描述
    这里我们根据现在的系统时间查看03:10到03:25这个时间内产生的日志
  • –disk-usage
    显示日志存放的大小,因为这里的日志会随着系统重启被清空,所以我们看到的也只是本次系统使用产生的日志大小
    在这里插入图片描述
  • –vacuum-size
    参数–vacuum-size后面接=1G,意思就是设定日志的存放大小最多占用1Gb的储存
    在这里插入图片描述
  • –vacuum-time
    在参数后面接=1day,这样的时间来进行设定
    在这里插入图片描述
    要说明的是命令设定的 - -vacuum-time、- -vacuum-size 都是临时性的,系统重启后会失效,如果想要永久更改设定,我们需要进入journald服务的配置文件,路径是 /etc/systemd/journald.conf
    在这里插入图片描述
    并且我们可以用 “man 5 journald.conf” 来查看里面的参数用法,例:
    在这里插入图片描述
  • 除了上述参数应用,还有一种方式来精确查看方式
    例如 firewalld 火墙服务眼前的进程在被重启后就会成为一个新的进程,PID也是会改变
    在这里插入图片描述
    在这里插入图片描述
    如果我们就是要看重启前的火墙产生的日志,首先我们用-o verbose来查看信息
    在这里插入图片描述
    命令:journalctl -o verbose
    /11364:搜索重启前进程的PID
    可以看到搜索出的信息,_PID=11364(进程号)_SYSTEMD_UNIT=firewalld.service(程序名)
    然后直接用 journalctl 命令加上这两个信息
    在这里插入图片描述
    查询出的信息就是属于PID:11364 的日志
用journald服务永久存放日志

因为journald服务日志存放的路径 /run/log/journal 里,上面也说过重启系统会清空日志,所以我们如果需要永久保存这些日志,需要建立新的采集路径

步骤说明
mkdir /var/log/journal创建日志采集的目录
chgrp systemd-journal /var/log/journal修改目录的拥有组为systemd-journal
chmod 2775 /var/log/journal修改目录的权限为rwxrwxr-x,并开启group位的超级权限s表示该目录下创建的文件拥有组都属于上一步设定的systemd-journal组
systemctl restart systemd-journald.service重启服务

在这里插入图片描述
设置完后,我们再去看 /run/log 里面已经没有journal 这个目录了,然后我们重启系统用 “journalctl” 看之前的日志是否会保存下来
在这里插入图片描述


rsyslog.service

rsyslog是具有一定定制性的日志采集服务
rsyslog日志存放路径:

路径说明
/var/log/messages#系统服务日志,常规信息,服务报错
/var/log/secure#系统认证信息日志
/var/log/maillog#系统邮件日志信息
/var/log/cron#系统定时任务信息
/var/log/boot.log#系统启动日志信息

以上文件都是系统自动建立的文件
rsyslog的配置文件:/etc/rsyslog.conf

自定义日志采集路径

自定义日志采集,我们需要设置rsyslog的配置文件
编辑:vim /etc/rsyslog.conf
在这里插入图片描述
看到配置文件下面有RULES,规则设置,
以49行的这个规则为例

authpriv日志的类型
*日志的级别, *表示所有的级别
/var/log/secure指定日志的存放路径

实验测试:
我们写一条采集日志的指定信息和路径
在这里插入图片描述
指定规则将产生的所有日志放进/var/log/test文件下,而且可以使用 “;”“ * . * ” 后面再加一条规则,例如 “ * .* ;authpriv.none ” ,就是采集所有类型的所有级别,但是不采集authpiv。

日志类型说明
auth#用户认证
authpriv#服务认证
cron#时间任务
kern#内核类型
mail#邮件
news#系统更新信息
user#用户
日志级别说明
emerg系统的严重问题日志
alert系统中立即要更改的信息
crit严重级别会导致系统软件不能正常工作
err程序报错
warning程序警告
notice重要信息的普通日志
info普通信息
debug程序排错信息
none不采集任何信息
更改日志采集格式

正常的日志格式我们看到的日志格式是这样的
在这里插入图片描述
这个日志格式我们是可以在配置文件里进行设置
在这里插入图片描述
这里是系统的默认采集格式,我们可以在这里进行自定义格式如下
在这里插入图片描述

TEST格式名称
%FRMHOST-IP%日志来源主机IP
%timegenerated%日志生成时间
%syslogtag%日志生成服务
%msg%日志内容
\n换行

格式设施完后,在日志采集路径后面写入格式名称,使之使用我们设置的格式,如下图所示
在这里插入图片描述
在这里插入图片描述
然后重启服务,再查看test文件,就可以看到我们设置的格式

日志的远程同步

在rsyslog.service服务中,提供了远程日志同步服务,帮助我们去采集其他服务端主机的日志方便查看
实验操作,我们还是准备两个主机
rhel7-work :IPADDR=192.168.0.10 作为日志发送端
rhel8-work :IPADDR=192.168.0.20 作为日志接受端

发送方式分为UDP,TCP,此处我们为了传输效率所以选择UDP传输方式
首先在rhel8-work中设定接受所有人日志,并且关闭火墙防止被拦截

  • systemctl stop firewalld 关闭火墙
  • vim /etc/rsyslog.conf 编辑配置文件
    module(load=“imudp”) # needs to be done just once ##打开日志接受插件
    input(type=“imudp” port=“514”) ##指定插件使用接口
    在这里插入图片描述
    配置完后,重启服务并去查看端口是否开启
    在这里插入图片描述
  • 然后在rnel7-work里设置配置文件发送日志到rhel8-work中
    设置方法我们可以用 “man rsyslog.conf” 查看
    在这里插入图片描述
    格式根据示例来写,@表示UDP传输,@@表示TCP传输,@符之后加的是接收日志的主机IP
    vim /etc/rsyslog.conf
    在这里插入图片描述
  • 写完后,重启服务,我们清空两边的日志文件再测试看效果
    使用命令: /var/log/messages 清空内容
    logger test 加载测试信息
    在这里插入图片描述
    在这里插入图片描述

我们就看到了在rhel7中的测试日志被传输到了rhel8中


系统时间管理

命令:timedatectl 查看系统时间信息
在这里插入图片描述
命令参数

参数说明
set-time##设定系统时间
list-timezones##显示系统的所有时区
set-timezone##设定系统时区
set-local-rtc后面加 0/1 ##设定系统时间计算方式,0表示使用utc时间计算方式,1表示使用local时间

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

时间同步服务

时间同步服务是为了我们在采集其他主机传输的日志时和本机时间保持一致,防止时间差别太大导致无法正确查看日志
服务名称: chronyd.service
配置文件: /etc/chrony.conf
实验操作,还是之前的两台主机
rhel7-work :IPADDR=192.168.0.10 同步rhel8的时间
rhel8-work :IPADDR=192.168.0.20 作为时间源

  • 首先在rhel8-work中,
    配置vim /etc/chrony.conf
    allow 192.168.0.0/24 ##允许192.168.0.0/24网段主机同步时间
    local stratum 10 ##开启时间同步服务器功能并设定级别为10
    在这里插入图片描述
  • 配置完后重启服务,依然关闭火墙,完成后在rhel7-work中配置
    因为这个服务默认时关闭的,所以我们去开启chronyd.service服务,并设置开机自动开启
    在这里插入图片描述
    并且配置vim /etc/chrony.conf,然后重启服务
    在这里插入图片描述

完成上面的配置后在rhel7-work中可以看到时间已经同步了
而且可以用命令 “chronyc sources -v” 查看
在这里插入图片描述
可以看到查看到的信息里显示了^* 192.168.0.20,
根据上面的提示 “ ^ ” 表示服务, “ * ” 已经同步。
这样就完成了服务端可主机的时间同步

但在rhel8中 /etc/chrony.conf 这个配置文件对于接收时间同步方的参数显示是有一些区别的
在这里插入图片描述
对于这个格式我们更改配置的的格式是如下
在这里插入图片描述
这是rhel7和rhel8中的一些配置区别,其他的设置还是一样的


以上讲述就是对Linux的日志管理及日志同步的知识解析,并且包括了系统时间的更改和同步管理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值