(三)Linux系统中的日志管理2021-11-04

实验环境

systemctl stop firewalld

一、journald

服务名称:systemd-journald.service

默认日志存放路径: /run/log

#用命令查看服务状态
在这里插入图片描述
#默认存放路径:目录的名字是机器码,在机器码目录下存放日志文件,文件格式是在线文件
在这里插入图片描述
#一旦删除文件再重启systemd-journald.service服务就会重新生成新文件,之前的日志数据就没有了。
在这里插入图片描述

1、journalctl命令的用法

journalctl 							      ##显示日志
journalctl -n 3   						  ##显示日志的最新3条
journalctl --since "2021-01-20 10:00:00“  ##显示10:00后的日志
journalctl --until "2021-01-20 10:05:59"  ##显示日志到10:05

journalctl -o  #设定日志的显示方式,有以下选择
     	       short   ##标准经典模式显示日志
               verbose ##显示日志的全部字节
               export  ##适合传出和备份的二进制格式
               json    ##js格式显示输出

journalctl -p
      		  ##0     emerg 系统的严重问题日志 
     		  ##1     alert 系统中立即要更改的信息
     		  ##2     crit  严重级别会导致系统软件不能正常工作,有些硬件没有导致软件不正常
      		  ##3     err   程序报错
      		  ##4     warning 程序警告
       		  ##5     notice 重要信息的普通日志,正常日志
              ##6     info  普通信息
              ##7     debug 程序报错信息
              
journalctl -F  PRIORITY  	 ##查看可控日志级别
journalctl -u  sshd      	 ##指定查看服务如sshd
journalctl --disk-usage      ##查看日志大小
journalctl --vacuum-size=1G  ##设定日志存放大小,一共用了多少硬盘来存储日志
journalctl --vacuum-time=1W  ##日志在系统中最长存放时间
journalctl -f                ##监控日志,生成一封显示查看一封
journalctl _PID=893          ##查看关于PID=893的日志

在这个实验前,我们先对上一章讲到的sshd配置文件做一个修改

vim /etc/ssh/sshd_config
#将文件中的第一行的注释符合去掉,就是故意让它出错,之后记得恢复文件。
systemctl restart sshd

1、journal命令

在这里插入图片描述

2、journalctl -n 3 显示日志最新3条

在这里插入图片描述

3、 journalctl --since 和 --until可以单独也可以一起用 显示从某时间到某时间的日志

在这里插入图片描述

4、journalctl -o ##设定日志的显示方式

short 标准经典模式显示日志
在这里插入图片描述verbose 显示日志的全部字节
在这里插入图片描述

5、journalctl -p

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

下图里的报错信息是修改sshd_config文件的原因
在这里插入图片描述

6、journalctl -F PRIORITY #查看可控日志级别

在这里插入图片描述

7、journalctl -u sshd ##查看指定服务

在这里插入图片描述

8、journalctl --disk usage ##查看日志大小

journalctl --vacuum-size=1G ##设定日志存放大小
journalctl --vacuum-time=1w ##设定日志在系统中最长存放一周
journalctl -f ##监控日志,生成一封显示一封查看一封

在这里插入图片描述### 9、journalctl _PID=3003 ##查看PID为3003的日志
查询sshd服务的状态查询到进程的PID为3003
在用命令查询3003的日志,从日志中的报错可以看到错误出现在修改/etc/ssh/sshd_config文件的第一行,做完实验后我们把文件修改回来
在这里插入图片描述

2、用journald服务永久存放日志

  • 系统默认日志是存放在 /run/log/journal 中
  • 默认方式在重启系统后日志会被清理

先用mkdir 建立存储日志的目录
再用chgrp 将文件的组更改为systemd-journal
chmod 2775 保证目录新出现的文件也属于这个组
在这里插入图片描述重启服务后可以看到日志存放的路径已经改变到/var/log/journal
在这里插入图片描述完成上面操作后,重启系统可以看到日志被保存下来

二、rsyslog

rsyslog是采集日志

服务名称:rsyslog.service

配置文件:/etc/rsyslog.conf

日志存放:

文件内容
/var/log/messages系统服务日志,常规信息,服务报错
/var/log/secure系统认证信息日志
/var/log/maillog系统邮件日志信息
/var/log/cron系统定时任务信息
/var/log/boot.log系统启动日志信息

