RH124-Linux系统中的日志管理

Linux系统中的日志管理

一.实验环境:

与前面的实验环境大致相同,还是需要两台主机,并且两台主机可以互相通信,我选择的是两台虚拟机,一台的IPADRRES是172.25.254.100(充当客户端),另一台是172.25.254.200(充当服务器),在实验开始之前要先关闭防火墙,以下是命令:

命令 效果
systemctl disable firewalld 关闭防火墙
systemctl stop firewalld 关闭防火墙

用命令关闭后可以用reboot重启,之后在实验结束后用restart还原

二.journald:

journald服务名称:systemd-journald.service
默认日志存放路径:/run/log
journalctl命令可以对于日志进行查看与修改:

命令 操作
journalctl -n 3 日志的最新三条
journalctl --since “2021-2-2 12:12:02” 显示2021年2月2日12点12分2秒后的日志
journalctl --until “2021-2-2 12:12:02” 显示日志到2021年2月2日12点12分2秒,可以与–since结合使用,表示显示时间区间内的日志

[1]journalctl -n 数字x:显示日志最新x条:
在这里插入图片描述
[2]journalctl --since:从时间点开始显示:
在这里插入图片描述
[3]journalctl --until:显示至某时间点:
在这里插入图片描述
与–since一起使用表示显示时间区间内的日志:
在这里插入图片描述
journalctl -o 可以设定日志的显示方式:

命令 效果
journalctl -o short 经典模式显示日志
journalctl -o verbose 显示日志全部字节
journalctl -o export 结合传出和备份的二进制格式
journalctl -o json js格式显示输出

[1]journalctl -o short:经典模式显示日志:
在这里插入图片描述
[2]journalctl -o verbose:显示日志全部字节:
在这里插入图片描述
[3]journalctl -o export:结合传出和备份的二进制格式:
在这里插入图片描述
[4]journalctl -o json:js格式显示输出:
在这里插入图片描述
journalctl -p可以显示制定级别的日志,对于所制定的级别有:

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

级别越高对应的危险性越低,同时日志显示的信息也越多:
定制级为0到3的日志:
在这里插入图片描述
定制级为4的日志:
在这里插入图片描述
定制级为5的日志:
在这里插入图片描述
定制级为6的日志:
在这里插入图片描述
定制级为7的日志:
在这里插入图片描述
journalctl还有一些其他的常用命令:

命令 效果
journalctl -F PRIORITY 查看可控日志级别
journalctl -u sshd 查看指定服务
journalctl --disk-usage 查看日志大小
journalctl --vacuum-size=1G 设定日志存放大小
journalctl --vacuum-time=1W 日志在系统中最长存放时间
journalctl -f 监控日志

[1]journalctl -F PRIORITY查看可控日志级别:
在这里插入图片描述
[2]journalctl -u sshd查看指定服务:
在这里插入图片描述
[3]journalctl --disk-usage查看日志大小:
在这里插入图片描述
[4]journalctl --vacuum-size设定日志存放大小以及journalctl --vacuum-time设定日志在系统中存放的最长时间:
在这里插入图片描述
[5]journalctl -f监控日志:
在这里插入图片描述

三.用journald服务永久存放日志:

系统中默认日志在:/run/log/journal中,默认方式在系统重启后日志会被清理,要永久保存日志要完成以下操作:
在这里插入图片描述
修改权限为2775目的就是为了防止系统自删除文件
在这里插入图片描述
当服务重启日志存放路径会被指定至:/var/log/journal
完成之后进行实验测试:
[1]在操作以上步骤之前就先查看日志
[2]重启系统
[3]再次查看日志,对比之前的日志发现无法被保存
[5]完成以上操作之后再次重启系统可以看到日志是被保存下来的:
在这里插入图片描述

四.rsyslog:

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

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

在实验前要先用> /var/log/messages清空日志后配置/etc/rsyslog.conf后进行,/etc/rsyslog.conf界面:
在这里插入图片描述
在配置文件之前需要清空之前的日志,并且在每一次配置完/etc/rsyslog.conf之后都要restart服务才能出现效果:

1.自定义日志采集路径:

采集模式:

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

对于日志级别有:

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

对于日志类型有:

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

采集什么类型外或什么级别外的日志用命令:

日志类型.日志级别;日志类型.none 	目标地址
日志类型.日志级别;none.日志类型 	目标地址

