系统日志管理
rsyslog服务
此服务不产生日志,只是把所有产生的日志采集起来再放到指定位置
rsyslog的管理
/var/log/messages #服务信息日志
/var/log/secure #系统登陆日志
/var/log/cron #定时任务日志
/var/log/maillog #邮件日志
/var/log/boot.log #系统启动日志
rsyslog的配置文件/etc/rsyslog.conf
配置方法
什么类型的日志.什么级别的日志 /var/log/file #日志采集规则
日志类型
auth ##pam认证产生的日志
authpriv ##ssh,ftp等登陆信息的认证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)-rsyslog ##服务内部的信息、时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix to unix copy,unix主机之间相关的通讯
local 1-7 ##自定义的日志设备
日志级别
debug ##有调试信息的,日志信息量最多
info ##一般信息的日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等严重信息
none ##什么都不记录
注意:从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册:man 3 syslog
日志的远程同步
日志发送方
vim /etc/rsyslog.conf
. @172.25.254.200 ##@表示udp协议发送,@@表示tcp协议发送
systemctl restart rsyslog.service ##重启服务来使更改生效
日志接收方
vim /etc/rsyslog.conf
15行 $ModLoad imudp ##日志接收模块
16行 $UDPServerRun 514 ##开启接收端口为514
systemctl restart rsyslog.service ##重启服务来使更改生效
systemctl stop firewalld.service ##关闭火墙
systemctl disable firewalld.service ##设定火墙开机关闭
##因为火墙可能会对实验造成影响
测试
在发送方和接收方都清空日志文件
/var/log/messages
在日志的发送方
logger test
cat /var/log/message ##查看日志已经生成
在日志接收方查看
cat /var/log/message
日志的采集格式
vim /etc/rsyslog.conf
$template @@@, “%***%&%***%&%***%\n”
@@@ ##记录格式的名字
%timegenerated% ##显示日志时间
%FROMHOST-IP% ##显示主机ip
%syslogtag% ##日志记录目标
%msg% ##日志内容
\n ##换行
& ##中间用什么分隔开,日志里就显示什么
*. * /var/log/westos;@@@ ##表示什么记录使用@@@这种格式
写完后重启服务sysytemctl restart rsyslog.service
cat /var/log/westos ##查看变化
日志的时间同步
服务端
vim /etc/chrony.conf
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
客户端
vim /etc/chrony.conf
server 172.25.254.223 iburst ##本机立即同步223主机的时间
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
#测试(在客户端)
chronyc sources -v
再次使用date命令,可以看到客户端与服务端已经同步
timedatectl 命令
在Linux中,我们使用utc计时方式,即世界时间(伦敦时间)加上本地时区,这与Windows不同,Windows是直接使用本地时间
timedatectl ##管理系统时间
status ##显示当前时间信息
set-time ##设定当前时间
set-timezone ##设定当前时区
set-local-rtc 0|1 ##设定是否使用utc时间,0表示使用,1表示使用
list-timezone ##查看支持的所有时区
journal
journalctl ##日志查看工具
-n 3 ##查看最近三条日志
-p err ##查看错误日志
-o verbose ##查看日志的详细参数
–since ##查看从什么时间开始的日志
–until ##查看到什么时间为止的日志
如何使用systemd-journald保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能看到本次开机之后的日志
上次关机之前的日志是无法查看的
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald
这时打开目录,可以看到一个以我们的机器码作为名字的目录
ls /var/log/journal
这时我们看一下时间,记录一个日志
重新启动机器查看日志,可以看到我们这次开机之前的日志
但是注意,我们的系统空间资源是有限的,不能够无限地记录日志,但是在journal里记录的日志只增不减,会将系统撑爆,所以在我们不需要的时候,一定要删除这个目录并重启系统服务