Linux中的日志管理

一、journald

服务名称:systemd-journald.service
服务命令:journalctl
默认日志存放路径:/run/log
***注意:***默认日志存放是临时的,重启会后清空!

1、journalctl命令的用法

journalctl
		-n 3				##显示日志的最新三条
		--since "2020-02-13 16:00" 	##显示16:00后的日志
		--until "2020-02-13 16:05"	##显示日志到16:05
		-o				##设定日志的显示方式(默认是short模式)
		#	short		经典模式显示日志
		#	verbose		显示日志的全部字节
		#	export		适合传出和备份的二进制格式
		#	json		js格式显示输出 
		-P				##显示指定级别的日志
		# 0	emerg		系统的严重问题日志 
		# 1	alert		系统中立即要更改的信息 
		# 2	crit		严重级别会导致系统软件不能正常工作
		# 3	err		程序报错
		# 4	warning		程序警告
		# 5	notice		重要信息的普通日志
		# 6	info		普通信息
		# 7	debug		程序排错信息
		-F	PRIORITY		##查看可控日志级别
		-u				##指定查看服务
		--disk-usage			##查看日志大小
		--vacuum-size=1G		##设定日志在系统中可以存放的最大大小
		--vacuum-time=1w		##设定日志在系统中最长可以存放的时间
		-f				##监控日志
		journalctl	_PID=3244 _SYSTEMD_UNIT=sshd.service

(1)查看所有日志

journalctl		##查看所有日志

在这里插入图片描述
(2)查看日志的最新三条

journalctl -n 3    	##显示日志的最新三条

在这里插入图片描述
(3)查看指定时间的日志
a.

journalctl --since "2020-02-13 16:00"  ##显示16:00后的日志

在这里插入图片描述
b.

journalctl --until "2020-02-13 16:05"  ##显示日志到16:05

在这里插入图片描述
(4)设定日志的显示方式

journalctl -o    ##设定日志的显示方式
# rhel7中默认是short模式,rhel8中必须加下面的模式
  	# short  	经典模式显示日志
  	# verbose 	显示日志的全部字节
  	# export  	适合传出和备份的二进制格式
  	# json  	js格式显示输出 

a. short
在这里插入图片描述
b. verbose
在这里插入图片描述
c. export
在这里插入图片描述
d. json
在这里插入图片描述
(5)显示指定级别的日志

journalctl -P    ##显示指定级别的日志

在这里插入图片描述
(6)查看可控日志级别

journalctl -F PRIORITY  ##查看可控日志级别
  # 2 crit  严重级别会导致系统软件不能正常工作
  # 3 err  程序报错
  # 4 warning  程序警告
  # 5 notice  重要信息的普通日志
  # 6 info  普通信息
  # 7 debug  程序排错信息

在这里插入图片描述
(7)查看指定服务

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

在这里插入图片描述
(8)查看日志大小

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

在这里插入图片描述
(9)设定日志可以存放的最大大小和最长时间

journalctl --vacuum-size=1G  ##设定日志在系统中可以存放的最大大小
journalctl --vacuum-time=1w  ##设定日志在系统中最长可以存放的时间

在这里插入图片描述
(10)查找指定PID指定服务的日程

journalctl _PID=3244 _SYSTEMD_UNIT=sshd.service

a.查找服务的详细信息在这里插入图片描述
b.查找指定PID的服务的日志在这里插入图片描述

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

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

mkdir /var/log/journal             
chgrp systemd-journal /var/log/journal   	##设置目录属于组systemd-journal,属于这个组才能被检测到
chmod 2775 /var/log/journal			##设置目录的权限为2775,即让目录下的文件也属于目录所在的组
systemctl restart systemd-journald.service	##重启服务systemd-journald.service

注意: 当服务重启后,日志存放路径会被指定到:/var/log/journal
测试:
1.在操作以上步骤之前查看日志。
2.重启系统。
3.再次查看日志。
4.可以看到重启之前的日志是不会被保存的,只能看到重启之后的日志。
5.完成以上操作后再次重启系统,可以看到重启之前的日志被保存下来的 。

二、rsyslog

服务名称:rsyslog.service
配置文件:/etc/rsyslog.conf
日志存放:

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

