Linux中的日志管理
- 1 journal 日志管理
- 1.1 journal 命令的用法
- 1.2 日志的显示方式
- 1.3 永久保存日志服务
- 2 rsyslog
- 2.1 日志存放路径
- 2.2 日志的类型和级别
- 2.3 日志的采集格式
- 2.3.1 定义日志采集格式
- 2.3.2 设置日志采集格式应用
- 2.4 日志的远程同步
- 3 timedatectl
- 3.1 系统时间管理
- 3.2 时间同步服务
1 journal 日志管理
实验前的准备
(1)关闭防火墙
(2)开启systemd-journald.service
(3)默认存放路径:/run/log
1.1 journal 命令的用法
命令 | 功能 |
journalctl | 查看系统日志 |
journalctl -n 4 | 查看最新的4条日志 |
journalctl --since “ 2020-11-1 20:28” | 显示日期之后的日志 |
journalctl --nutil “2020-11-1 20:29” | 显示日期之间的日志 |
journalctl --since “2020-11-1 20:28” --until “2020-11-1 20:29” | 显示日期之间的日志 |
1.2 日志的显示方式
命令 | 功能 |
journalctl -o short | 经典模式 |
journalctl -o verbose | 显示日志的全部字节 |
journalctl -o export | 适合输出和备份二进制模式 |
journalctl -o json | js格式输出的日志 |
- journalctl -p :显示指定级别的日志
命令 | 功能 |
journalctl -p emerg(0) | 系统的严重问题日志 |
journalctl -p alert(1) | 系统中立即要修改的日志 |
journalctl -p crit(2) | 严重级别可能影响软件工作 |
journalctl -p err(3) | 程序报错 |
journalctl -p warning(4) | 程序警告 |
journalctl -p notice(5) | 重要信息的普通日志 |
journalctl -p info(6) | 普通信息 |
journalctl -p debug(7) | 程序排错信息 |
- journalctl -F PRIORITY:查看系统日志的可控级别
- journalctl -u sshd:查看指定服务的日志
- journalctl --disk-usage :查看日志的容量
- journalctl --vacuum-size =1G:设置日志存放大小
- journalctl --vacuum-time =1W:设置日志存放时间为一周
- journalctl -f:监控日志
1.3 永久保存日志服务
系统中存放日志的默认位置:/var/log/journal
系统重启后日志默认会被清理
- 永久保存日志的步骤
重启前查看系统中的日志文件,用作实验的对照
(1)新建目录存放日志文件
(2)修改目录的所有组为systemd-journal
(3)修改目录的权限
(4)重启日志服务
重启后日志默认的存放位置:/run/log/journal中的日志文件被清空,重启后日志文件保存在/var/log/journal目录中
2 rsyslog
ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,rsyslog被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。
- 服务名称:rsyslog.service
- 配置文件:/etc/rsyslog.conf
2.1 日志存放路径
/var/log/messages | 系统服务日志,常规信息,服务报错 |
/var/log/secure | 系统认证信息日志 |
/var/log/maillog | 系统邮件日志信息 |
/var/log/cron | 系统定时任务信息 |
/var/log/boot.log | 系统启动日志信息 |
2.2 日志的类型和级别
日志类型.日志级别 | 日志的存放路径 | 功能 |
* . * | /var/log/westos | 将所有类型所有级别的日志存放到该文件中 |
* . * ;authpriv.none | /var/log/westos | 除了authpriv类型的日志,将所有类型所有级别的日志存放到该文件中 |
- 编辑rsyslog的配置文件rsyslog.conf:
- 日志的类型
日志的类型 | 含义 |
auth | 用户认证 |
authpriv | 服务认证 |
cron | 时间任务 |
kern | 内核类型 |
mail | 邮件类型 |
news | 系统更新信息 |
user | 用户 |
- 日志的级别
日志级别 | 含义 |
debug | 程序排错信息 |
info | 系统常规运行信息 |
notice | 重要信息的普通日志 |
waring | 程序警告 |
err | 程序报错 |
crit | 可能会导致系统软件不能正常工作的日志 |
alert | 系统重要立即更改的信息 |
emerg | 系统的严重问题日志 |
none | 不采集 |
2.3 日志的采集格式
2.3.1 定义日志采集格式
WESTOS——FORMAT ##格式名称
%FROMHOST-IP% ##日志来源主机IP
%timegenerated% ##日志生成时间
%syslogtag% ##日志生成服务
%msg% ##日志内容
\n ##换行
2.3.2 设置日志采集格式应用
- 在/etc/log/rsyslog.conf中设置日志采集格式
- /var/log/message中的日志以WESTOS中设置的日志格式显示
- 系统中的日志默认以WESTOS中设置的日志格式显示
2.4 日志的远程同步
实验前的准备:westos 172.25.254.44
:存放日志的接受方west 172.25.254.144
:发送日志到westos主机
(1)在westos主机中设定接收所有人的日志
- 关闭防火墙:
systemctl stop firewalld
- 编辑rsyslog的配置文件
rsyslog.conf
- 重启rsyslog服务
- 查询端口是否打开
westos主机中编辑配置文件rsyslog.conf
(2)west中设定将日志发送到westos主机
westos主机中rsyslog的编辑配置文件rsyslog.conf
@ ##表示使用UDP传输日志
@@ ##表示使用TCP传输日志
将所有类型所有级别的日志通过UDP发送到172.25.254.44主机
- 重启rsyslog服务
- 清空 /var/log/messages中的日志信息
- logger 生成日志
- 查看/var/log/messages中的日志信息
(3)测试
- 清空 /var/log/messages中的日志信息
- logger 生成日志
- 在westos中查看west中生成的日志,查看/var/log/messages中的日志信息
3 timedatectl
timedatectl是用来查询和修改袭系统时间和配置的Linux应用程序。它是systemd 系统服务管理的一部分,并且允许检查和修改系统时钟的配置
3.1 系统时间管理
- 查看当前系统时间配置:
timedatectl
- 设定系统时间:
timedatectl set-time "2020-11-01 11:11:11"
- 显示系统的所有时区:
timedatectl list-timezones
- 设定系统时区:
timedatectl set-timezone "Africa/Freetown"
- 设定系统时间计算方式:
timedatectl set-local-rtc 0/1
, 0表示使用utc时间的计算方式,1表示本地时间
3.2 时间同步服务
(1)提供同步时间的主机:rhel 172.25.254.14
- 编辑chronyd服务的配置文件:
vim /etc/chrony.conf
- 重启chronyd服务:
systemctl restart chronyd
- 关闭防火墙:
systemctl stop firewalld
(2)需要同步时间的主机:westos 172.25.254.44
- 编辑chronyd服务的配置文件:
vim /etc/chrony.conf
- 重启chronyd服务:
systemctl restart chronyd.service
- 查看时间同步效果:
chronyc sources -v