目录
重启服务,使用tail -f命令监控日志文件,在另一个shell中连接服务器172.25.254.105,产生新日志
一、什么是系统日志
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。
二、journald日志采集
服务名称:systemd-journald.service
默认日志存放路径:/run/log,在重启系统后清空,只看当前主机开启后存放的日志
1、journalctl命令的用法
journalctl | -n 3 | 日志最新3条 |
--since "11:35" | 查看11:35之后的日志 | |
--until "11:35" | 查看截至11:35的日志 |
journalctl -o | short | 经典模式显示日志 |
verbose | 显示日志的全部字节 | |
export | 适合传输和备份的二进制格式 | |
json | js格式输出日志 |
journalctl -p | 0 | emerg 系统的严重日志问题 |
1 | alert 系统中立即要更改的信息 | |
2 | crit 严重级别会导致系统软件不能正常工作 | |
3 | err 程序报错 | |
4 | warning 程序警告 | |
5 | notice 重要信息的普通日志 | |
6 | info 普通信息 | |
7 | debug 程序排错信息 |
journalctl | -F PRIORITY | 查看日志可控级别 |
-u sshd | 指定查看服务 | |
--disk-usge | 查看日志大小 | |
--vacumm-size=1G | 设定日志存放大小 | |
--vacumm-size=1W | 设定日志在系统中存放的最长时间 | |
-f | 监控日志 |
【举例】
查看journal服务状态
查看日志的最新10条;查看11:35之后的日志
查看11:35之前产生的日志
经典模式显示日志
适合传输和备份的二进制格式
显示日志的全部字节
js格式显示输出
journalctl -p 4 程序警告
查看可控日志级别
指定查看sshd服务
查看日志大小
指定日志存放大小为1G
指定日志最长存放时间为1周,超过一周后日志回滚
监控日志
2、实验环境的搭建
关闭两台虚拟机的火墙
3、永久保存日志
mkdir /var/log/journal创建日志存储目录
chgrp systemd-journal /var/log/journal将所有组改为systemd-journal否则系统无法识别
ls -ld /var/log/journal查看目录相关属性信息
chmod 2775 /var/log/journal给予目录权限
2新建的文件自动归属到所属的组中
systemctl restart systemd-journald.service
reboot 重启
服务重启后日志的存放路径会被指定到:/var/log/journal
先查看日志
可以看到,当重启后之前的日志不再存在,只有重启之后的日志
创建/var/log/journal目录用于日志存储,将所有组改为systemd-journal否则系统无法识别,查看目录的相关属性信息,给予目录权限,2为将新建的文件自动归属到所属的组中
重启虚拟机,查看日志可以看到与原来的日志并没有消失而是被保存下来了
三、rsyslog日志采集
服务名称:rsyslog.service 配置文件:/etc/rsyslog.conf
Unix/Linux上的Syslog(系统日志协议)服务可以充当网络上的企业骨干网络中的日志监视点,在该网络上,所有服务器,网络设备,交换机,路由器和内部服务均会创建日志,无论是链接到特定内部问题还是仅提供信息性消息 可以发送他们的日志到这台syslog服务器上。在CentOS/RHEL8服务器上,不论你选择何种安装模式, rsyslog守护程序默认安装的,它最重要的日志服务器进程.但默认的/etc/rsyslog.conf配置文件是不会让rsyslog进程闲置不干任何事情
日志存放
/var/log/messages | 系统服务日志,常规信息,服务报错 |
/var/log/secure | 系统认证信息日志 |
/var/log/maillog | 系统邮件日志信息 |
/var/log/cron | 系统定时任务信息 |
/var/log/boot.log | 系统启动日志信息 |
1、自定义日志采集路径
> /var/log/messages将日志清空(企业中不要使用,仅为保证实验环境)
cat /var/log/messages查看是否清空
vim /etc/rsyslog.conf
47行*.*; authpriv.none /var/log/westos
systemctl restart rsyslog.service
tail -f /var/log/westos监控日志文件
使用另一个shell连接该服务器
ssh -l root 172.25.254.105
清空日志
编辑/etc/rsyslog.conf,在47行添加*.*; authpriv.none /var/log/westos,退出保存
重启服务,使用tail -f命令监控日志文件,在另一个shell中连接服务器172.25.254.105,产生新日志
2、日志的类型和级别
日志类型
类型 | 说明 |
auth | 用户认证 |
authpriv | 服务认证 |
cron | 时间认证 |
kern | 内核类型 |
邮件 | |
news | 用户更新信息 |
user | 用户 |
日志级别
级别 | 说明 |
debug | 程序排错信息 |
info | 程序常规运行信息 |
notice | 重要信息的普通日志 |
waring | 程序警告 |
err | 程序报错 |
crit | 严重级别会导致系统软件运行不能正常工作 |
alert | 系统中立即要更改的信息 |
emerg | 系统的严重问题日志 |
none | 不采集 |
3、日志远程同步
查看火墙systemctl status firewalld
若打开则关闭火墙systemctl disable --now firewalld
b向a发送 /remote
TCP稳定 UDP快(内网)
两台虚拟机一台(a)作为接受方一台(b)作为发送方
接收方
vim /etc/rsyslog.conf
UDP相关信息
19 module(load="imudp") # needs to be done just once
20 input(type="imudp" port="514")
取消注释
systemctl restart rsyslog.service
netstat -atnlupe | grep rsyslogd 查看端口
> /var/log/messages 保证环境的纯净,在企业中不可使用!!!
tail -f /var/log/messages监控发送方
vim /etc/rsyslog.conf
47*.* @172.25.254.105
systemctl restart rsyslog.service
> /var/log/messages
logger test日志测试在接收方监控中查看日志信息是否收录
@ | 使用udp传输日志 |
@@ | 使用tcp传输日志 |
@172.25.254.105 | 把本机的日志用udp方式发送到172.25.254.105 |
实验步骤:
查看火墙,接收方aaaa火墙处于开启状态,关闭火墙
发送方火墙处于关闭状态
在接受方aaaa中,编辑/etc/rsyslog.conf,19,20行取消注释,保存并退出
编辑完成后重启rsyslog服务,查看端口
清空日志保证实验环境(企业中不可使用)
使用tail -f 命令监控日志
在日志的发送方bbbb中编辑/etc/rsyslog.conf文件
重启rsyslog.service服务
清空日志,使用日志测试
在日志接收方aaaa可以看到来自bbbb的日志
四、采集日志的格式调整
编辑/etc/rsyslog.conf文件,编辑28行,34行,46行,退出保存
重启服务,测试
在日志接收方查看
五、系统的时间同步
1、timedatectl
timedatectl set-time "2020-01-01 00:00:01" | 设定系统时间 |
timedatectl list-timezones | 显示系统的所有时区 |
timedate set-timezone "Asia/Shanghai" | 设定系统时区 |
timedatectl set-local-rtc 0 | 1 | 设定系统时间计算方式 0表示utc时间 |
2、时间同步实验
使火墙处于关闭状态
编辑/etc/chrony.conf文件,26行打开时间共享,保存后重启服务
监控时间
在被同步时间的客户端上编辑/etc/chrony.conf,保存后重启服务
查看时间同步
3、在time_client中查看时间
使用chronyc命令查看时间效果