Linux系统中的日志管理
实验环境
systemctl stop firewalld(关闭火墙)
1.journald
服务名称
:
systemd
-
journald.service
journalctl 默认日志存放路径:
/
run
/
log
实验
1 journalctl
命令的用法
journalctl
-n 3 日志的最新3条
-f 监控日志
-o 设定日志的显示方式
-o short 经典模式显示日志
-o verbose 显示日志的全部字节
-o export 适合传出和备份的二进制格式
-o json js格式显示输出
-p 显示制定级别的日志
-p 0 emerg系统的严重问题日志
1 alert系统中立即要更改的信息
2 crit严重级别会导致系统软件不能正常工作
3 err程序报错
4 warning程序警告
5 notice重要信息的普通日志
6 info普通信息
7 debug程序拍错信息
-F PRIORITY 查看可控日志级别
-u sshd 指定查看服务
--disk-usage 查看日志大小
--vacuum-size=1G 设定日志存放大小
--vacuum-time=1W 日志在系统中最长存放时间
--since "2022-04-25 11:00:00" 显示11:00后的日志
--until "2022-04-25 11:05:00" 显示日志到11:05
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service

实验
2
用
journald
服务永久存放日志
系统中默认日志在
:/
run
/
log
/
journal
中
默认方式在系统重启后日志会被清理,要永久保存日志请完成以下操作
:
mkdir
/
var
/
log
/
journal
chgrp systemd
-
journal
/
var
/
log
/
journal
chmod
2775
/
var
/
log
/
journal
systemctl restart systemd
-
journald.service
当服务重启日志存放路径会被制定到
:
/
var
/
log
/
journal
测试
:
1.
在操作以上步骤之前查看日志
2.
重启系统
3.
再次查看日志
4.
可以看到日志是不会被保存下来的只能看到重启之后的日志
5.
完成以上操作后再次重启系统可以看到日志是被保存下来的

2.rsyslog
服务名称
:
rsyslog.service
日志存放
:
/
var
/
log
/
messages #
系统服务日志
,
常规信息
,
服务报错
/
var
/
log
/
secure #
系统认证信息日志
/
var
/
log
/
maillog #
系统邮件日志信息
/
var
/
log
/
cron #
系统定时任务信息
/
var
/
log
/
boot.
log
#系统启动日志信息
配置文件
:
/
etc
/
rsyslog.conf
实验
1.
自定义日志采集路径
vim
/
etc
/
rsyslog.conf 更改文件
日志类型
.
日志级别 日志存放路径
*.*
/
var
/
log
/free
##
把系统中所有级别的日志存放到free
中
*.*
;authpriv.none
/
var
/
log
/free
把系统中所有级别的日志存放到free
中 ,但是
authpriv
不存放到free
中

日志类型
auth #
用户认证
authpriv #
服务认证
cron #
时间任务
kern #
内核类型
mail #
邮件
news #
系统更新信息
user #
用户
日志级别
debug #
程序排错信息
info #
程序常规运行信息
notice #
重要信息的普通日志
waring #
程序警告
err #
程序报错
crit #
严重级别会导致系统软件不能正常工作
alert #
系统中立即要更改的信息
emerg #
系统的严重问题日志
none #
不采集

实验
2.
如何更改日志采集格式
1
定义日志采集格式
$template FREE_FORMAT, "
%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
#FREE_FORMAT
:
格式名称
#
%FROMHOST-IP%
:
日志来源主机
IP
#
%timegenerated%
: 日志生成时间
#
%syslogtag%
: 日志生成服务
#
%msg%
: 日志内容
#
\
n
: 换行

2
设定日志采集格式应用
*.*
;authpriv.none
/
var
/
log
/
westos;WESTOS
module(load
=
"builtin
:
omfile" Template
=
"WESTOS_FORMAT") ##
默认采用
WESTOS_FORMAT
格式

实验
3.
日志的远程同步
westos_node1
:
192.168.155.100 存放日志作为日志接受端,
所有人日志都存放到此台主机
westos_linux
:
192.168.155.200
发送日志到westos_node1
主机中
1.
在
westos_node1
中设定接受所有人的日志
systemctl stop firewalld
vim
/
etc
/
rsyslog.conf
19
module(load
=
"imudp") ##
打开日志接受插件
20
input(type
=
"imudp" port
=
"
514
") ##
指定插件使用接口
systemctl restart rsyslog


查询端口
:
udp
0
0 0.0.0.0
:
514
0.0.0.0
:*
0
0 48558 2989
/
rsyslogd
udp6
0
0
:::
514
: ::*
0
0 48559
2989
/
rsyslogd

2.
westos_linux
中设定发送日志到
westos_node1
中
vim
/
etc
/
rsyslog.conf
*.*
@
192.168.155.100
systemctl restart rsyslog
@
表示使用udp
传输日志
@@
表示使用tcp
传输日志
@
192.168.155.100
把本机日志用
udp
的传输方式发送到192.168.155.100
主机

测试
:
在
westos_linux
和
westos_node1
中
> /
var
/
log
/
messages
在
westos_linux
中 logger westos test message
在
westos_node1
中可以看到
westos_linux
中生成的日志
!!

3.
timedatectl
timedatectl set
-
time "
2222-02-22 22:22
" ##
设定系统时间
timedatectl list
-
timezones ##显示系统的所有时区
timedatectl set
-
timezone "Africa/Bangui"
##设定系统时区
timedatectl set
-
local
-
rtc
0
|
1
##设定系统时间计算方式 ,0表示使用
utc
时间计算方式


4.
时间同步服务
服务名称
: chronyd.service
配置文件
:
/
etc
/
chrony.conf
在free2
作为时间共享端free1
同步free2
时间端
在
time_server
中
vim
/
etc
/
chrony.conf
26
allow
172.25.254.0
/
24
允许172
.25.254
.0
网段主机同步时间
29
local stratum
10
开启时间同步服务器功能并设定级别为10

systemctl stop firewalld
在free2中共享时间端

让free1同步free2时间端
vim
/
etc
/
chrony.conf
pool
192.168.2.200
iburst

在free1中 执行chronyc sources -v查看效果