实验环境:
需要两台处于同一网段的虚拟机:
client : 172.25.254.10
server : 172.25.254.20
systemctl stop firewalld #暂时先关掉火墙
一.journald
服务名称:systemd-journald.service
日志查看工具:journalctl
默认日志存放路径: /run/log
1.查看日志
查看日志基本方式
journalctl -n 3 #日志的最新3条
journalctl --since "2020-05-01 12:00:00" #显示12:00后的日志
journalctl --until "2020-05-01 11:00:00" #显示11:00前的日志
日志显示方式
journalctl -o short #经典模式显示日志
journalctl -o verbose #显示日志全部字节
journalctl -o export #适合传出可备份的二进制格式
journalctl -o json #js格式显示日志
显示指定级别日志
journalctl -p [等级]|[类型]
#等级所对应类型如下:
0 emerg 系统的严重问题日志
1 alert 系统中立即要更改的信息
2 crit 严重级别会导致系统软件不能正常工作
3 err 程序报错
4 warning 程序警告
5 notice 重要信息的普通日志
6 info 普通信息说明
7 debug 程序排错信息
journalctl -F PRIORITY #查看可控日志级别
journalctl -u [服务名称] #查看指定服务的日志
journalctl --disk-usage #查看日志大小
journalctl --vacuum-size=1G #设定日志存放大小(超过后新日志覆盖)
journalctl --vacuum-time=1W #日志最长存放时间
journalctl -f #实时监控日志
2.用journald服务永久存放日志
日志默认存放在/run/log/journal目录下,系统重启后日志会被清理,只会显示系统重启以后的日志。
如何解决以上问题:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service
二.rsyslog
服务名称:rsyslog.service
系统服务日志,常规信息,服务报错:/var/log/messages
系统认证信息日志:/var/log/secure
系统邮件日志信息:/var/log/maillog
系统定时任务信息:/var/log/cron
系统启动日志信息:/var/log/boot.log
配置文件:/etc/rsyslog.conf
1.自定义日志存放路径
# 1.进入rsyslog配置文件
vim /etc/rsyslog.conf
# 2.按照以下格式增加或修改配置文件
[日志类型].[日志级别] [日志存放路径]
*.* /var/log/test
#上面一行表示将所有类型所有级别的日志存放到test目录中
*.* ;authpriv.none /var/log/test
#上面一行表示把系统中除了authpriv之外所有级别的日志存放到test中
日志类型
auth 用户认证
authpriv 服务认证
cron 时间任务
kern 内核类型
mail 邮件
news 系统更新信息
user 用户
日志级别
debug 程序排错信息
info 程序常规运行信息
notice 重要信息的普通日志
waring 程序警告
err 程序报错
crit 严重级别会导致系统软件不能正常工作
alert 系统中立即要更改的信息
emerg 系统的严重问题日志
none 不采集
2.更改日志采集格式
1.定义日志采集格式
vim /etc/rsyslog.conf
$template TEST_FORMAT, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP%
%syslogtag% %msg%\n"
# TEST_FORMAT:格式名称
# %FROMHOST-IP%:日志来源主机IP
# %timegenerated%:日志生成时间
# %syslogtag%:日志生成服务
# %msg%:日志内容
# \n:换行
2.修改配置文件使用以上重新定义的格式
vim /etc/rsyslog.conf
*.* /var/log/test;TEST
module(load="builtin:omfile" Template="TEST_FORMAT")
#修改以上两行
3.日志远程同步
目的是将server端的日志同步到client端
1.在client端设定接受所有人的日志
systemctl stop firewalld
vim /etc/rsyslog.conf
module(load="imudp") #打开日志接受插件
input(type="imudp" port="514") #指定插件使用接口
systemctl restart rsyslog #重启服务
ss -antlupe|grep 514 #查询端口是否重启成功
2.在server端设定发送日志到client
vim /etc/rsyslog.conf
*.* @172.25.254.10
systemctl restart rsyslog
测试:
1.使用以下命令清空client server日志
> /var/log/messages #使用此命令清空client server日志
2.使用以下命令
logger hahatest
3.在client端
cat /var/log/messages
三.timedatectl
timedatectl 主要用来操作系统日期和时间
timedatectl #查看系统时间
timedatectl set-time "2022-02-02 20:20" #设定系统时间
timedatectl list-timezones #显示系统的所有时区
timedatectl set -timezone "Asia/Shanghai" #设定系统时区
timedatectl set-local-rtc 0 #设置系统时间为UTC时间
timedatectl set-local-rtc 1 #设置系统时间为local时间
四.时间同步服务
1.简介
- NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。NTP授时网站:http://www.ntp.org.cn/pool.php
- chrony:实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度
2.ntp
1.手动同步
ntpdate NTP服务器的IP地址或域名
如:ntpdate cn.ntp.org.cn
2.自动同步
①启动ntpd服务
systemctl start ntpd
②把ntpd服务追加到系统开机启动项中
systemctl enable ntpd
3.chrony
chrony 的优势
- 更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用
- 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
- 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
- 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
- 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟
服务名称: chronyd.service
配置文件: /etc/chrony.conf
client同步server时间:
1.在server中
vim /etc/chrony.conf
allow 172.25.254.0/24 #允许172.25.254.0网段主机同步时间
local stratum 10 #开启时间同步服务器功能并设定级别为 10
systemctl restart chronyd.service
systemctl stop firewalld
2.在client中
vim /etc/chrony.conf
pool 172.25.254.20 iburst
systemctl restart chronyd.service
使用 chronyc sources -v 和 date命令查看效果