##实验环境:
主机一:192.168.43.60
主机二:192.168.43.61
关闭火墙:
systemctl stop firewalld
设置vim:
vim etc/vimrc
set nu
一、journald 程序采集日志
服务名称:systemd-journald.service
命令: journalctl 获取日志
默认日志存放路径: /run/log 每次重启后会清空
实验一:journalctl命令的用法
journalctl
-n 3 ##日志的最新3条
--since “2020-02-13 17:00” ##显示17:00后的日志
--until “2020-02-13 17:00” ##显示日志到17:00
-o ##设定日志的显示方式
short 经典模式显示日志
verbose 显示日志的全部字节
export 适合传出和备份的二进制格式
json js格式显示输出
-p ##显示制定级别的日志
0 emerg 系统的严重问题日志
1 alert 系统中立即要更改的信息
2 crit 严重级别会导致系统软件不能正常工作
3 err 程序报错
4 warning 程序警告
5 notice 重要信息的普通日志
6 info 普通信息
-F PRIORITY 查看可控日志级别
##可用 -p 2 查看
-u sshd 指定查看服务
--disk-usage 查看日志大小
[root@rhel7_1 ~] journalctl --disk-usage
Archived and active journals take up 6.0M on disk.
–vacuum-size=1G 设定日志存放大小,临时的,可在/etc/systemd/journald.conf 下永久更改
–vacumm-time=1W 日志在系统中最长存放时间,临时的,重启后无
-f 监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service 条件查找,条件在-o verbose 中寻找
实验二:用journald服务永久存放日志
系统中默认日志在:/run/log/journal中
可以看出完成上述操重启服务作后,/run/log/ 下的文件被删除,在 /var/log/journal/ 下自动生成了和以前一样的一个文件,则日志存放路径被指定到:/var/log/journal,此时重启电脑之前的日志文件不会丢失。
[root@rhel7_1 journal]# systemctl status systemd-journald.service
● systemd-journald.service - Journal Service
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static; vendor preset: disabled)
Active: active (running) since Thu 2020-02-13 ==17:45:41== CST; 10min ago
Docs: man:systemd-journald.service(8)
这是此时服务开启的时间,这时我们重启电脑后
可以看见之前的日志仍然存在,所以这次永久存放日志实验成功,我们可以
journalctl --vacuum-size=1G 来设定最大滚动日志为1G
操作总结:
1.在操作以上步骤之前查看日志
2.重启系统
3.再次查看日志
4.可以看到日志是不会被保存下来的只能看到重启之后的日志
5.完成以上操作后再次重启系统可以看到日志是被保存下来的
二、rsyslog 程序采集日志
服务名称:rsyslog.service
日志存放:
/var/log/messages | #系统服务日志,常规信息,服务报错 |
/var/log/secure | #系统认证信息日志 |
/var/log/maillog | #系统邮件日志信息 |
/var/log/cron | #系统定时任务信息 |
/var/log/boot.log | #系统启动日志信息 |
rsyslog的管理都依赖于配置文件:/etc/rsyslog.conf
实验一:自定义日志采集路径
日志类型 . 日志级别 日志存放路径
*.* /var/log/westos ##把系统中所有级别的日志存放到westos中
*. * ; authpriv.none /var/log/westos ##把系统中所有级别的日志存放到westos中
但是authpriv不存放到westos中
清空 /var/log/message 文件的内容,然后 vim /etc/rsyslog.conf
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
55 *.* /var/log/westos #加入这一行
重启服务后发现原来不存在的文件出现了,内容也出现了:
设置只有服务认证可以记录到 /var/log/westos:
看到 westos文件中只有服务认证日志了。重启网络的话则不会出现网络的日志,可以自行检测
systemctl restart network
日志类型 | |
---|---|
auth | 用户认证 |
authpriv | 服务认证 |
cron | 时间任务 |
kern | 内核类型 |
邮件 | |
news | 系统更新信息 |
user | 用户 |
日志级别
debug
info
notice
waring
err
crit
alert
emerg
none # *.*;auth.none 表示除过用户认证
实验二:如何更改日志采集格式
默认日志格式;
1定义日志采集格式
WESTOS: 格式名称
%FROMHOST-IP%: 日志来源主机IP
%timegenerated%: 日志生成时间
%syslogtag%: 日志生成服务名称
%msg%: 日志内容
\n: 换行
2设定日志采集格式应用
重启日志服务后生效。
重启服务后,看出日志格式已经显示为想要的格式
实验三:日志的远程同步
rhel7_node1:172.25.254.11 存放日志作为日志接受端,所有人日志都存放到此台主机
rhel8_node1:172.25.254.10 发送日志到rhel7_node1主机中
1.在rhel7中设定接受所有人的日志
vim /etc/rsyslog.conf
两种同步方式:udp速率较快,所以选择 udp 方式
15 $ModLoad imudp ##打开日志接受插件
16 $UDPServerRun 514 ##指定插件使用接口
查询端口:514端口已经打开
2.rhel8中设定发送日志到rhel7中
vim /etc/rsyslog.conf
*.* @172.25.254.11
@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@172.25.254.11 把本机日子用udp的传输方式发送到172.25.254.11主机
systemctl restart rsyslog 重启服务
测试:
在rhel7和8中 > /var/log/messages 清空内容方便比较
在rhel8中
logger westos test message logger是测试日志的工具,产生日志
可以看出rhel7中已经出现了rhel8中的日志
三、timedatectl 更改系统时间
locale time=RTC time + 时区差=13+8=21
**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时间计算方式 1表示普通时间计算方式
vim /etc/adjtime
timedatectl set-local-rtc 1
vim /etc/adjtime
可见硬件时间已经改为本地时间,时间计算方式也已经改变。
四、时间同步服务
服务名称: chronyd.service
配置文件: /etc/chrony.conf
在rhel7作为时间源rhel8同步rhel7时间
在rhel7中
vim /etc/chrony.conf
26 allow 172.25.254.0/24 ##允许172.25.254.0网段主机同步时间
29 local stratum 10 ##开启时间同步服务器功能并设定级别为10
systemctl restart chronyd.service
在rhel8中
vim /etc/chrony.conf 编写文件
systemctl restart chronyd 重启服务
查看:
在rhel8中查看时间:
现实已经变成rhel7中时间
使用chronyc 命令查看时间效果:
则已经成功同步rhel7的时间