日志管理
一、概念
(1)在RHEL系统中,日志是通过什么协议记录的呢? Syslog
(2)记录服务有关、开机引导有关的日志,服务在运行时候才有有关的日志:Systemd-journald.service
(3)如何保存:以二进制文件的形式保存在内存,如果系统被重启以后,systemd-journald.service保存的日志就没有了。
(4)把systemd-journald.service 保存的二进制内容,转换成文本文档,并且会保存在/var/log中:rsyslog.service
二、日志分类
/var/log/secure: 一般和登陆有关,例如SSH远程连接,本地登陆等。
/var/log/boot.log: 系统启动时启动的服务和组件等。
三、日志的格式:
Jul 4 05:14:36 : 时间。指记录/产生这条日志的时间
Servera:产生这天日志的对象(rsyslog可以记录远程主机的日志)
sshd[22895]:这个日志是通过哪个服务产生的
Accepted…… : 具体的日志事件
服务类型的日志(如httpd服务的日志)
对于特定的服务日志格式,在服务的配置文件会定义好保存的日志
格式:。例如在/etc/httpd/conf.d/httpd.conf中有格式定义:
Tips:在配置文件中输入“/LogFormat”可以快速定位到该行,日志格式的定义以通配符表示。
Tips:当使用Linux查看日志时,可以根据以下两种情况:
A、当需要查看某种具体的服务时:
了解该服务的配置文件中,关于日志的定义路径,以及日志格式。
B、当需要查看普通的系统相关日志以及服务的简略日志:
方法一:查看/var/log路径下的日志(以上已给出)
方法二:使用命令systemctl status xxx(服务名)
C、更多的场景下是通过专门的记录日志的方式: ELK (不进行详细的介绍)
四、日志的级别:
日志中的告警信息是分级别的,分为8个等级:
Tips:告警的级别数值越小,说明优先级越高,紧急的程度也越高。当出现emerg的告警信息时,系统基本会死机状态。一般来说,我们只重点处理0~3的告警。
在rsyslog.conf中,可以配置将不同的告警信息放在指定的文件中(分门别类的存放):/etc/rsyslog.conf
解读:
A、
authpriv.* /var/log/secure
凡是与登陆验证相关的告警信息都存放在var/log/secure中。
B、
*.info;mail.none;authpriv.none;cron.none /var/log/messages
所有的信息,除了与邮件,登陆验证,作业调度相关的告警外,都存放在/var/log/messages中。
C、
*.emerg :omusrmsg:*
针对所有的emerge信息,都会立即显示在所有的终端上。
:omusrmsg:* : 所有的终端(屏幕上)
日志的级别:日志的文件内容及日志的定义方式
local7.* :日志设备
首先有服务记录日志到特定的local设备,然后在通过rsyslog存
储到特定的文件
local0 ~ local7 保留给本机用户使用
local7:日志的最高级别为7。
举几个例子:
(1)在/etc/rsyslog.conf中增加如下配置后重启rsyslog服务
local2.info /var/log/test.log
执行命令
[root@localhost ~]# logger -p local2.info "hello world"
查看 /var/log/test.log
[root@localhost ~]# tail /var/log/test.log
Nov 18 22:36:30 localhost root: hello world
Tips: logger命令-p参数含义: -p, --priority priority_level
指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式。比如:" -p local3.info " local3 这个设备的消息级别为 info。默认级别是 "user.notice"
(2)如果是使用rsyslog开源代码进行开发,可以设置日志的facility类型为local0,对应的rsyslog服务器配置local0日志类型的处理
(3)另外如果是路由设备,比如华为设备,可以对log进行配置:
info-center loghost 192.168.1.1 facility local4
这样,在192.168.1.1的rsyslog服务器上配置local4日志类型的处理方式,就可以存储来自路由设备的日志了
五、日志的轮替(logrotate)
日志轮替的定义:使用者定义一种日志规则,每当日志满足条件时(日志文件大小,周期等),将会产生(替换)一个新的文件记录日志。
- 日志的轮替规则
(1)以周期为规则。如每周的周五执行一次轮替
(2)以大小为规则。以日志文件的大小进行轮替,如文件大小达到5M时执行一次轮替。
(3)以上两种方式混合使用来轮替。
日志轮替的配置文件:/etc/logrotate.conf
六、systemd-journald服务
- 查看内存日志命令:journalctl
各个常用参数的含义:
-f (follow):实时滚动显示最新的日志
-n : 查看后面n行的日志
-p : 查看指定告警级别的日志
--since --until : 指定一个时间段内产生的日志
Tips:如何设置日志的永久存储
(1)编辑/etc/systemd/journald.conf
(2)设置Storage=persistent
(3)重启systemd-journald服务即可生效
systemctl restart systemd-journald
七、时间与时区(timedatectl)
设置时区 set-timezone
Tips:这里是CST是指China Standard Time(中国标准时间)
但CST不总是代表中国标准时间
配置Chrony(NTP)服务
如果直接使用timedatectl设置时间
系统会报错,因为默认使用了NTP(网络时间协议,一种用于使计算机时间同步的协议),所以不可以自行修改时间。
所以,要先将NTP功能关闭,然后才可以手动修改时间,操作如下:
将NTP功能开启
远程服务器设置(chronyd/ntp)
需求:
配置一台客户端B与另一台服务器A的时间同步(chronyd)
Step 1:在服务器和客户端安装chronyd服务
(1)使用dnf在包管理器下载安装chronyd服务
(2)安装完成后,启动并启用chrongyd服务,并查看一下服务状态是否显示正在运行:
Step 2:配置chronyd服务器
(1)chrony安装完成后,可以在chrony主配置文件/etc/chrony.conf上进行更改配置,配置你想要同步时间的服务器。
Tips:在RHEL7版本及之前,配置文件为ntp.conf
设置最接近你的时间服务器:注释掉第一个pool行并添加NTP服务器列表:
你还可以指定允许访问NTP服务器的IP地址或网络地址block:
更改后重新启动chronyd服务
(2)如果有活动的firewalld服务,请允许ntp端口:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
(3)检查NTP服务器是否正常工作:
Step 3:配置chronyd客户端
(1)编辑配置文件以将NTP服务器设置为指向新配置的NTP服务器:
更改后重新启动chronyd服务
(2)检查NTP服务器是否正常工作:
Step 4:验证
配置到了这里,NTP服务器已经在RHEL 8服务器上运行了
参考链接
在RHEL 8系统上使用Chrony配置NTP服务器
https://ywnz.com/linuxyffq/3920.html
国内常用的NTP服务器地址
https://www.cnblogs.com/jins-note/p/9513385.html