操作系统:CentOS release 6.7

download yum repo file:rsyslogall.repo

[rsyslog-v8-stable]
name=Adiscon Rsyslog v8-stable for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
protect=1

安装:

yum clean all
yum makecache
yum install rsyslog

检查:

配置文件解析:

Rsyslogd的配置文件是/etc/rsyslog.conf,一般在/etc目录下,先看看rsyslog client的配置:

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html global(net.enableDNS = "on")
global(net.ipprotocol = "ipv4-only")
global(debug.onShutdown = "on")
#max maxMessageSize 32K,default 8K
$maxMessageSize 16K #### MODULES #### #提供本地系统日志记录,比如使用logger模拟发送日志
module(load="imuxsock") #提供内核级别的日志记录
module(load="imklog") #提供标记message的能力
#module(load"immark") # Provides UDP syslog reception
#提供UDP的514端口来接收UDP协议发送过来的数据
module(load="imudp")
input(type="imudp" port="514") # Provides TCP syslog reception
#提供TCP的514端口来接收TCP协议发送过来的数据
#module(load="imtcp")
#input(type="imtcp" port="514") #### GLOBAL DIRECTIVES #### #设置默认的timestamp格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #文件同步功能默认被禁止了,一般情况下不需要这种功能
#$ActionFileEnableSync on # Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf #### RULES #### #记录所有的kernel日志到console.
#kern.* /dev/console #记录所有事件日志级别大于info的日志到/var/log/message,但是mail、authpriv、cron的日志除外
*.info;mail.none;authpriv.none;cron.none /var/log/messages #authpriv相关的日志存放到/var/log/secure
authpriv.* /var/log/secure #邮件相关的日志存放到/var/log/maillog
mail.* /var/log/maillog #定时任务的日志存放到/var/log/cron
cron.* /var/log/cron #所有级别大于emerg的信息,每个人都会看到
*.emerg :omusrmsg:* #在一个特殊的文件里面保存crit或者级别更高的uucp日志
uucp,news.crit /var/log/spooler #记录启动信息到/var/log/boot.log
local7.* /var/log/boot.log #所有日志发送到远程rsyslog服务器,@表示UDP协议,@@表示TCP协议
*.* @172.16.20.193:514 # ### begin forwarding rule ###
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# ### end of the forwarding rule ###

大部分的参数都已经解释了,下面主要看看RULES中日志格式的指定,一般是:日志类型(连接符号)日志级别   日志处理方式

日志类型:

auth        –pam产生的日志
authpriv –ssh,ftp等登录信息的验证信息
cron –时间任务相关
kern –内核
lpr –打印
mail –邮件
mark(syslog)–rsyslog服务内部的信息,时间标识
news –新闻组
user –用户程序产生的相关信息
uucp –unix to unix copy, unix主机之间相关的通讯
local 1~7 –自定义的日志设备

连接符号:

.xxx: 表示大于等于xxx级别的信息
.=xxx:表示等于xxx级别的信息
.!xxx:表示在xxx之外的等级的信息

日志级别:

级别从低到高,记录的信息越来越少
debug –有调式信息的,日志信息最多
info –一般信息的日志,最常用
notice –最具有重要性的普通条件的信息
warning –警告级别
err –错误级别,阻止某个功能或者模块不能正常工作的信息
crit –严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert –需要立刻修改的信息
emerg –内核崩溃等严重信息
none –什么都不记录

处理方式:

/var/log/file	发送到日志文件
@@192.168.0.1 发送到TCP server
@192.168.0.1 发送到UDP server
user1,user2 发送到在线用户user1,user2
~ 丢弃该日志
^/path/script 执行的脚本,^后面跟可以执行的脚本,日志内容可以作为脚本的第一个参数,可以用来触发告警

上面就是Rsyslog client的基本配置,其中一些高级功能并没有介绍,在下面的Rsyslog server中会做介绍。server的配置只需要在client上增加少许即可:

#$template TmplMsg, "/var/log/rsyslog_custom/%HOSTNAME%/%PROGRAMNAME%.log"
template(name="FTM" type="string" string="/var/log/rsyslog_custom/%fromhost-ip%/%$YEAR%/%$MONTH%/%$DAY%/%PROGRAMNAME%.log")
*.* ?FTM

增加的这一步就是为了分离各个client汇报上来的数据,存放在不同的目录,使用到了模板技术,关于模板的官方解释看这里:template

Templates:允许你设置自己的格式,也可以用来生成动态文件,每一个rsyslog的输出都会用到Templates,可以指定多个模板,不同的日志输出到不同的模板,如果没有指定Templates,则系统会使用默认的Templates,可以使用老版本的配置语法$template,也可以使用新版本的配置语法template(),官方建议还是使用新语法。

$template:

语法格式:$template name,param[,options]

name是指定模板的名称,param是指定模板的内容