1、自定义日志采集路径

vim /etc/rsyslog.conf		#打开配置文件
日志类型.日志级别 		日志存放路径
eg:*.* 				/var/log/yang	#把系统中所有级别的日志存放到yang中
eg:*.*;authpriv.none 		/var/log/yang	#把系统中所有级别的日志存放到yang中,但是authpriv不存放到yang中
日志类型
auth 		#用户认证
authpriv 	#服务认证
cron 		#时间任务
kern		#内核类型
mail 		#邮件
news		#系统更新信息
user 		#用户
日志级别
debug
info
notice
waring
err
crit
alert
emerg
none 

在这里插入图片描述

2、如何更改日志采集格式

(1)定义日志采集格式:

$template yang, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
# yang:			格式名称
# %FROMHOST-IP%:	日志来源主机IP
# %timegenerated%:	日志生成时间
# %syslogtag%: 		日志生成服务
#%msg%: 		日志内容
#\n: 			换行

在这里插入图片描述
(2)设定日志采集格式应用
在这里插入图片描述
(3)可以看到日志采集格式更改了
在这里插入图片描述

3、日志的远程同步

workstation:172.25.254.117 存放日志作为日志接收端,所有人日志都存放到此台主机
yang:172.25.254.217 发送日志到workstation主机中
(1)在workstation中设定接收所有人的日志

systemctl stop firewalld		##关闭火墙
vim /etc/rsyslog.conf
修改以下内容:
rhel7中:
$ModLoad imudp 			##打开日志接受插件
$UDPServerRun 514 		##指定插件使用接口 
rhel8中:
module(load="imudp")
input(type="imudp" port="514")
systemctl restart rsyslog	##重启rsyslog服务
查询端口:
netstat -antlupe | grep rsyslog

在这里插入图片描述

(2)在yang中设定发送日志到workstation中:

vim /etc/rsyslog.conf				##打开配置文件
*.* @172.25.254.117				##设置把所有日志发送到workstation主机
systemctl restart rsyslog			##重启rsyslog服务
# @	表示使用udp传输日志
# @@ 	表示使用tcp传输日志
# @172.25.254.117 把本机日志用udp的传输方式发送到172.25.254.117(yang)主机 

在这里插入图片描述
(3)测试:
在workstation和yang中:

> /var/log/messages		##清空/var/log/messages文件中的所有内容

在yang中:

logger yang hahaha		##用logger来生成日志

在这里插入图片描述
在workstation中可以看到yang中生成的日志
在这里插入图片描述

三、timedatectl

timedatectl set-time "2020-02-13 10:41:55" 	##设定系统时间
timedatectl list-timezones			##显示系统的所有时区
timedatectl set-timezone "Asia/Shanghai"	##设定系统时区
timedatectl set-local-rtc 0|1			##设定系统时间计算方式
						##0表示使用utc时间计算方式
						##1表示使用local时间计算方式   

1、timedatectl 和 list-timezones
在这里插入图片描述
2、set-time
在这里插入图片描述
3、set-timezones
在这里插入图片描述
4、set-local-rtc 0|1
在这里插入图片描述

四、时间同步服务

服务名称:chronyd.service
配置文件:/etc/chrony.conf
***eg:***以workstation为时间源,用yang同步workstation时间。
(1)在workstation中:

vim /etc/chrony.conf			##打开配置文件
allow 172.25.254.0/24 			##允许172.25.254.0网段主机同步时间
local stratum 10 			##开启时间同步服务器功能并设定级别为10
systemctl restart chronyd.service	##重启chronyd.service服务
systemctl stop firewalld		##关闭火墙

在这里插入图片描述
(2)在yang中:

vim /etc/chrony.conf			##打开配置文件
pool 172.25.254.117 iburst		##同步172.25.254.117主机中的时间
systemctl restart chronyd 		##重启chronyd服务

在这里插入图片描述
(3)查看:
使用chronyc 命令查看时间效果:

chronyc sources -v 

yang中的时间已经变成workstation中的时间了。
在这里插入图片描述

发布了15 篇原创文章 · 获赞 3 · 访问量 684

猜你喜欢

转载自blog.csdn.net/weixin_42006882/article/details/104318683