Linux系统中的日志管理
实验环境:
- client_westos.test.com: 172.25.254.10
- sever_node1.westos.com: 172.25.254.20
- systemctl stop firewalld 关闭防火墙
1.journald 服务名称:systemd-journald.service
journalctl 命令 默认日志存放路径: /run/log
- -n 3 #日志的最新3条
- --since "2020-05-01 11:00:00" #显示11:00后的日志
- until "2020-05-01 11:05:00" #显示日志到11:05
设定日志的显示方式
journalctl -o short #经典模式显示日志
verbose #显示日志的全部字节
export #适合传出和备份的二进制格式
json #js格式显示输出
显示制定级别的日志方式
journalctl -p
0 emerg #系统的严重问题日志
1 alert #系统中立即要更改的信息
2 crit #严重级别会导致系统软件不能正常工作
3 err #程序报错
4 warning #程序警告
5 notice #重要信息的普通日志
6 info #普通信息
7 debug #程序拍错信息
journalctl -F PRIORITY #查看可控日志级别 (0-7)
-f #监控日志
-u sshd #指定查看服务
--disk-usage #查看日志大小
--vacuum-size=1G #设定日志存放大小
--vacuum-time=1W #日志在系统中最长存放时间
用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/westos # 把系统中所有级别的日志存放到westos中
*.*;authpriv.none /var/log/westos #把系统中所有级别的日志存放到westos中,但是authpriv日志类型不存放
日志类型
- auth #用户认证
- authpriv #服务认证
- cron #时间任务
- kern #内核类型
- mail #邮件
- news #系统更新信息
- user #用户
日志级别
- 0 emerg #系统的严重问题日志
- 1 alert #系统中立即要更改的信息
- 2 crit #严重级别会导致系统软件不能正常工作
- 3 err #程序报错
- 4 warning #程序警告
- 5 notice #重要信息的普通日志
- 6 info #普通信息
- 7 debug #程序拍错信息
- 8 none #不采集
实验2.如何更改日志采集格式
1)自定义日志采集格式
$template WESTOS_FORMAT, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
#WESTOS_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:172.25.254.20 存放日志作为日志接受端,所有人日志都存放到此台 主机
- westos_linux:172.25.254.10 发送日志到westos_node1主机中
实验步骤:
- 在westos_node1中设定接受所有人的日志
systemctl stop firewalld #关闭防火墙
vim /etc/rsyslog.conf #修改服务配置文件
19 module(load="imudp") #打开日志接受插件
20 input(type="imudp" port="514") #指定插件使用接口
-
systemctl restart rsyslog # 重新启动加载服务
-
查询端口 root@rhel7_node1 ~]# netstat -antlupe | grep rsyslog udp
- westos_linux中设定发送日志到westos_node1中
vim /etc/rsyslog.conf # 修改服务配置文件
*.* @172.25.254.20 #把本机日志用udp的传输方式发送到172.25.254.20主机
systemctl restart rsyslog #重启
@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
测试:
在westos_linux和westos_node1中
> /var/log/messages
在westos_linux中
logger westos test message
在westos_node1中可以看到westos_linux中生成的日志!!
3.timedatectl 服务
- 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时间计算方式)
4.时间同步服务
服务名称: chronyd.service
配置文件: /etc/chrony.conf
在rhel7作为时间源rhel8同步rhel7时间
1)在rhel7中
vim /etc/chrony.conf
26 allow 172.25.254.0/24 ##允许172.25.254.0网段主机同步时间
29 local stratum 10 ##开启时间同步服务器功能并设定级别为10
systemctl restart chronyd.service
systemctl stop firewalld
2)在rhel8中
vim /etc/chrony.conf
pool 172.25.254.11 iburst
systemctl restart chronyd
测试查看
在rhel8中查看时间:
现实已经变成rhel7中时间
使用chronyc 命令查看时间效果:
[root@rhel8_node1 ~]# chronyc sources -v