linux系统之系统日志管理

系统日志类型

(1) 系统的日志一般存在于/var/log 目录中
rsyslog服务 #此服务是用来采集系统日志的,它不产生日志,只是起到采集作用
在这里插入图片描述
rsyslog的管理:

/var/log/messages 大多数系统日志信息记录在此处
/var/log/secure 安全和身份认证相关的信息的日志
/var/log/maillog 系统邮件服务信息的日志
/var/log/cron 系统定时任务信息的日志
/var/log/boot.log 系统启动的日志

(2) 指定日志采集路径
/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 什么都不记录

注意:从上到下,级别从低到高,记录的信息越来越少
(3)rsyslog 服务
rsyslog 是一个开源工具,被广泛用于Linux系统以 TCP/UDP 协议转发或接收日志消息

此服务是用来采集系统日志的,它不产生日志,只是起到采集作用

主配置文件为 /etc/rsyslog.conf ,指定日志保存位置修改配置文件,修改后重启 rsyslog 服务生效

日志远程同步

日志发送方:
vim /etc/rsyslog.conf
在这里插入图片描述
在这里插入图片描述
. @日志接受方ip ##(“@”表示udp协议发送 “@@”表示tcp协议发送)

systemctl restart rsyslog ##重启服务

日志接收方:
vim /etc/rsylog.conf
在这里插入图片描述
15 $ModLoad imudp ##加载日志接收功能模块
16 $UDPServerRun 514 ##加载日志接收接口
systemctl restsrt rsyslog ##重启服务
systemctl stop firewalld ##关闭火墙
测试:

在发送方和接受方都清空日志文件

/var/log/messages

[[email protected] Desktop]# > /var/log/messages
[[email protected] Desktop]#
[[email protected] ~]# > /var/log/messages
[[email protected] ~]#

在日志发送方:
logger test
cat /var/log/messages ##查看日志已经生成
[[email protected] Desktop]# logger test
[[email protected] Desktop]# cat /var/log/messages
Oct 16 03:19:47 client root: test
[[email protected] Desktop]#
在这里插入图片描述
在日志接受方查看
cat /var/log/messages

Oct 16 03:19:47 client root: test
Oct 16 03:19:50 server rc.local: /etc/rc.d/rc.local: connect: No route to host
Oct 16 03:19:50 server rc.local: /etc/rc.d/rc.local: line 18: /dev/tcp/content.e
在这里插入图片描述

日志固定采集格式

vim /etc/rsyslog.conf
$template WESTOS, “%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n”
备注:在哪里看日志就在哪里设定格式

%timegenerated% 显示日志时间
%FROMHOST-IP% 显示主机IP
%syslogtag% 日志记录目标
%msg% 日志内容
\n 换行

在这里插入图片描述

在这里插入图片描述
在指定的日志中采用WESTOS格式

在这里插入图片描述
重启服务 并进行查看

在这里插入图片描述
在这里插入图片描述
让所有的日志都用此采集格式
$ActionFileDefaultTemplate WESTOS
在这里插入图片描述
在这里插入图片描述
之前已经采集的日志格式不会发生变化
用ssh登陆后新采集的日志格式发生变化
cat /var/log/secure
在这里插入图片描述
在这里插入图片描述

journalctl命令

rsyslog采集日志,从磁盘读取,速度慢,reboot 重启系统之后系统之前的日志会被清除
journal 不采集日志,直接从内存查看日志 ,速度更快,reboot 重启系统之后系统之前的日志会被清除

(1) journalctl
在这里插入图片描述

(2) journalctl -n 查看最近10条日志
在这里插入图片描述
(3) journalctl -n 3 查看最近的三条日志
在这里插入图片描述
(4)journalctl --since 11:30 --until 15:00 查看11:30至15:00之间的日志

在这里插入图片描述
(5) journalctl -o verbose 查看日志的详细参数
可以指定id和进程名称精确查看
在这里插入图片描述
在这里插入图片描述
(6) journalctl -p err 查看错误日志
在这里插入图片描述

利用systemd-journal采集日志

(1) 建立日志采集路径 并且将目录的组修改为systemd-journal

在这里插入图片描述
(2)保证journal目录下新建的文件都属于systemd-journal组
chmod g+s /var/log/journal/
在进程不关闭的情况下刷新进程 killall -1 systemd-journald

在这里插入图片描述
(3) 查看journal目录中是否有主机的机器码(该文件生成后才可以采集日志)
在这里插入图片描述
(4)reboot 查看是否可以采集该时间点之前的日志 若能查看到说明采集成功
在这里插入图片描述