1.什么是系统日志?
日志的生成–由服务本身生成:进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的故障排除,一般这些日志永久存储于/var/log目录中。
2.设置实验环境
建立两台虚拟机并保证相互通信
rhel7_node1 IP:192.168.1.6
rhel8_node1 IP: 192.168.1.5
3.日志的查看(journald)
系统日志默认是不会保存到硬盘的,这意味着当系统重新启后,只能看到开机后的日志,开启电脑前的日志无法查看。下面使用systemd来保存日志即可以看到上次关机前的日志件。
日志默认存放在/run/log中
服务名称:systemd-journald.service 不产生日志,只采集日志
3.1 journalctl命令的用法:(1)
命令 | 效果 |
---|---|
journalctl -n 3 | 查看最新的3条日志 |
journalctl --sinze “2020-02-14 19:38:00” | 显示19:38点后的日志 |
journalctl --until “2020-02-14 19:50:00” | 显示19:50点之前的日志 |
journalctl -o short | 经典模式显示日志 |
journalctl -o verbose | 显示日志的全部字符 |
journactl -o export | 适合传出和备份二进制格式 |
journalctl -o json | js格式显示输出 |
命令演示效果如下:
journalctl命令的用法:(2)
参数-p 显示制定级别的日志
0 emerg 系统的严重问题日志
1 alert 系统中立即要更改的信息
2 crit 严重级别会导致系统软件不能正常工作
3 err 程序报错
4 warning 程序警告
5 notice 重要信息的普通日志
6 info 普通信息
7 debug 程序拍错信息
-F PRIORITY 查看可控日志级别
-u sshd 指定查看服务
-f 监控日志
--disk-usage 查看日志大小
--vacuum-size=1G 设定日志存放大小
--vacumm-time=1W 日志在系统中最长存放时间
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service 按照指定格式查找日志
命令演示效果:
永久设置日志存放环境需更改配置文件:vim /etc/systemd/journald.conf
按照指定参数查找服务日志,首先查看日志详细内容:
[root@rhel7_node1 ~]# journalctl -o verbose 查看详细内容
3.2使用systemd服务来永久保存日志
默认情况下日志会在下一次主机关闭启动后自动清除
如何永久保存日志操作如下图所示:
当重启服务后日志存放路径会被指定存放到:/var/log/journal
4.日志的采集(rsyslog)
rsyslog是一个开源工具,被广泛用于linux系统以通TCP/UDP协议转发或接收日志消息
服务名称:rsyslog.service
配置文件:/etc/rsyslog.conf
日志默认存放:
/var/log/messages 系统服务日志,常规信息,服务报错
/var/log/secure 系统认证信息日志
/var/log/maillog 系统邮件日志信息
/var/log/cron 系统定时任务信息
/var/log/boot.log 系统启动日志信息
日志类型
auth 用户认证
authpriv 服务认证
cron 时间任务
kern 内核类型
mail 邮件
news 系统更新信息
user 用户
日志级别
debug 程序排错日志
info 普通信息
notice 重要信息的普通日志
waring 程序警告
err 程序报错日志
crit 严重级别日志会导致系统不能正常工作
alert 系统中要立即更改的信息
emerg 系统严重问题日志
none 不记录
4.1 自定义日志采集路径:
设置格式
日志类型.日志级别 日志存放路径
[root@rhel7_node1 ~]# > /var/log/messages 清空文件内日志
[root@rhel7_node1 ~]# cat /var/log/messages
[root@rhel7_node1 ~]# vim /etc/rsyslog.conf 进入配置文件编辑
[root@rhel7_node1 ~]# systemctl restart rsyslog.service 重启服务时间
查看/var/log/messages和/var/log/westos日志内容相同
4.2自定义采集日志
格式:引号内的内容可以按需要更换位置
$template WESTOS, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
WESTOS 格式名称
%FROMHOST-IP% 日志来源主机IP
%timegenerated% 日志生成时间
%syslogtag% 日志生成服务
%msg% 日志内容
\n 换行
设定日志采集格式:
[root@rhel7_node1 ~]# vim /etc/rsyslog.conf
5.日志的远程同步
实验条件:两台虚拟机相互通信
rhel7_node1 IP:192.168.1.6 作为日志接受端,所有人日志都存放到此台 主机
rhel8_node1 IP: 192.168.1.5 发送日志到rhel7_node1主机中
5.1.1rhel7中设置如下
5.1.2在rhel7_node1中:
5.1.3重启服务并查看日志接收端口是否开启
5.2rhel8_node1设置如下:
重启服务
5.3测试日志是否可以传输
6.时间设定
timedatectl 命令的方法
命令 | 效果 |
---|---|
timedatectl | 显示当前时间 |
timedatectl set-time “2020-02-13 15:00:00” | 设置当前时间为2020-02-13 15:00:00 |
timedatectl list-timeznoes | 查看所有时间 |
timedatectl set- time " America/New_york" | 设置为纽约时间 |
timedatectl set-loct-nrtc 0或1 | 0:使用UTC时间 1:关闭UTC时间 |
如下:
7.时间同步服务
在rhel7作为时间源rhel8同步rhel7时间
服务名称: chronyd.service
配置文件: /etc/chrony.conf
rhel7_node1作为时间源
rhel8_node1同步rhel7_node1的时间