目录
一、journald
服务名称:systemd-journald.service
服务命令:journalctl
默认日志存放路径:/run/log
***注意:***默认日志存放是临时的,重启会后清空!
1、journalctl命令的用法
journalctl
-n 3 ##显示日志的最新三条
--since "2020-02-13 16:00" ##显示16:00后的日志
--until "2020-02-13 16:05" ##显示日志到16:05
-o ##设定日志的显示方式(默认是short模式)
# short 经典模式显示日志
# verbose 显示日志的全部字节
# export 适合传出和备份的二进制格式
# json js格式显示输出
-P ##显示指定级别的日志
# 0 emerg 系统的严重问题日志
# 1 alert 系统中立即要更改的信息
# 2 crit 严重级别会导致系统软件不能正常工作
# 3 err 程序报错
# 4 warning 程序警告
# 5 notice 重要信息的普通日志
# 6 info 普通信息
# 7 debug 程序排错信息
-F PRIORITY ##查看可控日志级别
-u ##指定查看服务
--disk-usage ##查看日志大小
--vacuum-size=1G ##设定日志在系统中可以存放的最大大小
--vacuum-time=1w ##设定日志在系统中最长可以存放的时间
-f ##监控日志
journalctl _PID=3244 _SYSTEMD_UNIT=sshd.service
(1)查看所有日志
journalctl ##查看所有日志
(2)查看日志的最新三条
journalctl -n 3 ##显示日志的最新三条
(3)查看指定时间的日志
a.
journalctl --since "2020-02-13 16:00" ##显示16:00后的日志
b.
journalctl --until "2020-02-13 16:05" ##显示日志到16:05
(4)设定日志的显示方式
journalctl -o ##设定日志的显示方式
# rhel7中默认是short模式,rhel8中必须加下面的模式
# short 经典模式显示日志
# verbose 显示日志的全部字节
# export 适合传出和备份的二进制格式
# json js格式显示输出
a. short
b. verbose
c. export
d. json
(5)显示指定级别的日志
journalctl -P ##显示指定级别的日志
(6)查看可控日志级别
journalctl -F PRIORITY ##查看可控日志级别
# 2 crit 严重级别会导致系统软件不能正常工作
# 3 err 程序报错
# 4 warning 程序警告
# 5 notice 重要信息的普通日志
# 6 info 普通信息
# 7 debug 程序排错信息
(7)查看指定服务
journalctl -u sshd ##指定查看服务
(8)查看日志大小
journalctl --disk-usage ##查看日志大小
(9)设定日志可以存放的最大大小和最长时间
journalctl --vacuum-size=1G ##设定日志在系统中可以存放的最大大小
journalctl --vacuum-time=1w ##设定日志在系统中最长可以存放的时间
(10)查找指定PID指定服务的日程
journalctl _PID=3244 _SYSTEMD_UNIT=sshd.service
a.查找服务的详细信息
b.查找指定PID的服务的日志
2、用journald服务永久存放日志
系统中默认日志在:/run/log/journal
默认方式在系统重启后日志会被清理,要永久保存日志需要完成以下操作:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal ##设置目录属于组systemd-journal,属于这个组才能被检测到
chmod 2775 /var/log/journal ##设置目录的权限为2775,即让目录下的文件也属于目录所在的组
systemctl restart systemd-journald.service ##重启服务systemd-journald.service
注意: 当服务重启后,日志存放路径会被指定到:/var/log/journal
测试:
1.在操作以上步骤之前查看日志。
2.重启系统。
3.再次查看日志。
4.可以看到重启之前的日志是不会被保存的,只能看到重启之后的日志。
5.完成以上操作后再次重启系统,可以看到重启之前的日志被保存下来的 。
二、rsyslog
服务名称:rsyslog.service
配置文件:/etc/rsyslog.conf
日志存放:
/var/log/messages #系统服务日志,常规信息,服务报错
/var/log/secure #系统认证信息日志
/var/log/maillog #系统邮件日志信息
/var/log/cron #系统定时任务信息
/var/log/boot.log #系统启动日志信息
1、自定义日志采集路径
vim /etc/rsyslog.conf #打开配置文件
日志类型.日志级别 日志存放路径
eg:*.* /var/log/yang #把系统中所有级别的日志存放到yang中
eg:*.*;authpriv.none /var/log/yang #把系统中所有级别的日志存放到yang中,但是authpriv不存放到yang中
日志类型
auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news #系统更新信息
user #用户
日志级别
debug
info
notice
waring
err
crit
alert
emerg
none
2、如何更改日志采集格式
(1)定义日志采集格式:
$template yang, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
# yang: 格式名称
# %FROMHOST-IP%: 日志来源主机IP
# %timegenerated%: 日志生成时间
# %syslogtag%: 日志生成服务
#%msg%: 日志内容
#\n: 换行
(2)设定日志采集格式应用
(3)可以看到日志采集格式更改了
3、日志的远程同步
workstation:172.25.254.117 存放日志作为日志接收端,所有人日志都存放到此台主机
yang:172.25.254.217 发送日志到workstation主机中
(1)在workstation中设定接收所有人的日志
systemctl stop firewalld ##关闭火墙
vim /etc/rsyslog.conf
修改以下内容:
rhel7中:
$ModLoad imudp ##打开日志接受插件
$UDPServerRun 514 ##指定插件使用接口
rhel8中:
module(load="imudp")
input(type="imudp" port="514")
systemctl restart rsyslog ##重启rsyslog服务
查询端口:
netstat -antlupe | grep rsyslog
(2)在yang中设定发送日志到workstation中:
vim /etc/rsyslog.conf ##打开配置文件
*.* @172.25.254.117 ##设置把所有日志发送到workstation主机
systemctl restart rsyslog ##重启rsyslog服务
# @ 表示使用udp传输日志
# @@ 表示使用tcp传输日志
# @172.25.254.117 把本机日志用udp的传输方式发送到172.25.254.117(yang)主机
(3)测试:
在workstation和yang中:
> /var/log/messages ##清空/var/log/messages文件中的所有内容
在yang中:
logger yang hahaha ##用logger来生成日志
在workstation中可以看到yang中生成的日志
三、timedatectl
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表示使用local时间计算方式
1、timedatectl 和 list-timezones
2、set-time
3、set-timezones
4、set-local-rtc 0|1
四、时间同步服务
服务名称:chronyd.service
配置文件:/etc/chrony.conf
***eg:***以workstation为时间源,用yang同步workstation时间。
(1)在workstation中:
vim /etc/chrony.conf ##打开配置文件
allow 172.25.254.0/24 ##允许172.25.254.0网段主机同步时间
local stratum 10 ##开启时间同步服务器功能并设定级别为10
systemctl restart chronyd.service ##重启chronyd.service服务
systemctl stop firewalld ##关闭火墙
(2)在yang中:
vim /etc/chrony.conf ##打开配置文件
pool 172.25.254.117 iburst ##同步172.25.254.117主机中的时间
systemctl restart chronyd ##重启chronyd服务
(3)查看:
使用chronyc 命令查看时间效果:
chronyc sources -v
yang中的时间已经变成workstation中的时间了。