实验环境
使用两台虚拟机。我使用RHEL8以及centos8。
同时知晓两台主机的IP。在RHEL环境下利用ssh命令连接第二台虚拟机。
journald采集日志
服务名称:systemd-journald.serice
注意:在rhel8之后,有journald和rsyslog两种方式来采集日志,日志产生由程序本身产生。journald将所有日志存储起来,用查看工具进行分析。
我们可以利用journalctl 来查看日志。
默认日记存放路径:/run/log。 注意:日志会被清空。
实验一 journalctl命令的用法
首先,服务systemd-journald.serice的主要作用是用来采集日志,因此可以说它是一个日志的搬运工。而日志的产生是由程序本身所产生的。
1).我们可以利用journalctl直接查看日志。
命令 | 功能 |
---|---|
-n num | 显示最近*条日志 |
–since “year/mon/day xx:xx” | 从选定时间之后开始显示日志 |
–until “year/mon/day xx:xx” | 从选定时间之前开始显示日志 |
-o | 设定日志的显示方式 |
-o short | 使用经典方式显示日志 |
-o verbos | 显示全部日志细节 |
-o export | 适合传输和备份的二进制日志 |
-o json | 使用js格式输出 |
-p | 显示指定级别的日志 |
-F | PRIORITY |
-u sshd | 指定查看服务 |
- -disk-usage | 查看日志存放空间大小 |
- - vacuum-size=1G | 设定日志存放大小(临时设置) |
- - vacuum-time=1W | 日志在系统中最长存放时间(临时设置) |
- f | 对日志进行监控,监控日志 |
-p的一些级别
0 | emerg | 内核的日志,需要紧急处理的日志,系统的严重问题日志 不能控制 |
---|---|---|
1 | alert | 系统中立即要更改的信息 |
2 | crit | 严重级别日志,会导致系统软件不能正常工作 |
3 | err | 程序报错 |
4 | warning | 程序警告 |
5 | notice | 重要信息的普通日志 |
6 | info | 普通信息 |
7 | debug | 程序排错信息 |
1.-n 3 显示日志的最新三行
2.–since “year/mon/day xx:xx” 从选定时间之后开始显示日志
3.–until “year/mon/day xx:xx” 从选定时间之前开始显示日志
4.-o 设定日志的显示方式
4.1-o short 使用经典方式显示日志
4.2-o verbos 显示全部日志细节
4.3-o export 适合传输和备份的二进制日志
4.4-o json 使用js格式输出
5.-p 显示指定级别的日志
5.1 alert 系统中立即要更改的信息
5.2 crit 严重级别日志,会导致系统软件不能正常工作
5.3 err 程序报错
5.4 warning 程序警告
5.5 notice 重要信息的普通日志
5.6 info 普通信息
5.7 debug 程序排错信息
6.-F PRIORITY
7.-u sshd 指定查看服务
8.- -disk-usage 查看日志存放空间大小
9.- - vacuum-size=1G 设定日志存放大小(临时设置)
10.- - vacuum-time=1W 日志在系统中最长存放时间(临时设置)
11.- f 对日志进行监控,监控日志**
限定日志所能占用的最高容量,我们可以通过/etc/systemd/journald.conf文件来配置systemd-journald服务的行为。
用journald服务永久存放日志
实验二
步骤
1.开篇我们说过,journald文件会在重启系统后被清理掉
2.首先建立一个文件夹/var/log/journal
3.设定文件夹的权限组
4.重启服务
5.日志的存放路径会指定到/var/log/journal
rsyslog日志采集(存储精准)
服务名称:rsyslog.service
注意:journald将所有的日志存储下来,用查看工具进行分析;而rsyslog在采集时就进行了分类,用查看文件的方式进行查看。
日志存放的路径 | 用途 |
---|---|
/var/log/messages | 系统服务日志,常规信息,服务报错 |
/var/log/sercure | 系统认证信息日志 |
/var/log/maillog | 系统邮件日志信息 |
/var/log/cron | 系统定时任务信息 |
/var/log/boot | .log 系统启动日志信息 |
日志存放路径。
/var/log/messages -----系统服务日志,常规日志,服务报错
/var/log/sercure ------系统认证信息日志
/var/log/maillog——系统邮件日志信息
/var/log/cron——系统定时任务信息
var/log/boot.log——系统启动日志信息
配置文件:/etc/rsyslog.conf
实验三
自定义日志采集路径
rsyslog的配置文件/etc/rsyslog.conf中设定
日志类型.日志级别 日志存放路径
日志类型.日志级别 | 日志存放路径 | 含义 |
---|---|---|
* .* | /var/log/red | 把系统中所有级别的日志存放到file_rsyslog中 |
* .* | tthenapriv.none /var/log/file_rsyslog | 把系统中所有级别的日志存放到file_rsyslog中,但是thenapriv日志不放 |
日志类型 | 含义 |
---|---|
auth | 用户认证 |
authpriv | 服务认证 |
cron | 时间任务 |
kern | 内核类型 |
邮件 | |
news | 系统更新信息 |
user | 用户 |
日志级别 |
---|
debug |
info |
notice |
warning |
err |
crit |
alert |
emerg |
none |
实验四:如何更改日志采集格式
步骤
1.定义日志采集格式
如:$tempelate LOG0213,“%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n”
日志格式名称 | LOG0213 |
---|---|
生成时间 | %timegenerated% |
日志来源主机IP | %timegenerated% |
日志生成服务 | %syslogtag% |
日志内容 | %msg% |
换行 | \n |
2.指定用户使用设定的日志采集格式
实验五:日志的远程同步
实验环境: 两台主机
rhel8:10.211.55.4 存放作为日志接收端,所有人日志都存放到此台主机
centos:10.211.55.5发送日志到rhel8主机中
步骤:
1.在rhel8中设定接受所有人的日志
systemctl stop fiewall
在配置文件 vim /etc/rsyslog.conf中
关闭防火墙,重启服务,查询端口
查询端口:
2.centos中设定发送日志到rhel8中
在配置文件 vim /etc/rsyslog.conf中设置
(man 5 rsyslog.conf——查看帮助)
* . * @rhel8的IP
@表示使用UDP传输日志
@@表示使用TCP传输日志
@10.211.55.4 表示把本机日志用UDP传输方式到10.211.55.4 这台主机
timedatectl命令
timedatectl命令更改系统时间
实验:设置时间
设定系统时间:timedatectl set-time “2020-02-14 19:07:55”
显示系统的所有时区:list-timezones
设定系统时区timedatecl set-timezonge “Amerrica”
timedatectl set-local-rtc 0/1 设定系统时间计算方式,0表示使用utc时间计算方式,1是本地时间
UTC设置时间方式会更改系统硬件时间,双系统会导致时间错误
vim /etc/adjtime
时间同步服务
实验:时间同步实验:在centos作为时间源,rhel8同步centos时间
服务名称:chronyd.service
配置文件:etc/chrony.conf
在centos中
[root@localhost ~]# vim /etc/chrony.conf