$template TmplMsg, "/var/log/rsyslog_custom/%HOSTNAME%/%PROGRAMNAME%.log"

TmplMsg就是模板名称,后面的是文件名称,中间“”之间的是内部变量,后面会介绍。

系统中有一些内置的保留模板,他们使用RSYSLOG_开头的模板名称,有如下:

RSYSLOG_TraditionalFileFormat
        RSYSLOG_FileFormat 
        RSYSLOG_TraditionalForwardFormat
        RSYSLOG_SysklogdFileFormat 
        RSYSLOG_ForwardFormat 
        RSYSLOG_SyslogProtocol23Format 
        RSYSLOG_DebugFormat

template():

语法格式 :基本的配置语法是template(parameters),还支持一种扩展的格式template(parameters) { list-descriptions }

template()用来定义templates,这是一个静态配置,parameter主要有两个参数:name和type。

name:指定模板的名称,必须是唯一的。

type:指定模板的类型,不同的模板类型指定了不同的模板指定方法,一般有list、subtree、string、plugin四中类型。

其中string类型的比较常用,我们就以string为例:

template (name="tpl3" type="string" string="%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n")
template (name="TraditionalFormat" type="string" string="%timegenerated% %HOSTNAME% %syslogtag%%msg%\\n")
template (name="DynFile" type="string" string="/var/log/system-%HOSTNAME%.log")

上面%%之间的大写变量是可以替换的,:::后面跟的是一些属性。

Properties:

data items在rsyslog中叫做properties,一般用在templates(就是%%之间的变量)或者条件判断中。详细的看:Properties。主要有三种Properties:

Message Properties:

msg			        匹配message中的msg部分
rawmsg 从socket收到的信息,一般用来debug
rawmsg-after-pri 和rawmsg类似,但是syslog PRI被移除了
hostname message的主机名
source HOSTNAME的别名
fromhost message来源的主机名,一般是用在relay chain中
fromhost-ip 同fromhost,不过获取的是ip
syslogtag message的tag
programname 是tag的静态部分,例如tag是named[123456],则programname是named
pri message的PRI,undecoded格式
pri-text text格式的PRI
syslogfacility the facility from the message - in numerical form
syslogfacility-text the facility from the message - in text form
syslogseverity severity from the message - in numerical form
syslogseverity-text severity from the message - in text form
timegenerated timestamp when the message was RECEIVED. message被本地syslog接收到的时间
timereported timestamp from the message,包含message被创建的时间
timestamp alias for timereported

System Properties:

$bom			The UTF-8 encoded Unicode byte-order mask (BOM)
$myhostname The name of the current host as it knows itself

Time-Related System Properties:

$now			当前日期,格式YYYY-MM-DD,now是指当前message被处理的时间
$year 当前年份(4-digit)
$month 当前月份(2-digit)
$day 当前日期(2-digit)
$hour 当前小时(24 hour) time (2-digit)
$hhour From minute 0 to 29, this is always 0 while from 30 to 59 it is always 1.
$minute 当前分钟(2-digit)

在配置文件的开头还有一些global设置,global的配置只能被设置一次,不能被随后重新设置:

action.reportSuspension		on
action.reportSuspensionContinuation off
workDirectory
dropMsgsWithMaliciousDNSPtrRecords
localHostname
preserveFQDN
defaultNetstreamDriverCAFile
defaultNetstreamDriverKeyFile
defaultNetstreamDriverCertFile
debug.gnutls 0
#rsyslog可以处理的单挑日志的大小,默认是4K,任何超出4K的都会被截断
maxMessageSize 4K
#当被设置为on的时候,如果系统shutdown,rsyslog会记录系统的debug信息
debug.onShutdown on
#指定debug日志的文件名称
debug.logFile
#指定使用的协议,可以是ipv4-only,ipv6-only
net.ipprotocol ipv4-only
#是否解析主机名到ip地址
net.aclResolveHostname off
#是否开启dns
net.enableDNS on

UDP module:here

TCP Module:here

Config:here

下面附上生产中的配置:

#Client
global(net.enableDNS = "on")
global(net.ipprotocol = "ipv4-only")
global(debug.onShutdown = "on")
$maxMessageSize 16K
module(load="imuxsock") # provides support for local system logging (e.g. via logger command)
module(load="imklog") # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
kern.* /var/log/kern
*.info;mail.none;authpriv.none;cron.none /var/log/messages
auth.* /var/log/auth
authpriv.* /var/log/secure
mail.* /var/log/maillog
cron.* /var/log/cron
daemon.* /var/log/daemon
user.* /var/log/user
*.emerg ~
uucp,news.crit /var/log/spooler
local7.* /var/log/boot
*.* @192.168.1.6:514 #Server
global(net.enableDNS = "on")
global(net.ipprotocol = "ipv4-only")
global(debug.onShutdown = "on")
$maxMessageSize 16K
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/16
module(load="imuxsock") # provides support for local system logging (e.g. via logger command)
module(load="imklog") # provides kernel logging support (previously done by rklogd)
module(load="imudp") # needs to be done just once
input(type="imudp" address="10.203.40.13" port="514")
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
template(name="remote_syslog" type="string" string="/data0/rsyslog_center/%HOSTNAME%/%$YEAR%-%$MONTH%/%$DAY%/%PROGRAMNAME%.log")
kern.* /var/log/kernel
*.info;mail.none;authpriv.none;cron.none /var/log/messages
auth.*;authpriv.* /var/log/secure
mail.* /var/log/maillog
cron.* /var/log/cron
daemon.* /var/log/daemon
user.* /var/log/user
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot
*.* ?remote_syslog

rsyslog的安装、使用、详解的更多相关文章

  1. TortoiseGIT的安装过程详解

    TortoiseGIT简介 TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windo ...

  2. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  3. Eclipse IDE for C/C++ Developers安装配置详解

    Eclipse IDE for C/C++ Developers安装配置详解(转) 转自:http://hi.baidu.com/ltb6w/item/986532efd712460f570f1ddc ...

  4. loadrunner11.0 安装破解详解使用教程

    loadrunner11.0 安装破解详解使用教程 来源:互联网 作者:佚名 时间:01-21 10:25:34 [大 中 小] 很多朋友下载了loadrunner11但不是很会使用,这里简单介绍下安 ...

  5. Cloudera CDH 、Impala本地通过Parcel安装配置详解及什么是Parcel

    本文引用自:Cloudera CDH .Impala本地通过Parcel安装配置详解及什么是Parcelhttp://www.aboutyun.com/forum.php?mod=viewthread ...

  6. WIN中SharePoint Server 2010 入门安装部署详解

    目前流行的原始安装文件基本都是这样的:Windows Server 2008 R2+SQL Server 2008R2+SharePoint Server 2010     这个初始环境原本也无可厚非 ...

  7. VMware虚拟机中如何安装VMWare-Tools详解

    VMware虚拟机中如何安装VMWare-Tools详解 好处:可以支持图形界面,可以支持共享文件功能等 VMware虚拟机中如何配置显 VMware作为一款虚拟机利器,很多人都利用它来实现Linux ...

  8. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  9. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  10. JDK10安装配置详解

    JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包:        地址:http://www.oracle.com/technetwork/java/javase/dow ...

随机推荐

  1. C++ 出现异常“.... \debug_heap.cpp Line:980 Expression:__acrt_first_block==header"

    本人是在写dll项目中出现了这个问题,经过一天的研究,尝试了三个步骤1.在配置属性->常规->MFC的使用中,将在静态库中使用MFC改为在共享DLL中使用MFC.但是还会出错2.原因是dl ...

  2. termios结构体的内容

    一.结构体成员 struct termios { tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t c_cflag; tcflag_t c_lflag; cc_ ...

  3. JS算法练习二

    JS算法练习 1.生成4位的随机验证码,可取大小写字母和数字 ? var validateCode = "", /*--存放生成好的验证码字符串--*/ count = 0; /* ...

  4. Docker(五)如何构建Dockerfile

    摘自 https://mp.weixin.qq.com/s/_hq9dPe6390htN8BTkoQeQ 一.Dockerfile的指令集 由于Dockerfile中所有的命令都是以下格式:INSTR ...

  5. table的复制 SqlServer 数据库添加临时表(select 字段1,字段2,字段3 into)

    select  字段1,字段2,字段3 into tempname  form  table  where table.id=1; oralce : insert into MID_DRUG_DETA ...

  6. RSA加解密-2

    Java使用RSA加密解密签名及校验   package com.ihep; import java.io.BufferedReader; import java.io.BufferedWriter; ...

  7. Spring所有子项目

    官网地址 https://spring.io/projects 包含子项目 Spring IO Platform Spring Boot Spring Framework Spring Cloud D ...

  8. 解释下面URL

    解释下面URL各部分的含义 a.duke.csc.villanova.edu/jss/examles.html duke是计算机名,该计算机属于villanova.edu域的csc子域.edu是最高级 ...

  9. 关于vue监听dom与传值问题

    1. 代码初始化一次执行部分属性为空的情况 原因: 异步加载 + 立马 传值时 直接渲染 dom里面  能实时更新 (无影响) 不能直接dom中渲染(有影响)     解决方法:需要通过监听的方式来处 ...

  10. C#解析"a=1&b=2&c=3"字符串,微信支付返回字符串,替换<br>为&

    原文来自: http://www.mzwu.com/article.asp?id=2802 C#可用: 若该字符串是使用Http Get发送,url?a=1&b=2&c=3,使用下边代 ...