Linux基础篇之企业级日志管理及优化方式


实验环境:

  • rhel7IP:192.168.0.40
  • rhel8IP:192.168.0.41
    什么是日志文件呢?
    简单来说,就是记录系统活动信息的几个文件,例如:何时何地何人,做了什么操作。也就是记录系统在什么时候由哪个进程做了什么样的行为时,发生了何种的事件等。对系统的日志文件的分析和备份是一个系统管理员必须掌握的。

journald

服务名称:systemd-journald.service
日志查看工具:journalctl
默认日志存放路径: /run/log

journalctl命令

用法:

参数作用
直接使用查看日志
-n a查看最新的a条日志
- -since “2020-02-13 17:00”显示17:00后的日志
- -until “2020-02-13 17:00”显示日志到17:00
-o设定日志的显示方式
-p#显示制定级别的日志
-F PRIORITY查看可控日志级别
-u (sshd)#指定查看服务
- -disk-usage查看日志大小
–vacuum-size=1G设定日志存放大小 为1G
–vacumm-time=1W日志在系统中最长存放时间
-f监控日志

常用日志的显示方式:

short经典模式显示日志
verbose显示日志的全部字节
export适合传出和备份的二进制格式
jsonjs格式显示输出

日志级别:

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

a.使用journalctl直接查看日志
在这里插入图片描述
可以使用 journalctl -n 3来查看最新的3条日志:
在这里插入图片描述
为了效果明显,我们重启sshd服务,查看日志产生效果:
在这里插入图片描述
这里要注意的是:systemd-journald.service是必须自动开启。
使用–since "2020-02-14 03:30来查看2020-02-14 03:30以后的日志:
在这里插入图片描述
使用–until“2020-02-14 03:30”来查看到2020-02-14 03:30产生的日志:
在这里插入图片描述
使用journalctl -o来指定日志的显示方式:
1.使用journalctl -o short来指定经典模式显示日志 :
在这里插入图片描述
2.使用journalctl -o verbose 显示日志的全部字节 :
在这里插入图片描述
3.使用journalctl -o export 适合传出可备份的二进制格式

在这里插入图片描述
4.使用journalctl -o json js格式显示输出
在这里插入图片描述
使用journalctl -p 显示制定级别的日志 :
journalctl -p 等级 / journalctl -p 等级名称,这里只演示journalctl -p 等级

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

使用 journalctl -F PRIORITY 来查看可控日志级别:
在这里插入图片描述
可以看到我们可控的级别为2 3 4 5 6 7。
journalctl -u 服务查看指定服务的日志

通过 journalctl -u sshd 查看ssh服务的的日志:
在这里插入图片描述
journalctl --disk-usage 查看日志大小
在这里插入图片描述
我们可以看到,日志大小为8M。现在面临的问题为日志会越来越大,总有一天磁盘装不下日志,所以我们要对日志设置回滚(滚动存储)

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

但是!以上两个设置为临时设置,但系统重启后,设置会失效。
若要使其永久生效,我们需要修改日志配置文件:/etc/systemd/journald.conf
在这里插入图片描述
journalctl -f 监控日志
在这里插入图片描述
如果有下边情况:
在这里插入图片描述
这里我们想查看pid为15472sshd的进程,当我们使用journalctl -u sshd查看时,我们发现,有关sshd的日志全部列了出来。
在这里插入图片描述
所以,我们可以用journalctl -o verbose 查看日志全部字节:
在这里插入图片描述
用/15472查找与pid有关的日志看到_SYSTEM UNIT=sshd.service
所以我们确定了两个搜索条件:第一个为PID=15472 第二个为SYSTEM UNIT=sshd.service所以我们可以使用journalctl _PID=15472 _SYSTEMD_UNIT=sshd.service
来查看我们的目标日志:
在这里插入图片描述

用journald服务永久存放日志

系统中默认日志在:/run/log/journal中
默认方式在系统重启后日志会被清理,只会显示系统重启以后的日志。
如果要想永久的存放日志,我们需要mkdir /var/log/journal建立目录
对所建立目录的所有组进行修改:chgrp systemd-journal /var/log/journal将直接将日志存放至硬盘,实验永久存放。
对其权限进行修改:chmod 2774 /var/log/journal使systemd-journal组成员能对目录进行可写。
在这里插入图片描述
接着重启 systemd-journald.service:systemctl restart systemd-journald.service 查看我们建立的目录下的文件:
在这里插入图片描述
产生了日志文件。重启系统后,我们可以看到重启前的日志。注意:新建目录/var/log/journal后重启systemd-journald.service服务后,系统中默认日志/run/log/journa就会被自动删除,如果将我们新建的/var/log/journal删除后重启systemd-journald.service后/run/log/journa会自动恢复!

如果担心存放的日志文件过大,可以使用上个实验的方法
–vacuum-size=1G和–vacumm-time=1W对日志文件进行永久设定,方法如前所述。

rsyslog

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

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

rsyslog没有提供日志查看工具,是以文件的形式查看日志,使用cat即可直接查看。
使用cat /var/log/message即可查看系统服务日志:

在这里插入图片描述
rsyslog的配置文件是:/etc/rsyslog.conf
在这里插入图片描述通过对其配置文件的查看,我们可以看到rsyslog日志的存放规则:不同类型日志存放在不同位置:
在这里插入图片描述

所以我们可以通过修改规则来实现自定义日志采集路径。

自定义日志采集路径

