Linux系统中的日志管理
一、.journald
服务名称:systemd-journald.service
journalctl
默认日志存放路径: /run/log
journal 老牌的日志管理命令
1 journalctl命令的用法
journalctl | 注释 |
---|---|
-n 3 | 日志的最新3条 |
–since “2020-05-01 11:00:00” | 显示11:00后的日志 |
–until “2020-05-01 11:05:00” | 显示日志到11:05 |
-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 |
日志回滚
当设置了日志存放大小之后和存放时间之后,其能保证日志的新,空间能够一直存最新的日志,旧的会被清掉,
--vacuum-size=1G 设定日志存放大小
--vacuum-time=1W 日志在系统中最长存放时间
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.完成以上操作后再次重启系统可以看到日志是被保存下来的
rsyslog.service 新的日志管理命令
二、.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/westos
把系统中所有级别的日志存放到westos中
*.*;authpriv.none /var/log/westos
把系统中所有级别的日志存放到westos中
但是authpriv不存放到westos中
日志类型
auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news #系统更新信息
user #用户
日志级别
debug #程序排错信息
info #程序常规运行信息
notice #重要信息的普通日志
waring #程序警告
err #程序报错
crit #严重级别会导致系统软件不能正常工作
alert #系统中立即要更改的信息
emerg #系统的严重问题日志
none #不采集
2.如何更改日志采集格式
2.1定义日志采集格式
$template WESTOS_FORMAT, “%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n”
WESTOS_FORMAT: 格式名称
%FROMHOST-IP%: 日志来源主机IP
%timegenerated%: 日志生成时间
%syslogtag%: 日志生成服务
%msg%: 日志内容
\n: 换行
2.2设定日志采集格式应用
*.*;authpriv.none /var/log/westos;WESTOS
module(load="builtin:omfile" Template="WESTOS_FORMAT")
##默认采用WESTOS_FORMAT格式
vim /etc/rsyslog.conf
systemctl restart rsyslog.service
日志的内容会以设定的格式出现,ip 生成时间,服务,内容
2.3.日志的远程同步
22主机 192.168.1.22存放日志作为日志接受端,所有人日志都存放到此台主机
34主机 192.168.1.34发送日志到22主机中
1.在22主机中设定接受所有人的日志
1
systemctl stop firewalld
2
vim /etc/rsyslog.conf
19 module(load=“imudp”) ##打开日志接受插件
20 input(type=“imudp” port=“514”) ##指定插件使用接口
3
systemctl restart rsyslog
4
查询端口:
接受端打开514端口即可
2.34主机中设定发送日志到22主机中
1
vim /etc/rsyslog.conf
*.* @192.168.1.22
2
systemctl restart rsyslog
@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@192.168.1.34 把本机日志用udp的传输方式发送到192.168.1.34主机
测试:
在22主机和34主机中
> /var/log/messages
在22主机中可以看到34主机生成的日志!!
三、.timedatectl
RTC time
:硬件时间
硬件时间+时区=系统时间
Universal time
: 格林威治时间:标准时间,
NTP service
: 时间同步服务
TIME zone
: 时区
timedatectl set-time “2020-02-13 10:41:55” ##设定系统时间
timedatectl list-timezones ##显示系统的所有时区
timedatectl set-timezone “Asia/Shanghai” ##设定系统时区
timedatectl set-local-rtc 0|1 ##设定系统时间计算方式
##0表示使用utc时间计算方式
四、.时间同步服务(NTP service)
服务名称: chronyd.service
配置文件: /etc/chrony.conf
在34(—server)作为时间源22(—client)同步34时间
在34(---->server)中
vim /etc/chrony.conf
systemctl restart chronyd.service
(注:最好设定服务开机自启 systemctl enable --now chronyd.service)
systemctl stop firewalld
在22(---->client)中
vim /etc/chrony.conf
pool 192.168.1.34 iburst
systemctl restart chronyd
查看:
在22中查看时间:
现实已经变成34中时间
使用chronyc 命令查看时间效果:
注:
1.如果客户端在配置文件中写的是域名,则要在/etc/hosts文件中写上相应的域名和IP的解析
2.timedatectl set-local-rtc 0|1 ##设定系统时间计算方式
##0表示使用utc时间计算方式
可能影响时间同步