rsyslog 基础
日志类别
日志类型 日志内容
auth 用户认证时产生的日志
syslog 系统日志
local0~local7 自定义程序使用
等等
Properties模板元素属性
常用的变量
hostname 打印该日志的主机名。
fromhost 接收的信息来自于哪个节点。这里是DNS解析的名字。
fromhost-ip 接收的信息来自于哪个节点,这里是IP,本地的是127.0.0.1。
syslogtag 信息标签。大致形如 programed[14321] 。
programname 文件名
Properties与时间相关的属性属性 释义
$now 当前日期时间戳,格式为YYYY-MM-DD (2020-07-08)
$year 当前年份, 四位数 (2020)
$month 当前月份, 两位数 (07)
$day 当前月份的日期,两位数 (08)
$wday 当前天数周几 :0=Sunday,...6=Saturday
$hour 当前小时(24小时机制),两位数(16)
$hhour 半小时机值,就是0-29分钟显示0,30-59分钟显示1。
$qhour 一刻钟机值,通过0-3显示,每15分钟一截。
$minute 当前分钟数,两位数(57)
示例
定义日志目录
$template RemoteTestlogs,"/var/log/syslog/%fromhost-ip%/test.log"
/var/log/syslog/%$YEAR%-%$MONTH%-%$DAY%/%FROMHOST-IP%-%programname%.log
##日志文件权限
日志文件权限新生成的目录和文件权限可以在配置文件设置
vim /etc/rsyslog.conf
#尽量在开头设置
$FileOwner root
$FileGroup root
$FileCreateMode 0755 #文件权限
$DirCreateMode 0755 #目录权限
$Umask 0022
模版配置
1、示例1
$template DynamicFile,"/var/log/test_logs/%timegenerated%-test.log"
*.* ?DynamicFile
2、示例2
$template RemoteHost,"/home/rsyslog-data/%$YEAR%-%$MONTH%-%$DAY%/%FROMHOST-IP%.log
*.* ?RemoteHost
# & ~ 忽略所有的日志.
& ~
3、示例3
#配置文件存储模板
$template RemoteAuditLogs,"/data/auditd/%FROMHOST-IP%/audit.log" *
$template RemoteNetworkLogs,"/data/network-log/%HOSTNAME%/network.log" *
#引用模板
local6.* ?RemoteNetworkLogs
local2.* ?RemoteAuditLog
配置案例
客户端配置
1.2 相关配置
增加imfile模块配置,【不然自定义的日志,无法发送到服务端】
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
# 下发添加 方法一
module(load="imfile" PollingInterval="1")
# 方法二
$ModLoad imfile
local7.* /var/log/local7.log
#只发送local7 类型日志
#local7.* @@121.4.27.111
#将所有日志 多发送
*.* @@121.4.27.111
新增/etc/rsyslog.d/local7.conf
#工作目录 这个可不配 默认/var/log/下
#$WorkDirectory /var/log/rsyslog
#输入文件模式
input(type="imfile"
File="/var/log/local7.log" #可指定任意文件,但需要将文件权限置为777
Tag="local7" #文件标识,服务器接收到消息可以使用这个tag分类
Severity="info" #日志级别
Facility="local7"
PersistStateInterval="1" #回写偏移量数据到文件间隔时间(秒)
ruleset="remote") #规则集,rsyslog.conf中定义的rule名称
服务端配置
定义开启 接收的协议 以及端口
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
定义模版
1.示例1
#生成模板
$template SpiceTmpl,"%msg:2:$%\n"
$template CatalinaDynaFile,"/var/log/rsyslog/%fromhost-ip%/catalina_%$YEAR%-%$MONTH%-%$DAY%.log"
#匹配规则,文章后面将分享其他配置类型
:fromhost-ip,contains,"192.168.88.132" ?CatalinaDynaFile;SpiceTmpl
2.示例2
$template RemoteLogs,"/var/log/syslog/%$YEAR%-%$MONTH%-%$DAY%/%FROMHOST-IP%-%programname%.log"
*.* ?RemoteLogs
& ~
测试
-it error:这是两个选项的组合。-i选项指定附加进程ID(PID)到日志消息中,-t error选项指定将"error"作为消息的标记(TAG)。
-p local5.crit:这是指定日志消息的优先级的选项。在这个例子中,local5.crit表示使用syslog的local5设施和crit(严重)优先级。
"hello world":这是要记录的实际消息内容。
该命令用于向系统日志中添加一条日志消息
logger -it local1 -p local1.info "hello"