将所有类型的所有级别日志自定义存放在 /var/log/westos :
在这里插入图片描述
在这里插入图片描述
日志类型和日志级别:

常用日志类型
auth用户认证
authpriv服务认证
cron时间任务
kern内核类型产生信息的地方
mail邮件收发有关的信息
news系统更新信息
user用户

比如,将服务认证的所有级别日志存放在/var/log/westos:
在这里插入图片描述
在这里插入图片描述
日志级别:

emerg系统的严重问题日志
alert系统中立即要更改的信息
crit严重级别会导致系统软件不能正常工作
err程序报错
warning程序警告
notice重要信息的普通日志
info普通信息
debug程序拍错信息
none不做任何操作

例如我们将除服务认证日志的所有等级的所有日志全部存放在/var/log/westos:在这里插入图片描述

在这里插入图片描述
日志采集的格式为
在这里插入图片描述
那么我们怎么样修改日志采集的格式?

如何更改日志采集格式

在rsyslog的配置文件中,我们可以看到系统的默认日志采集方式:
在这里插入图片描述
如果我们先要奶系统日志采集格式:我们可以修改配置文件:
在这里插入图片描述
将我们定义的格式名称添加到日志存放路径后,指定message日志以WESTOS格式输出。在这里插入图片描述
保存退出后,重启rsyslog.service,查看/var/log/message日志,可以看到,message是以我们定义的WESTOS格式采集输出。
在这里插入图片描述

日志的远程同步

实验环境依然是rhel7和rhel8两台主机,来模拟将其他主机的日志远程同步到rhel7中。

  • rhel7_node1:192.168.0.41 存放日志作为日志接受端,所有人日志都存放到此台主机。
  • rhel8_node1:192.168.0.40 发送日志到rhel7_node1主机中。

在rsyslog的配置文件rsyslog.conf中的第15和16行是远程同步的的配置
15 $ModLoad imudp 为打开日志接受插件
16 $UDPServerRun 514 为指定插件使用接口
在这里插入图片描述
可以看到,默认前边带标注号# 关闭状态,我们只需要将这两个#号删除并保存退出。

在这里插入图片描述
重启服务:systemctl restart rsyslog.service
使用命令netstat -antlupe | grep rsyslog 查看rsyslog的每一个网络接口设备的状态信息:
在这里插入图片描述
可以看到514接口已经打开。接收端配置完成。接下来配置发送端,在rhel8中进行操作。
在这里插入图片描述
可以看到,发送端rhel8中的网络是可以和接收端rhel7中的网络是能够进行通讯。注意,提前关闭接收端的火墙。
同样,编辑rsyslog的配置文件rsyslog.service
可以通过 man 5 rsyslog.conf查看使用方法
在这里插入图片描述可以看到,是用@代表的是udp传输协议,@@为使用tcp传输协议。我们这里使用的是udp协议。
所以在发送端rhel8中对配置文件做如下编辑:

在这里插入图片描述
重启rsyslog.service。并清空两边message日志,使用logger日志测试工具,
logger hahatest,并查看效果。
发送端rhel8:
在这里插入图片描述
接收端rhel7:
在这里插入图片描述
可以看到接收端rhel7成功接收到了发送端rhel8的日志文件。这里我们使用了两台主机做实验,其实实际应用中,几百台主机的日志同步和两台主机间的日志同步操作是相同的。

timedatectl

timedatectl 主要用来操作系统日期和时间的一个命令。
可以使用timedatectl 直接查看系统的时间:
在这里插入图片描述

通过timedatectl set-time "2020-02-14 20:48"设定当前系统时间:

在这里插入图片描述
可以使用timedatectl list-timezones显示系统所有时区:
在这里插入图片描述
使用timedatectl set-timezone "Asia/Shanghai" 设定系统时区为亚洲上海。

我们使用的UTC时间会更改硬件时间,这样的话如果我们的电脑装了双系统,另外一个系统的时间就会错乱。所以,当我们更改系统的计时方式为local模式。
/etc/adjtime为系统时间模式的设定
在这里插入图片描述
使用timedatectl set-local-rtc 0 设置系统计时方式为UTC时间。
在这里插入图片描述
在这里插入图片描述
使用timedatectl set-local-rtc 1设置系统时间为local时间:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间同步服务

当前rhel7系统时间为:
在这里插入图片描述
当前rehl8系统时间:
在这里插入图片描述
如果是在企业里,我们怎样使所有的主机时间保持一致?
我们可以将一台主机的时间共享出来,其他主机同步这个主机的时间即可。
我们上边已经将rhel7主机的时间配置正确,所以我们可以用rhel7当作时间源。使用rhel8进行同步。
Chrony是NTP(Network Time Protocol,网络时间协议,服务器时间同步的一种协议)的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。
服务名称: chronyd.service
在rhel7中我们可以更改其默认配置文件: /etc/chrony.conf
在这里插入图片描述
允许172.25.254.0网段主机同步时间 :
在这里插入图片描述
开启时间同步服务器功能并设定级别为10 :在这里插入图片描述
编辑后保存退出。关闭火墙并重启服务 chronyd.service 。
我们在时间源主机rhel7的设定就结束。
在rhel8中:
编辑配置文件: /etc/chrony.conf
在这里插入图片描述
更改为:
在这里插入图片描述
重启服务:systemctl restart chronyd.service
使用 chronyc sources -v 和 date命令查看效果:
在这里插入图片描述此实验为两台主机同步时间,在企业中,多台主机中系统时间的同步方法与此相同。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值