目录
实验环境
两台可以通信的主机
主机A:192.168.1.19
主机B:192.168.1.29
1. journald
1.1 journalctl概述
- 服务名称:为systemd-journald.service
- 服务提供一种改进的日志管理服务,可以收集来自内核、启动过程、标准输出、系统日志及守护进程启动和运行期间错误的消息,它将这些消息写入到一个结构化事件日志。
- 默认存放日志路径:/run/log ; 系统重启后会清空日志
1.2 查看系统日志
查看系统日志的命令为 journalctl
journalctl命令的用法:
参数 | 作用 |
---|---|
journalctl | 日志分析命令 |
journalctl -n 5 | 查看最近生成的5条日 |
journalctl --since | 查看从某个时间生成的日志 |
journalctl --util | 查看日志到某个时间 |
journalctl -o verbose | 查看日志能够使用的条件参数 |
jounalctl -o short | 经典模式显示日志 |
journalctl -o export | 适合传出和备份的二进制格式 |
journalctl -o json | js格式显示输出 |
journalctl -p | 显示指定级别日志 |
journalctl -p emerg | 系统的严重问题日志 |
journalctl -p alert | 系统中立即要更改的日志 |
journalctl -p crit | 严重级别会导致系统软件不能正常工作 |
journalctl -p err | 程序报错 |
journalctl -p warning | 程序警告 |
journalctl -p notice | 重要信息的普通日志 |
journalctl -p info | 普通信息 |
journalctl -p debug | 程序排错信息 |
journalctl -F PRIORITY | 查看可控日志级别 |
journalctl -u 服务名称 | 查看指定服务 |
journalctl --disk -usage | 查看日志大小 |
journalctl --vacuum -size=1G | 设定日志存放大小 |
journalctl -f | 监控日志 |
journalctl的指定参数信息查看日志
- _UID= //进程uid
- _PID= //进程id
- _GID= //进程gid
- _HOSTNAME= //进程所在主机
- _SYSTEMD_UNIT= //服务名称
- _COMM= //命令名称
示例:
示例①:查看sshd服务的日志
示例②:查看从“2020-02-14 05:10”开始,系统生成的日志
示例③:查看进程号为3431的系统日志
示例④:查看程序出错的日志
1.3 用journald服务永久存放日志
1.建立日志存放目录: /var/log/journal
2.修改journal目录的所有组为systemd-journal;修改权限为2774
3.重启systemd-journal服务
2. rsyslog
2.1 rsyslog概述
-
rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。
-
服务名称:rsyslog.service
-
配置文件:/etc/rsyslog.conf
-
日志的存放:永久存放日志
日志文件 解释 /var/log/messages 系统服务日志,常规信息,大多数日志信息 /var/log/secure 安全和身份认证相关日志文件 /var/log/maillog 与邮件服务器相关的日志文件 /var/log/corn 与定时任务相关的日志文件 /var/log/boot.log 系统启动日志信息 -
以读取文件内容的方式直接查看系统日志:cat /var/log/messages
2.2 自定义日志采集路径和采集格式
2.2.1 配置文件的相关内容
通过修改配置文件,来设定日志的采集路径或是采集格式,修改后要重启rsyslog服务生效。
日志类型 | 解释 |
---|---|
auth | 用户认证 |
authpriv | 服务认证 |
cron | 时间任务 |
kern | 内核类型 |
邮件 | |
news | 系统更新信息 |
user | 用户 |
日志级别 | 解释 |
---|---|
emerg | 系统的严重问题日志 |
alert | 系统中立即要更改的日志 |
crit | 严重级别会导致系统软件不能正常工作 |
err | 程序报错 |
arning | 程序警告 |
notice | 重要信息的普通日志 |
info | 普通信息 |
debug | 程序排错信息 |
none | 什么都不记录 |
2.2.2 自定义日志采集路径
方法:在配置文件的45行以后添加采集路径的规则
第一个【星号】所在的字段表示日志类型,第二个【星号】所在字段表示日志级别,用【.】隔开,后面为采集路径
示例①:将系统的所有日志存放在/var/log/linux文件中
示例②:把系统中所有日志存放到linux文件中,除了mail
2.2.3 自定义日志采集格式
格式 | 名称 |
---|---|
%FROMHOST-IP% | 日志来源主机 |
%timegenerated% | 日志生成时间 |
%syslogtag% | 日志生成服务 |
%msg% | 日志内容 |
\n | 换行 |
1.在配置文件中编写一个名为WESTOS的模板,采集格式为“日志来源主机IP,生成时间,服务,内容”
2.对指定文件用编写的模板采集日志,如:让linux文件以WESTOS格式采集日志
3. 重启rsyslog服务,查看linux日志文件,格式生效
4.若是想要所有文件都采用WESTOS格式,可将默认模板名改为WESTOS
2.3 日志的远程同步
实验目的:
主机A 192.168.1.19:发送日志到主机B
主机B 192.168.1.29:日志接收端
1.在主机A中修改配置文件,设定发送日志到主机B,重启服务
@:udp传输
@@:tcp传输
2.在主机B修改配置文件,设定接收所有人的日志
3.查看到主机B的514端口已打开,关闭火墙;此时,日志同步设定已完成
4.为了观察实验效果,两台主机分别清空日志文件,在主机A上执行logger linux 测试命令,在主机B上可以查看到同步的日志
3. 时间管理
timedatectl命令用来管理系统的时间
命令 | 作用 |
---|---|
timedatectl set-time +【具体的时间】 | 设定系统时间 |
timedatectl list-timezones | 显示所有时区 |
timedatectl set-timezone+【时区】 | 设定系统时区 |
timedatectl set-local-rtc 0/1 | 设定系统时间计算方式;0表示硬件采用utc计算时间方式,1表示让硬件采用本地时间 |
示例:
1.设定系统时间
2.设定系统时区
4. 时间同步服务
- 服务名称: chronyd.service
- 配置文件: /etc/chrony.conf
实验目的:
主机A:192.168.1.19 作为时间源
主机B:192.168.1.29 同步主机A的时间
实验过程:
1.在主机A中修改配置文件,允许192.168.1.0网段的主机同步时间,并开启时间服务,设定级别为10
2.在主机A中重启chrony服务,关闭火墙
3.在主机B中修改配置文件,同步主机A的时间,重启chronyd服务
4.在主机B查看时间,已变为主机A的时间
5.主机B使用chronyc sources -v 命令查看同步效果