Linux系统中的日志管理
实验环境
两台虚拟机
systemctl stop firewalld 关闭防火墙
##journald
默认日志存放路径:var/run/log
##实验一 journalctl命令的用法
journalctl
-n 3 日志的最新3条
–since “aa:bb” --until“bb:cc”
-o 设定日志的显示方式
short 经典模式显示日志
verbose 显示日志的全部字节
export 适合传出和备份的二进制格式
json js格式显示输出
-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 日志在系统中最长存放时间
-f 监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service
##实验2 用journal服务永久存放日志
系统中默认日志在/run/log/journal中
默认方式在系统重启后会被清理 想永久保存日志的方法需要操作:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journaldcd
重启后日志被制定在/var/log/journal
##rsyslog
服务名称:rsyslog.service
配置文件: /etc/rsyslog.conf
实验1 自定义日志采集路径
vim /etc/rsyslog.conf
auth.;authpriv. /var/log/lcf.log 把系统中的服务认证和用户认证存放到lcf.log中
做完都需要 systemctl restart rsyslog.service一次
日志类型
auth 用户
authpriv 服务
cron 时间任务
kern 内核类型
mail 邮件
news 更新信息
user 用户
实验2 日志的远程同步
1 接受方 systemctl disable --now firewalld
2 接受方
vim/etc/rsyslog.conf
udp中 两个#去掉
发送方
. @172.18.0.102
3在两个系统 systemctl restart rsyslog.service
测试:
在a和b中
`> /var/log/messages清空
在发送方 logger xxxxx
就能接受 cat /var/log/messages
@ 表示使用udp传输日志
@@ tcp
@172.25.254.226 本机日志用udp传输到226主机
实验3 如何更改日志采集格式
定义日志采集格式
$template WESTOS,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
其中 WESTOS 格式名称
%FROMHOST-IP% 日志来源主机ip
%timegenerated% 日志生成时间
%syslogtag% 日志生成服务
%msg% 日志内容
设定日志采集格式应用
.;authpriv.none /var/log/lcf;WESTOS
或
module(load=“builtin:omfile“ Template=”WESTOS“) #默认采用WESTOS 格式
(在b主机上收到更改过格式的日志)
##timedatectl
timedatectl set-time “2021-04-19 10:22:22“ 设定系统时间
timedatectl list-timezones 显示系统的所有时区
timedatectl set-timezone “Asia/Shanghai” 设定系统时区
timedatectl set-local-rtc 0|1 设定系统时间计算方式
0表示使用utc时间计算方式
时间同步服务
服务名称: chronyd.service
配置文件: /etc/chrony.conf
目的:在b作为时间源同步a的时间
步骤:
在服务器b中
vim /etc/chrony.conf
allow 0.0.0.0/0 允许所有主机同步时间
local stratum 10 开启时间同步服务器功能并设定级别为10
systemctl restart chronyd.service
systemctl stop firewalld
在客户端a中
vim /etc/chrony.service
pool 172.18.0.202 iburst
systemctl restart chronyd.service
同步时间完成
查看:
chronc sources -v
“>” 清空
查询端口:
netstat -antlupe | grep rysylog