Part2.3——Linux系统中的日志管理

目录

一、journald日志管理服务(方法较新)

1、系统中要查看系统日志,就必须启动日志管理服务

2、journalctl命令的用法:(用来分析日志)

(1)journalctl查看日志基本操作

 (2)参数<-p>设定显示指定级别的日志

(3)journalctl其他常用用法

(4)journalctl添加指定元素查找日志

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

二、rsyslog日志管理服务(方法较传统)

1、rsyslog服务的日志采集位置

2、rsyslog日志采集规则

(1)采集规则的格式:

(2)日志类型:

(3)日志级别:

 3、日志的远程同步

三、timedatectl设定

1、的用法

2、更改时间配置

(1)设定时间计算方式。核心文件:

 (2)设定系统时区

 (3)设定系统时间

四、时间同步服务

第一步:关闭时间源的火墙

第二步:配置文件

 第三步:重启时间同步服务

第四步:客户端连接时间源

 第五步:客户端重启服务

 第六步:查看时间效果

五、本章总结


一、journald日志管理服务(方法较新)

实验环境的配置:两台虚拟机,并且都关闭了火墙,搭建好系统软件仓库

1、系统中要查看系统日志,就必须启动日志管理服务

注意:为了方便后续实验进行,需要先关闭火墙服务:<systemctl stop firewalld>

systemctl start journald.service  启动日志管理服务
systemctl  status  systemd-journald 管理日志采集的守护进程,负责把程序生成的日志放在指定位置(即下列路径)
/run/log/journal 日志默认存放路径

2、journalctl命令的用法:(用来分析日志)

(1)journalctl查看日志基本操作

journalctl  -n 3 显示日志最新的三条
journalctl  --since "2020-05-01 11:00:00" 显示11:00后的日志
journalctl  --until "2020-05-01 11:05:00"  显示日志到11:05

(2)参数<-o>设定日志的显示方式

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

 (2)参数<-p>设定显示指定级别的日志

journalctl  -p  0            #按日志级别0查看日志

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

(3)journalctl其他常用用法

journalctl  -F   PRIORITY    查看可控日志级别
journalctl  -u   sshd 查看指定的服务日志
journalctl  --disk-usage 查看日志大小(/run/log/journal/****/system.journal)
journalctl  --vacuum-size=1G 设定日志存放大小(超过1G后会删除最早的日志)
journalctl  --vacuum-time=1W  日志在系统中最长存放时间(超过1周后会删除最早的日志)
journalctl  -f  监控日志

(4)journalctl添加指定元素查找日志

先通过<journalctl -o verbose>查看日志的详细信息,然后可以根据显示出来的元素放在journalctl后查询。(也就是任何一个下划线开始的命令,都可以通过journalctl查询相关日志)

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

系统中默认日志在</run/log/journal>中,但也只是临时保存本次开机以来的日志信息,系统重启以后会丢失。所以为了保存历史日志,就需要把产生的日志保存到指定位置。(也就是说系统重启会丢失/run下的日志文件,换一个目录保存即可)

为了可以永久保存日志,分以下几个步骤:

(1)mkdir /var/log/journal                                     #新建一个文件夹用来保存日志

(2)chgrp systemd-journal  /var/log/journal         #更改此文件夹的所有人所有组

(3)chmod 2775  /var/log/journal                         #更改此文件夹的读写权限

(4)systemctl restart systemd-journald.service   #重启日志服务

 首先新建一个文件夹用来存放日志文件,接着将这个目录的所有组更改为<systemd-journal>服务的,再然后改变这个目录的权限,即给予所有组中的成员满权限;最后重启日志服务,可以看到原本的</run/log>目录已经空了,意味着经过调整后,系统的日志已经保存在新的位置</var/log>了,新位置的日志文件不会因为系统关机而丢失。

 当日志服务重启后,日志的存放路径会被指定在</var/log/journal >

测试步骤:

1、在操作以上步骤之前查看日志

2、重启系统

3、再次查看日志

4、可以看到日志是不会被保存的,只能看到系统重启之后的日志

5、晚上上述操作后,重启系统可以看到重启以前的日志,日志是被保存下来的

当前系统时间是10:01分,当重启系统后,10:01分以前的日志理论上会被清理,但是经过我们重新更改日志的存储位置,重启系统后可以看到10:01以前的日志就意味着日志永久保存了。

重启后,查看文件ID, 和重启之前的文件ID一样,证明这个文件是一致存在的,不是新建的。