我们可以先清空系统服务日志messages文件,重启一下sshd服务,再查看系统服务日志有没有记录重启sshd服务。

在这里插入图片描述然后关掉rsyslog服务,再重复上面的操作,就不会采集系统服务日志了
在这里插入图片描述

1、自定义日志采集路径

vim /etc/rsyslog.conf
#把系统中所有级别的日志存放到westos中

在这里插入图片描述重启rsyslog服务后可以看到生成的westos文件
在这里插入图片描述在200主机先清空之前的日志,之后在100主机登录200主机
在这里插入图片描述在200主机上能查看到日志信息
在这里插入图片描述
在这里插入图片描述#把系统中所有级别的日志存放到westos中,但认证服务不存放
在这里插入图片描述

2、监控其他主机的日志(日志同步)

实验需要两台主机分别为发送方和接收方

1、发送方为200主机

vim /etc/rsyslog.conf
编辑内容:1、19和20行去掉注释
		 2、47行添加内容*.*;              @172.25.254.100

在这里插入图片描述在这里插入图片描述 修改文件后重启服务

systemctl restart rsyslog.service

2、接收方为100主机

vim /etc/rsyslog.conf
编辑内容:19和20行去掉注释

在这里插入图片描述修改文件后i重启服务并关闭接收方防火墙

systemctl restart rsyslog.service
systemctl stop firewalld.service

3、将两个主机的系统服务日志文件都清空,即/ var / log / messages文件

 > /var/log/messages

4、在发送方200执行logger命令发送westos test
在两个主机的系统服务日志都可以看到记录
在这里插入图片描述在这里插入图片描述

3、更改日志采集格式

日志采集格式指令:

指令作用
%FROMHOST-IP%显示日志来源主机 IP
%timegenerated%显示日志生成时间
%syslogtag%显示日志生成服务
%msg%显示日志内容
\n换行符

设定日志采集格式

在接收方100上设定格式

vim /etc/rsyslog.conf
编辑内容:34行 $template WESTOS"%FROMHOST-IP\n%
		 	设置采集格式WESTOS,指定显示日志来源主机ip并添加换行符
		 	
		 47行 *.。。。            /var/log/messages;WESTOS
								指定日志采集格式为WESTOS

在这里插入图片描述在这里插入图片描述
每次修改文件后都要重启rsyslog.service

systemctl restart rsyslog.service 

在200发送端发送 test

[root@westoslinux200 ~]# logger test

能在100接收端查看到,即日志的最后一条来源是200主机
在这里插入图片描述注:设置采集格式可以添加多个指令,每个指令之间空格隔开

也可以将我们自己设定的采集格式设置为默认格式

vim /etc/rsyslog.conf
修改第33行,就默认格式改为WESTOS格式

在这里插入图片描述

三、timedatectl

在这里插入图片描述
其中:
当前时间 Local time CST
世界时间 Universal time UTC
硬件时间RTC time
时区 Time zone
System clock synchronized: no当前时间是否和别人同步过
NTP service: inactive 时间同步服务是否激活
RTC in local TZ: no 本地时间是否作为硬件时间

1)设定系统时间
timedatectl set-time ”time"
需要关闭时间同步服务,否则设定失败
在这里插入图片描述
2)设定系统时区

timedatectl list-timezones	##显示系统的所有时区

在这里插入图片描述
把列表里的第一个地区设置为系统时区
在这里插入图片描述

timedatectl set-timezone “Asia/Shanghai”##实验后时区还是改为上海

3)设定系统时间计算方式

timedatectl set-local-rtc 0|1##0表示使用utc时间计算方式,默认为0,不用改动

实现时间同步

100主机之前已经重新设置系统时间了,现在想让200主机与100时间同步

在100主机上

vim /etc/chrony.conf

允许所有网络的主机与100同步
在这里插入图片描述
计时器等级为10
在这里插入图片描述
修改后关闭100火墙并重启时间同步服务
在这里插入图片描述

systemctl restart chronyd.service

在200主机上

vim /etc/chrony.conf

在这里插入图片描述
修改后重启时间同步服务
在这里插入图片描述

可以看到200主机的时间同步了100主机
在这里插入图片描述
用chronyc source -v 可以查看到时间同步源为100主机
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值