linux系统中日志管理(利用日志进行排错)

一、.journald

服务名称:systemd-journald.service
journalctl
默认日志存放路径: /run/log
在这里插入图片描述
journal 老牌的日志管理命令

1 journalctl命令的用法

journalctl 注释
-n 3 日志的最新3条
–since “2020-05-01 11:00:00” 显示11:00后的日志
–until “2020-05-01 11:05:00” 显示日志到11:05
-o 设定日志的显示方式
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 sshd 指定查看服务
–disk-usage 查看日志大小
–vacuum-size=1G 设定日志存放大小
–vacuum-time=1W 日志在系统中最长存放时间
-f 监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service

日志回滚

当设置了日志存放大小之后和存放时间之后,其能保证日志的新,空间能够一直存最新的日志,旧的会被清掉,

--vacuum-size=1G		设定日志存放大小
--vacuum-time=1W	日志在系统中最长存放时间

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

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

永久保存日志

mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service
当服务重启日志存放路径会被制定到:/var/log/journal

测试:
1.在操作以上步骤之前查看日志
2.重启系统
3.再次查看日志
4.可以看到日志是不会被保存下来的只能看到重启之后的日志
5.完成以上操作后再次重启系统可以看到日志是被保存下来的
rsyslog.service 新的日志管理命令

二、.rsyslog

服务名称:rsyslog.service
日志存放:

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

1.自定义日志采集路径

vim /etc/rsyslog.conf

日志类型.日志级别 日志存放路径

*.* /var/log/westos
把系统中所有级别的日志存放到westos中
*.*;authpriv.none /var/log/westos
把系统中所有级别的日志存放到westos中
但是authpriv不存放到westos中

日志类型

auth		#用户认证
authpriv	#服务认证
cron		#时间任务
kern		#内核类型
mail		#邮件
news		#系统更新信息
user		#用户

日志级别

debug		#程序排错信息
info		#程序常规运行信息
notice		#重要信息的普通日志
waring		#程序警告
err		#程序报错
crit		#严重级别会导致系统软件不能正常工作
alert		#系统中立即要更改的信息
emerg		#系统的严重问题日志
none		#不采集

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

2.1定义日志采集格式

$template WESTOS_FORMAT, “%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n”

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

2.2设定日志采集格式应用

*.*;authpriv.none /var/log/westos;WESTOS

module(load="builtin:omfile" Template="WESTOS_FORMAT")##默认采用WESTOS_FORMAT格式
vim /etc/rsyslog.conf
在这里插入图片描述systemctl restart rsyslog.service
日志的内容会以设定的格式出现,ip 生成时间,服务,内容
在这里插入图片描述

2.3.日志的远程同步

22主机 192.168.1.22存放日志作为日志接受端,所有人日志都存放到此台主机
34主机 192.168.1.34发送日志到22主机中

1.在22主机中设定接受所有人的日志
1systemctl stop firewalld

2vim /etc/rsyslog.conf
19 module(load=“imudp”) ##打开日志接受插件
20 input(type=“imudp” port=“514”) ##指定插件使用接口

3systemctl restart rsyslog

4查询端口:
在这里插入图片描述接受端打开514端口即可

2.34主机中设定发送日志到22主机中
1vim /etc/rsyslog.conf
*.* @192.168.1.22

2systemctl restart rsyslog

@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@192.168.1.34 把本机日志用udp的传输方式发送到192.168.1.34主机

测试:
在22主机和34主机中
> /var/log/messages
在22主机中可以看到34主机生成的日志!!

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

三、.timedatectl

RTC time :硬件时间
硬件时间+时区=系统时间
Universal time: 格林威治时间:标准时间,
NTP service : 时间同步服务
TIME zone : 时区

在这里插入图片描述
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时间计算方式

四、.时间同步服务(NTP service)

服务名称: chronyd.service
配置文件: /etc/chrony.conf

在34(—server)作为时间源22(—client)同步34时间

在34(---->server)中

vim /etc/chrony.conf
在这里插入图片描述

systemctl restart chronyd.service
(注:最好设定服务开机自启 systemctl enable --now chronyd.service)
systemctl stop firewalld

在22(---->client)中
vim /etc/chrony.conf

pool 192.168.1.34 iburst

systemctl restart chronyd

查看:
在22中查看时间:
现实已经变成34中时间
使用chronyc 命令查看时间效果:
在这里插入图片描述

在这里插入图片描述
注:
1.如果客户端在配置文件中写的是域名,则要在/etc/hosts文件中写上相应的域名和IP的解析
2.timedatectl set-local-rtc 0|1 ##设定系统时间计算方式
##0表示使用utc时间计算方式
可能影响时间同步

猜你喜欢

转载自blog.csdn.net/ninimino/article/details/109499080