ls -i /var/log/journal/*******/system.journal
#查看日志文件的ID等基本信息

 用<journalctl>命令查看日志,可以看到一天之前的日志记录,证明日志永久保存成功。

二、rsyslog日志管理服务(方法较传统)

服务名称:<rsyslog.service>

配置文件:</etc/rsyslog.conf>

只有开启了rsyslog服务后,系统日志才会记录到相应位置

1、rsyslog服务的日志采集位置

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

2、rsyslog日志采集规则

查看配置文件</etc/rsyslog.conf>,在第38行的“RULES”开始就是rsyslog服务采集日志的规则

(1)采集规则的格式:

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

(2)日志类型:

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

(3)日志级别:

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

第一步:

在“rsyslog”的配置文件里,添加一行,如下图所示。重启rsyslog服务后,会在</var/log/>目录下新增这个“westos”文件。

 使用以下命令将这个文件监控起来,执行远程登录服务,文件中并没有记录,意味着配置文件中设置的“服务认证”将不会被记录了在这个文件里。

tail -f /var/log/westos            #显示文件中的最新内容

 第二步:

在“rsyslog”的配置文件里,添加一行,如下图所示。当配置文件中的内容更改为< * . *>则表示所有日志都记录在“/var/log/westos”文件中。

 用其他主机远程登录一下,可以看到文件中的日志对<172.25.254.222>的远程主机的登录状态做了一次记录。

 3、日志的远程同步

在企业中,需要对成百上千个主机的日志进行分析,而这些主机的日志文件默认都在自己的本地保存。为了便于分析,就需要把这些日志文件自动同步到一个服务器中。

~~~~~~~~未完待续~~~~~~~~~~~~

三、timedatectl设定

1、<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时间计算方式

测试:

timedatectl        #显示当前时间状态

 RTC:硬件时间

UTC:硬件时间+所在时区

2、更改时间配置

(1)设定时间计算方式。核心文件:</etc/adjtime>

timedatectl set-local-rtc 0 | 1        #设置系统为RTC时间,1表示用,0表示不用

 警告:如果系统启用了RTC时间方式,时间握手可能会有影响。因为每个机器的硬件时间不全相同,如果和其他主机进行交互的过程中两者时间对不上,那么交互过程可能执行不了。

 (2)设定系统时区

timedatectl  list-timezone                #查询可更改的时区列表
timedatectl  set-timezone  "Asia/Tokyo"             #更改系统时区

 (3)设定系统时间

timedatectl set-time "2011-01-01 11:11:11"    #手动设定时间

在手动设定时间时,需要先关闭<chronyd.service>服务,这个服务是负责时间与其他主机进行同步的,只有关闭时间同步服务才能手动设置时间

四、时间同步服务

在机房中设置多个机器的时钟同步,就需要把一台主机的时间共享出来,让其他主机和这台主机的时间保持同步。

实验环境:1.时间源, 2.待同步主机

第一步:关闭时间源的火墙

第二步:配置文件

vim  /etc/chrony.conf        #编辑时间同步服务的配置文件

更改配置文件中第23行和第26行的内容。“allow 0.0.0.0/0”表示允许所有人;“local startum 10”表示本机作为时间源允许时间被别人同步。

 第三步:重启时间同步服务

systemctl restart chronyd        #重启时间同步服务

第四步:客户端连接时间源

在客户端的</etc/chronyd.conf>文件的第三行,将时间源的IP地址修改好。

 第五步:客户端重启<chronyd>服务

客户端编辑好文件后,重启<chronpd>服务,可以看到系统时间已经和时间源同步。

 第六步:查看时间效果

chronyc source -V            #查看时间同步详情

五、本章总结

1、journal日志的永久保存,说白了就是把日志文件换个地方存储。因为原本的日志文件存储位置每次关机都会清理,换个不会被清理的地方,就可以永久保存日志了。

2、两者不同:rsyslog日志管理服务会把日志分门别类的放在不同目录下,journalctl日志管理服务会把日志统一放在一个目录下。

3、rsyslog和journalctl都只有在服务开启的时候才会对日志进行采集,服务关闭后将不会有日志生成。

4、系统时间的计算方式如果选择RTC的话,可能会导致与其他主机交互时时间不一致而无法握手。所以一般都使用UTC时间。

おすすめ

転載: blog.csdn.net/Zhaohui_Zhang/article/details/121050996