Linux系统中的日志管理

前言:我们都知道,在系统中,日志是非常重要的,因为系统不会讲话,所以会将重大事件用文字记录下来,在日志程序中体现出来,日志分为很多种级别,日志是由各个程序生成的,日志的采集是由journald或rsyslog这两个程序采集的,不同程序采集日志的方式是不一样的,在rhel7之前,只有rsyslog这一个采集程序,而在rhel7及之后由rsyslog和journald负责日志采集。

实验环境

两台虚拟机:
rhel7的ip:192.168.0.116
rhel8的ip:192.168.0.115
在rhtl7虚拟机中去连接rhtl8(ssh root@192.168.0.115 ),从而得到rhtl8的环境

一、journald

日志的服务名称: systemd-journald.service
查看journald服务状态:systemctl status systemd-journald.service
在这里插入图片描述
默认日志存放路径:“/run/log/”,每次重启系统后会清空
日志查看命令:journalctl,该命令查看的默认文件在“/run/log/”下
在这里插入图片描述

实验一、journalctl命令的用法

1、journalctl     						 #直接查看日志
2、journalctl -n 3 						 #查看日志的最新三条
3、journalctl --since “2020-02-13 17:00” #显示17:00后的日志
4、journalctl --since “2020-02-13 17:00” --until “2020-02-13 17:00”  
										#显示17:00~17:01的日志
5、journalctl -o  参数		 #设定日志的显示方式
       			  short		 #经典模式显示日志(也是默认的显示方式)
         		  verbose	 #显示日志的全部字节
       			  export 	 #适合传输和备份的二进制格式
         		  json 		 #js格式显示日志
6、journalctl -p  			 #显示指定级别的日志
   级别有:
          		0 	emerg 	系统的严重问题日志
         		1 	alert	系统中立即要更改的信息
          		2 	crit	严重级别会导致系统软见不能正常工作
          		3 	err	程序报错
          		4 	warning	程序警告
          		5 	notice	重要信息的普通日志
          		6 	info	普通信息
          		7 	debug 	程序排错信息
  例如:journalctl -p emerg/0		#查看系统崩溃日志
7、journalctl -F PRIORITY				#查看可控日志级别
8、journalctl -u						#指定查看服务
  例如:journalctl -u sshd				#查看sshd服务的日志
9、journalctl --disk-usage				#查看日志大小
10、journalctl --vacuum-size=1G			#设定日志存放大小
11、journalctl --vacuum-time=1W			#设定日志在系统中最长存放时间
注意:10、11两条命令可以让日志回滚,但都是临时的,当系统重启以后会消失
永久设置需要修改系统的配置文件,“vim /etc/systemd/journald.conf”
12、journalctl -f	#实时监控日志

1、直接查看日志在这里插入图片描述
2、查看日志的最新三条
在这里插入图片描述

3、查看2020-02-15 6:15后的日志

在这里插入图片描述
4、显示6:30到6:31之间的日志

在这里插入图片描述
5、显示日志的全部字节

在这里插入图片描述
6、显示适合传输和备份的二进制格式在这里插入图片描述
7、js格式显示日志

在这里插入图片描述

8、journal -p 显示指定级别的日志(级别0~7)
journal -p 0=journal -p emerg

在这里插入图片描述
9、查看可控日志级别

在这里插入图片描述
10、指定查看sshd服务的日志

在这里插入图片描述
11、查看日志大小

在这里插入图片描述
12、查看日志存放大小和在系统中最长存放时间(回滚,但是此设定是暂时的,重启以后会失效)

在这里插入图片描述

12、要永久设置回滚需要修改系统文件,“vim /etc/systemd/journald.conf”,部分配置文件如下:

在这里插入图片描述
13、指定条件查看日志:
(1)、journal -o verbose查看日志的全部字节
(2)、journal PID=10722 SYSTEMD UNIT=sshd.service查看进程id为10722的ssh服务的日志

在这里插入图片描述

实验二、用journalctl服务永久存放日志

系统中默认日志存放在:/run/log/journal中
默认方式:在系统重启后日志会被清理,要永久保存日志需要完成以下操作:

1、建立一个目录:mkdir /var/log/journal	#日志存在该文件夹下可以将它存到硬盘
2、对目录的权限进行修改:
  chgrp systemd-journal /var/log/journal	
	#修改文件的拥有组为systemd-journal,保证这个目录中所有的文件都归属于目录的使用者
  chmod 2774  /var/log/journal
3、systemctl restart systemd-journald.service	
	#重启服务,当服务重启日志存放路径会被指定到:/var/log/journal
	测试:
4、reboot 
	#重启系统后,用journalctl命令查看日志,如果能看到文件建立时间到关机时间的日志,
	说明日志永久保留成功

在这里插入图片描述

二、rsyslog

服务名称: rsyslog.service
查看rsyslog服务:systemctl status rsyslog.service
日志存放:rsyslog在采集日志时将日志分类存放

