Linux系统中的日志管理

本文介绍了Linux系统中日志管理的基础知识,包括systemd-journald服务的使用,如查看和重启服务,以及如何通过配置永久保存日志。同时讲解了rsyslog服务的日志存储位置、同步和格式设置。还涉及了时间管理和时间同步,以及chronyd服务的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文学习在Linux中的本地日志管理和多台主机之间的日志管理。


一、基本知识

1、systemd-journald.service服务

服务名称:systemd-journald.service

默认日志存放路径: /run/log
/run/log/journal/e41a2e8b07ec404aa33d3a1e0153a1bb/system.journal
目录的名字是机器码

systemctl status systemd-journald.service查看服务状态
systemctl restart systemd-journald.service重启服务 可用于日志文件被删除时使用,重新出现日志文件但之前的日志消失了
systemctl stop systemd-journald.service 停止服务

2、journalctl命令的用法

[root@localhost ~]# journalctl -n 3  ##日志的最新 3 条
[root@localhost ~]# journalctl --since "2020-11-05 20:10:00" ##显示 20:10:00 后的日志
[root@localhost ~]# journalctl --until "2020-11-05 21:10:00"##显示日志到 21:10:00
[root@localhost ~]# journalctl --since "2020-11-05 20:10:00" --until "2020-11-05 20:20:00"
[root@localhost ~]# journalctl -o short     #经典模式显示日志
[root@localhost ~]# journalctl -o verbose #显示日志的全部字节
[root@localhost ~]# journalctl -o export #适合传出和备份的二进制格式
[root@localhost ~]# journalctl -o json #js 格式显示输出

[root@localhost ~]# journalctl -p 0   ## emerg 系统的严重问题日志
[root@localhost ~]# journalctl -p 1 #alert 系统中立即要更改的信息
[root@localhost ~]# journalctl -p 2 #crit 严重级别会导致系统软件不能正常工作
[root@localhost ~]# journalctl -p 3 #error 程序报错
[root@localhost ~]# journalctl -p 4 #warning 程序警告
[root@localhost ~]# journalctl -p 5 #notice 重要信息的普通日志
[root@localhost ~]# journalctl -p 6 #info 普通信息
[root@localhost ~]# journalctl -p 7 #debug 程序拍错信息
[root@localhost ~]# journalctl -F PRIORITY ##查看可控日志级别
[root@localhost ~]# journalctl -u sshd ##指定查看服务
[root@localhost ~]# journalctl --disk-usage ##查看日志大小占用多大的文件系统journ
[root@localhost ~]# journalctl --vacuum-size=1G ##设定日志存放最大为1G 
[root@localhost ~]# journalctl --vacuum-time=1W ##日志在系统中最长存放时间为一周,可以使用设置以上两个参数来设置回滚
[root@localhost ~]# journalctl -f ##监控日志  journalctl -f
	journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service

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

服务名称:systemd-journald.service
系统中默认日志在:/run/log/journal 中,默认方式在系统重启后日志会被清理,要永久保存日志请完成以下操作:

[root@localhost ~]# mkdir /var/log/journal
[root@localhost ~]# ls /var/log/journal
[root@localhost ~]# chgrp systemd-journal /var/log/journal
[root@localhost ~]# chmod 2755 /var/log/journal   #g+s,继承所属组
[root@localhost ~]# ls /var/log/journal
[root@localhost ~]# systemctl restart systemd-journald
[root@localhost ~]# ls /var/log/journal

设置完成后发现,重启主机后之前的日志记录是可以看见的。

二、rsyslog:日志的存储位置

服务名称:rsyslog.service

1、日志存储路径

/var/log/messages系统服务日志,常规信息,服务报错
/var/log/secure系统认证信息日志
/var/log/maillog系统邮件日志信息
/var/log/cron系统定时任务信息
/var/log/boot.log系统启动日志信息
/etc/rsyslog.conf配置文件(对于日志进行采集并存放到指定位置)

使用vim /etc/rsyslog.conf 进入配置文件:

请添加图片描述
其中:‘* . * ’表示 日志类型.日志级别,后面跟的目录路径为指定的存储路径。
‘* . * ;authpriv.none /var/log/westos’ 表示把系统中所有级别的日志存放到westos中,但是authpriv不存放到westos
带 - 的表示日志全部生成完毕再采集
不带 - 的表示实时采集

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

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

我们在主配置文件里写将所有类型文件写入westos内:

请添加图片描述然后重启rsyslog服务,发现重启服务的日志被写入到了westos中:
请添加图片描述

2、日志同步

@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@172.25.254. 100#把本机日志用udp的传输方式发送到172.25.254.100主机

在日志的发送方:

请添加图片描述然后重启服务: systemctl restart rsyslog.service
日志的接受方:
将19和20行注释取消
请添加图片描述然后在日志接受方重启服务并关闭火墙:
systemctl restart rsyslog.service
systemctl stop firewalld
‘ > /var/log/messages#清空原来日志方便实验
请添加图片描述
可以看到200主机的日志被发送100主机上:

请添加图片描述

3、更改日志格式

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

格式应用:

#vim /etc/rsyslog.conf 进入日志配置文件
.;authpriv.none /var/log/westos;WESTOS #在需要改动的日志后面添加WESTOS,改为WESTOS格式,自定义
请添加图片描述

请添加图片描述此时可以看见日志信息按照我们写的格式保存。

请添加图片描述

3、时间timedatectl

请添加图片描述

1.timedatectl set-time “2020-02-13 10:41:55”##设定系统时间
设置系统时间时NTP service: inactive ,时间同步inactive才可以,否则要执行systemctl stop chronyd.service关闭时间同步
2.timedatectl list-timezones##显示系统的所有时区
3.timedatectl set-timezone “Asia/Shanghai”##设定系统时区

请添加图片描述4.timedatectl set-local-rtc 0|1##设定系统时间计算方式##0表示使用utc时间计算方式,默认为0,不用改动

4、时间同步

#服务名称:chronyd.service
#配置文件:/etc/chrony.conf
用100主机来同步200主机的时间

在100主机上,使用vim /etc/chrony.conf 更改配置文件(别忘了重启服务呦)
systemctl restart chronyd.service

请添加图片描述
在200主机上,vim /etc/chrony.conf,更改完配置文件后重启服务

请添加图片描述
使用chronyc sources -v查看是否同步成功:
请添加图片描述
注意:在时间同步过程中,防火墙服务要关闭!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值