如:将服务认证之外的日志存入/var/log/westos目录下

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

实验示例:在/etc/rsyslog.conf中的一行编辑内容如下:
在这里插入图片描述
编辑结束之后退出保存,重启后看实验效果:
在这里插入图片描述

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

在更改日志采集格式时,需要重新定义格式时,要用到以下参数来修改:

操作 效果
%FROMHOST-IP% 日志来源于主机ip
%timegenerated% 日志生成时间
%syslogtag% 日志生成服务
%msg% 日志内容
\n: 换行

[1]设定日志格式为只显示主机IP和时间的日志格式:
编辑格式修改:
在这里插入图片描述
编辑指定对象修改:
在这里插入图片描述
效果:
在这里插入图片描述

[2]设定默认格式为一种显示顺序为:时间,ip,内容,服务,换行的格式:
编辑指定格式:
在这里插入图片描述
效果:
在这里插入图片描述

五.日志的远程同步:

本实验环境中共两台虚拟机,一台ip为172.25.254.100另一台ip为172.25.254.200,在本次实验中,将172.25.254.100当成接收端,将172.25.254.200当成发送端,则:
[1]在172.25.254.100中设置接受端的日志:

systemctl disable --now firewalld
vim /etc/rsyslog.conf

编辑配置文件,需要改动的地方在:
在这里插入图片描述
在19,20行中修改,分别删除前面第一个#,19行修改意义为打开日志接受插件,20行修改意义为指定插件使用接口
[2]使用重启命令:

systemctl restart rsyslog.service

之后再用命令查询端口:

netstat -anlutpe | grep rsyslog

在这里插入图片描述
可以看到在172.25.254.100这台虚拟机中的接受端口是514(默认端口是514)
[3]打开172.25.254.200并设定发送日志到172.25.254.100:
在172.25.254.200中先设定配置文件如下:
在这里插入图片描述
然后将防火墙关闭将rsyslog重启之后在172.25.254.100中使用监控命令查看日志传输是否正常:

watch -n 1 "tail -n 10 /var/log/messages"

在172.25.254.200中用logger命令传输日志:
在这里插入图片描述
在172.25.254.100中接受的效果:
在这里插入图片描述

六.timedatectl:

timedatectl命令可以用于查看系统的时间,硬件时间。地方时等时间信息以及属性:

命令 效果
timedatectl set-time “2021-2-2 12:12:12” 设定系统时间为2021年2月2日12时12分12秒
timedatectl list-timezones 显示系统的所有时区
timedatectl set-timezone “Asia/Shanghai” 设定系统时区为亚洲上海
timedatectl set-local-rtc 0 设定系统时间计算方式不为地方时间
timedatectl set-local-rtc 1 设定系统时间计算方式不为地方时间

[1]timedatectl界面:
在这里插入图片描述
[2]timedatectl list-timezones查看时区以及timedatectl set-timezone设置时区:
在这里插入图片描述
在这里插入图片描述

[3] timedatectl set-local-rtc 0/1,设定系统时间计算方式是否为地方时间:
在这里插入图片描述
在这里插入图片描述
设置系统时间为地方时之后会出现警告,原因是国际上许多协议的传输均使用的是硬件时间,如果改为地方时,则可能会在协议传输的过程中出现错误

七.时间同步服务:

服务名称:chronyd.service
配置文件:/etc/chrony.conf
在172.25.254.200中的执行命令vim /etc/chrony.conf之后进行文件的编辑如下:
在这里插入图片描述
去掉23,26行前面的#之后在13行修改为allow 0.0.0.0/0(指所有网段均可接收),在26行去掉#之意义为开启时间同步服务器功能并设定级别为10
[2]在172.25.254.200中重启chronyd服务并关闭防火墙,在172.25.254.100中配置/etc/chrony.conf文件编辑如下:

把原本在文件中的第3行的内容复制后放入#放入第4行内以便于恢复,在第3行添加:

pool 172.25.254.200 iburst

在这里插入图片描述
然后保存退出之后重启服务并关闭火墙
[3]查看两台虚拟机当前的时间信息,在172.25.254.100中用timedatectl与172.25.254.200对比:
在172.25.254.200中明显可以看到系统时间跟硬件时间不同步:
在这里插入图片描述
在172.25.254.100中可以看到其系统时间与172.25.254.200系统时间相同:
在这里插入图片描述
chronyc sources -v查看时间效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46702804/article/details/112980158