默认日志存放在以下文件中:
/var/log/messages	#存放服务日志,常规信息,服务报错
/var/log/secure		#系统认证信息日志
/var/log/maillog	#系统邮件日志信息
/var/log/cron		#系统定时任务信息
/var/log/boot.log	#系统启动日志信息
注意:1、这些日志可以直接用cat命令查看,rsyslog没有对外提供
	    第二个类似于systemd查看工具去查看,而是直接用文件的查看方式去查看
	 2、rsyslog命令的管理都是依赖于rsyslog的配置文件
	    配置文件存放位置:/etc/rsyslog.conf

实验一、自定义日志采集路径

1、vim /etc/rsyslog.conf 	#修改日志配置文件
	修改格式:日志类型.日志级别 日志存放路径
		例如:*.* /var/log/westos	#把系统中所有类型所有级别的日志存放到westos文件中
		日志类型主要有:auth		#用户认证
					  authpriv	#服务认证
					  cron		#时间任务
					  kern		#内核类型
					  mail		#邮件
					  news		#系统更新信息
					  user		#用户
		日志级别有:
					  emerg 	#系统的严重问题日志
         		      alert		#系统中立即要更改的信息
          		      crit		#严重级别会导致系统软见不能正常工作
                   	  err		#程序报错
          		      warning	#程序警告
          		 	  notice	#重要信息的普通日志
          		 	  info		#普通信息
          		 	  debug 	#程序排错信息
          		 	  none		#什么都不记录
         例如:*.*;authpriv.none
         	  #把系统中所有级别的日志存放到westos中,但是不存放authpriv

1、修改日志配置文件,文件部分内容如下:

vim /etc/rsyslog.conf 	

在这里插入图片描述
2、给配置文件的第55行添加内容:

*.* /var/log/westos		#把系统中所有类型所有级别的日志存放到westos文件中

在这里插入图片描述
3、重启服务,然后查看/var/log/messages文件和/var/log/westos文件的内容,发现两个文件里会产生同样的日志

systemctl restart rsyslog.service
cat /var/log/messages
cat /var/log/westos

在这里插入图片描述

实验二、如何更改日志采集格式

1、查看默认的日志采集格式如下图:cat /var/log/messages
在这里插入图片描述

2、修改日志格式:
例如:

$template WESTOS,“%timegenerated% %FROMHOST-IP% %stslogtag% %msg%\n”
	#这种格式的名字为WESTOS(随便起),该名字所代表的格式为
	“日志生成时间 生成日志的主机IP 生成日志的服务名称 日志内容 ”  

在这里插入图片描述
指定哪个文件使用这种采集格式,
例如:此处修改“/var/log/messages”文件采用这种格式
在这里插入图片描述
3、修改后的日志格式如下图所示:
在这里插入图片描述

三、timedatectl

设置系统时间

1、

timedatectl		#查看时间
				Local time:当前时间(本地时间)
				Universal time:伦敦时间
				RTC time:系统的硬件时间

在这里插入图片描述

2、修改当前系统时间

timedatectl set-time “时间”
例如:timedatectl set-time "2020-02-15 15:25:30"

在这里插入图片描述

3、列出所有系统可用的时区

timedatectl list-timezones

在这里插入图片描述

4、设定时区

timedatectl set-timezone "America/New_York"   	#设定时区为纽约

在这里插入图片描述
5、设定系统时间计算方式

1、vim /etc/adjtime    	#可以看到时间模式的设定
2、timedatectl set-local-rtc 1	#使硬件时间使用的是本地时间(使用普通时间计算方式)
 timedatectl set-local-rtc 0	#使硬件时间使用的是世界时间(使用UTC时间计算方式)

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

四、时间同步服务

怎样才能使所有主机中的时间保持一致,我们可以把其中一台主机的时间共享出来,其他主机去看该主机共享的时间,并且同步到自己的主机中,让这些主机的时间保持一致,这样在做认证和日志分析的时候才能不受时间影响
服务名称:chronyed.service
配置文件:/etc/chrony.conf

实验一、远程同步时间

1、可以看到rhel7中的时间为 15:37:26,而rhel8主机中的时间为 23:37:52,怎样才能使这两台主机的时间保持一致。使rhel7作为时间源,让rhel8主机去同步rhel7的时间
在这里插入图片描述

在这里插入图片描述
2、在rhel7中修改配置文件:

1、vim /etc/chrony.conf
2、修改第26行、29行
	26:允许主机ip的前三位和该行指定的前三位相同,那么该主机就可以来同步rhel7的时间
	29:开启时间同步服务器功能并设定级别为10

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
4、关闭rhel7的防火墙并重启服务

在这里插入图片描述
5、在rhel8中:

1、systemctl start chronyd.service	#开启chrony服务
2、chronyc source -v	#查看rhel8同步了哪台主机的时间

在这里插入图片描述6、编辑配置文件

编辑前:
在这里插入图片描述
编辑后:图中的iburst表示当服务重启的时候立即同步时间到本台主机
在这里插入图片描述

7、重启服务,可以看到时间已经变成了rhel7中的时间,并且可以看到同步了rhel7的时间

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值