Linux系统中的日志管理

试验环境配置

首先我们先进行试验环境的配置;本次试验环境的配置如下:

本次试验需要两台连同的主机,进行试验,并做如下设置:

Linux系统中的日志管理
图 1 实验环境配置

首先先通过hostnamectl set-hostname 更改两台主机名称,后我们通过ssh 服务,在rhtl_7中,使主机rhtl_8与rhtl_7显示在一台主机中,方便实验结果的观察。因为要进行数据传输,所以当配置好环境是,需要分别关闭两台主机的防火墙:systemctl stop firewalld

一、journald

1.1 基本简介

服务名称:systemd-journald.service

服务管理命令:jouranlctl

默认日志的存放路径:/run/log

1.2 journalctl的基本用法

命令参数 含义
-n number 查看日志的最后number行
--since " ****-**-** **:** " 从****-**-** **:**时间起查看日志
--until " ****-**-** **:** " 查看****-**-** **:**之前的日志
-o 指定显示的方式 shrot 按照经典模式显示日志
verbose 显示日志的全部字节
export 适合传出和备份的二进制格式
json JS格式显示输出
-p 显示指定的级别 0 (emerg) 系统严重问题的日志
1 (alert) 系统中立即更改的重要信息
2 (crit) 严重级别,会导致系统软件不能正常工作
3 (err) 程序报错
4 (warning) 程序警告
5 (notice) 重要的普通日志信息
6 (info) 普通信息
7 (debug) 程序排错信息
-f 监控日志信息
-F PRIORITY 查看可控日志的层级
-u  服务名称 查看指定服务的日志
--disk-usage 查看日志大小
--vacuum-size=1G 设定日志存放内存,超过该内存原数据会自动删除
--vacuum-time=1W 设定日志在系统中最长存放时长
journalctl _PID= 查看指定ID的日志信息
Linux系统中的日志管理
图 1 journalctl查看日志

 

Linux系统中的日志管理
图 2 jouranlctl中按时间节点查看

 

Linux系统中的日志管理
图 3 jurnanclt中查看日志的格式
Linux系统中的日志管理
图 4 jurnanclt中查看日志的格式
Linux系统中的日志管理
图 5 jurnanclt中查看不同等级日志

 【注】当指定日志类别时,也可以直接跟数字:journalctl -p 0;

Linux系统中的日志管理
图 6 jurnanclt中设置日志的文件大小,按名称查看日志
Linux系统中的日志管理
图7 jurnanclt中监控日志的方式
Linux系统中的日志管理
图 8 jurnanclt中按照ID查看日志

【注】上述日志都是在、/run/log暂时存放的,开机后,原日志会被删除。

1.3 日志永久存放的设定

实验素材:

Linux系统中的日志管理
图 9 设定永久存放日志的目录

重启后,日志的存放路径就为:/var/log/journal,且永久存放。

Linux系统中的日志管理
图10 测试永久存放的效果

二、rsyslog

2.1 基本知识

服务名称:rsyslog.service

日志存放路径:

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

配置文件路径:/etc/rsyslog.conf

日志的查看:rsyslog.service中的日志,是以文件形式存储的,所以我们可以通过:cat,less等命令进行直接查看。

2.2 自定义日志采集路径

2.2.1 常用的日志类型

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

2.2.2 日志级别

    rsyslog日志类型和journald日志类型较为相似:

类别 级别含义
emerg 系统严重问题日志
alert 系统中要立即更该的信息日志
crit 严重级别会导致系统软件不能正常运行
err 程序报错
warning 程序警告
notice 普通日志中的重要日志
info 普通信息日志
debug 程序排错日志
none 不包含该日志

2.2.3 路径自定义

    在配置文件(/etc/rsyslog.conf)中,编写所要改变的日志的路径,级别:

Linux系统中的日志管理
图 11 设定rsysctl日志存储路径
Linux系统中的日志管理
图 12 重定义rsyslog日志存储路径的结果

2.3 更改日志采集格式

2.3.1 定义日志采集格式:

    $template WESTOS, "%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"

  【注】在格式设定后,要重启服务,是设定生效。

2.3.2 设定日志采集格式的应用:

    将设定的日志采集格式的标志,跟在所要设置的日志目录下。

   【例】*.*       /var/log/messages;WESTOS

Linux系统中的日志管理
图 13 配置rsyslog日志显示格式,并观察结果

2.4 远程日志的同步

根据设定的实验环境,将rhtl_8(172.25.254.104)中的日志存放到rhtl_7(172.25.254.105)中:

(1)配置rhtl_7的设置:

    在配置文件(/etc/rsyslog.conf)中打开日志接受的插件,并指定插件使用接口:

Linux系统中的日志管理
图 14 配置rhrl_7的配置文件

    配置完成,对rsyslog日志服务进行重启(这里不能进行重新装载):systemctl restart rsyslog.service

    启动完成,检查所配置的文件:netstat -antlupe | grep rsyslog (网络命令的参数,见后续文章)

Linux系统中的日志管理
图 15 重启rhrl_7的rsyslog服务,并观察配置结果

(2)配置rhtl_8的设置

    在配置文件(/etc/rsyslog.conf)设定发送的日志文件及接收的主机:

    【例】*.*      @172.25.254.105       ##将所有日志文件通过UDP格式发送到rhtl_7(172.25.254.105)中

Linux系统中的日志管理
图 16 配置rhrl_8的配置文件

    【注】因为我们的日志传输一般都在内网进行,所以在考虑传输速率,而忽略安全时,我们采用UDP报文传输,同样在外网考虑安全性时,采用TCP报文传输,格式如下:*.*   @@172.25.254.105

    配置完成,对rsyslog日志服务进行重启(这里不能进行重新装载):systemctl restart rsyslog.service

(3)对上述日志传输进行测试:

    logger wetsos test message

Linux系统中的日志管理
图 17 测试传输日志结果

【注】因为实验需要传输数据,防火墙会对实验产生一定的影响,故在实验室,应首先查看火墙状态,将打开的火墙首先进行关闭。

三、timedatectl

3.1 时间设定

timedatectl set-time "2020-02-13 14:43:30"

3.2 时区设定

3.2.1 时区设定: timedatectl set-timezone "Asia/Shanghai"

Linux系统中的日志管理
图 18 设置时间和时区

3.2.2 查看可设定的时区:timedatectl list-timezones

3.3 时间计算方式设定

Linux系统中的日志管理
图 19 按照utc方式计算当地时间

该命令中含有参数0和1:0表示系统用utc方式计算时间;1表示用cst方式计算时间

【注】CST:为美国、澳大利亚、古巴或中国的标准时间;

           UTC:协调世界时,又称世界统一时间、世界标准时间、国际协调时间。

四、时间同步服务

4.1 基本知识

服务名称: cheonyd.service

配置文件: /etc/chrony.conf

4.2 同步时间配置

我们这里是将rhtl_7(172.25.254.105)的时间同步到rhtl_8(172.25.254.104)中,在同步过程中,分别对台主机进行时间设定:

(1)配置rhtl_7中的配置文件(/etc/chrony.conf):

Linux系统中的日志管理
图 20 配置rhrl_7的配置文件

(2)配置rhtl_8中的配置文件(etc/hrony.conf):

Linux系统中的日志管理
图 21 配置rhrl87的配置文件

(3)配置完成后,重启rhtl_8中的时间配置服务:systemctl restart chronyd;

(4)查看配置效果:chronyc sources -v

Linux系统中的日志管理
图 21 查看时间同步的效果

上述为Linux下系统中的进程的基本介绍,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!