【Linux-云原生-笔记】Rsyslog日志相关
一、概念
Rsyslog 是一个高性能、模块化的日志处理系统,用于 Linux/Unix 系统。它作为传统 syslogd
的增强替代品,负责收集、过滤、转发和存储系统日志及应用程序日志。
二、步骤
1、实验环境
主机1
主机名:RsyslogA
网卡:NAT
ip:172.25.254.10
主机2
主机名:RsyslogB
网卡:NAT
ip:172.25.254.20
2、Rsyslog基本参数
(1)安装包
rsyslog-8.2310.0-4.el9.x86_64
安装命令
dnf install rsyslog-8.2310.0-4.el9.x86_64 -y
(2)服务名称
rsyslog.service
服务启动
systemctl start rsyslog.service
(3)主配置文件
/etc/rsyslog.conf
(4)端口
tcp/udp 514
端口默认未开启
3、自定义日志路径
(1)默认日志路径
/var/log/boot.log —— 系统启动信息
/var/log/cron —— 系统中周期化任务日志
/var/log/maillog —— 邮件日志
/var/log/messages —— 服务常规信息,服务启动报错
/var/log/secure —— 系统认证日志
(2)更改日志存放路径
比如,将日志文件储存位置改为/var/log/lincoln:
1)编辑配置文件
进入配置文件
写这些
解释:
- *.* —— 第一个星*代表日志类型,第二个星*代表日志级别,整体的意思为“所有类型的所有级别日志”
- /var/log/lincoln —— 即为日志存放的路径文件
整体就代表:所有类型的所有级别日志存放到/var/log/lincoln里
改完记得重启
测试
解释:
“> /var/log/lincoln” —— 清除lincoln里的日志的意思
然后,写这个来测试日志
解释:logger是用来测试的
cat查看一下日志,可以发现刚刚的logger test,代表日志路径成功修改
2)设定采集日志的种类
目的:设定采集日志的种类,把系统中除服务认证之外的日志记录在/var/log/lincoln
再进入配置文件
在两个星号后加上这些:
解释:
authpriv —— 表示服务认证类型的日志
.none —— 表示不要的意思
整体就是“不要服务认证类型的日志”
改完重启
测试
清空lincoln里的日志
在主机B再登一次ssh(登录A的)
登录后,回A查看
就发现authpriv相关日志没了
(3)日志类型
auth —— 用户认证,比如用户登录系统
authpriv —— 服务认证,比如ssh远程登录
cron —— 时间任务
kern —— 内核类型
mail —— 邮件
news —— 系统更新信息
user —— 用户
(4)日志级别
none —— 不采集
debug —— 程序排错信息
info —— 程序常规运行信息
notice —— 重要信息的普通日志
waring —— 程序警告
err —— 程序报错
crit —— 严重级别会导致系统软件不能正常工作
alert —— 系统中立即要更改的信息
emerg —— 系统的严重问题日志
4、日志同步
在企业中,服务器系统数量不唯一,那多个操作系统对于日志的查询分析难度和时效性非常大,为了解决此问题,我可以把所有主机的日志同步到一台主机中来进行集中存储
(1)设定日志接收服务器RsyslogA
进配置
将这两个的井号解除
改完重启
测试
关火墙
(2)日志发送方RsyslogB
改完重启
(3)测试
A B都删
A监视
去B上
再回到A看
有,则同步成功
5、定义日志的采集格式
(1)编辑日志采集格式模板
进入配置文件
编写这两个
参数解释:
#%FROMHOST-IP% —— 生成日志的ip
#%timegenerated% —— 生成日志的时间
#%syslogtag% —— 生成日志的程序
#%msg% —— 生成日志的内容
#\n —— 换行
重启服务
测试
可以看到这下就变成了我们修改的模版,即:先ip,再时间.....(原本的模版是先时间,再ip)
成功
(2)修改默认日志格式为自己设定的格式
进入配置文件
复制上面的内容,然后将原文件内容引掉(加#)
再把这里后面的删掉,因为已经设置默认模板为我们自己的了
重启服务
测试
清理日志方便查看
成功