Linux基础学习(十一)之系统日志管理与时间同步

1、journald查看日志

在系统中所有的操作都会被记录为日志,方便以后查看,日志是由运行的程序本身产生的记录的文字。systemd-journald是用来分析或查看日志的。默认日志存放路径是 /run/log。journalctl命令的用法有:
(1)journalctl -n 3 查看日志的最新3条
(2)journalctl --since "2020-05-01 11:00:00" 查看2020年5月1号的11:00后的日志
(3)journalctl --until "2020-05-01 11:05:00" 查看2020年5月1号的11:05前的日志
(4)journalctl -o 查看模式 设定日志的显示方式,一般有四种,分别是short(经典模式),verbose(显示日志的全部字节),export(适合传出和备份的二进制格式),json(js格式显示输出)
(5)journalctl -p 级别显示特定级别的日志,分为8级:

0表示emerg,系统的严重问题日志;1表示alert,系统中立即要更改的信息; 2表示crit,严重级别会导致系统软件不能正常工作;3表示err,程序报错;4表示warning,程序警告;5表示notice,重要信息的普通日志;6表示info,普通信息;7表示debug,程序排错信息。

(6)journalctl -F PRIORITY 查看可控日志级别有哪些
(7)journalctl -u sshd 查看指定的sshd服务
(8)journalctl --disk-usage 查看日志的大小
(9)journalctl --vacuum-size=1G 设定日志存放大小,最大为1G
(10)journalctl --vacuum-time=1w 日志在系统中最长存放时间为1周
(11)journalctl -f 监控日志
(12)journalctl _PID=10924专门查看PID为10924的进程的日志
测试如下图,
在这里插入图片描述
测试的时候细心的同学会发现重启系统后,就无法查看之前的日志了,这是因为日志是在/run里面的,/run下的文件关机开机后,文件会被清理。如果想永久保留日志的话,如图进行下面的步骤,首先我们查看原来日志的存放地点,查看属性如图,首先在/var/log下创建目录journal,把他的权限和拥有组改成和/run/log的一致,重启journald服务,这时重启系统,会发现日志还保留着,是因为存放在了/var/log/journal硬盘里。
在这里插入图片描述

2、rsyslog日志存放

日志都是存放在一起吗?不是的,是分门别类的存储,管理存放的服务叫rsyslog.service,配置文件在/etc/rsyslog.conf,日志的类型大致有以下几种:auth(用户认证),authpriv(服务认证),cron(时间任务),kern(内核类型),mail(邮件),news(系统更新信息),user (用户)。日志的级别分为八级,上面讲过。如图,打开配置文件查看,从38行开始就是存放的规则,格式是日志类型.日志级别,以49行为例,这句话的意思是把服务认证的所有级别的信息存放在/var/log/secure里。52行这里多了一个-,它表示信息实时采集。
在这里插入图片描述
当然我们也可以自定义日志采集路径,如图把认证信息放在/var/log/westos目录里。
在这里插入图片描述

3、日志的远程同步

想象我们在公司中,我们不可能去每个主机查看日志,所以想要把所有主机的日志都发送到一个接收端,在接收端查看日志,这时就需要日志的远程同步。测试前我们需要先设定虚拟机b为接收端,虚拟机a为发送端。测试如图,在接收端b打开配置文件,打开日志接受插件,开放端口514,配置完成后,重启rsyslog。
在这里插入图片描述
如图,在发送端a打开配置文件,设定所有的日志通过udp发送一份给172.25.254.99这个IP的主机,(@表示使用udp传输日志,@@表示使用tcp传输日志),设定完成后,同样重启rsyslog服务
在这里插入图片描述
为了效果明显,我们把两边的存放的以前的日志都清空了,左边是发送端a,右边是接收端b。发送端a使用logger hello linux!命令表示显示hello linux!。可以看到,发送端a可以查看到日志,接收端b也可以查看到日志。
在这里插入图片描述值得注意的是,接收端b这边日志显示的是发送端a的主机名,可是接收端b无法把主机名和ip对应上,所以如何可以更改日志采集的格式呢?通过打开配置文件,如下图看到默认的日志采集格式是RSYSLOG_TraditonalFileFormat。
在这里插入图片描述
现在对默认的格式进行修改,如下图,在接收端b写一个我们的模板格式,命名为WESTOS,显示日志生成时间,日志来源主机IP,生成日志的服务名称和日志内容,最后\n表示换行。
在这里插入图片描述
这时再进行日志的远程同步测试,如下图,格式是我们想要的格式了。
在这里插入图片描述

4、timedatectl时间控制

可以通过timedatectl对时间进行一系列的操作:
(1)timedatectl查看时间
(2)timedatectl set-time "2020-02-13 10:41:55" 设定系统时间为2020年2月13号10点41分55秒
(3)timedatectl list-timezones 显示系统的所有时区
(4)timedatectl set-timezone "Asia/Shanghai" 设定系统时区为亚洲的上海
(5)timedatectl set-local-rtc 0/1 ##设定系统时间计算方式,0表示使用UTC时间计算方式,1表示使用CST时间计算方式
实验如下图,timedatectl查看时间,显示好几个时间,分别是当地时间CST,世界时间UTC,硬件时间RTC,还显示时区为上海,时间是否同步。
在这里插入图片描述

5、时间同步服务chronyd

测试完上面的命令,同学们会有疑问,时间改完了,怎么改回去呢?需要用到时间同步服务了。服务名称是chronyd.service,配置文件是/etc/chrony.conf。假如上面测试名令把虚拟机b的时间更改了,那现在找一个虚拟机a作为对的时间共享给b。如下图,首先虚拟机a要允许其他主机同步自己的时间,这里设置的0.0.0.0/0表示任何主机都可以同步,然后开启时间同步服务器功能并设定级别为10。最后重启chronyd.service服务,为了实验效果,还要关闭火墙。
在这里插入图片描述
在虚拟机b端,打开配置文件,设置同步172.25.254.88的时间。
在这里插入图片描述
查看结果,时间恢复正常了。

在这里插入图片描述也可以通过chronyc sources -v查看效果,如下图,表示同步了172.25.254.88的时间。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值