Rsyslog简介

ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地。

rsyslog是一个开源工具,被广泛运用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件夹(如/var/log)或一台可以路由到的远程rsyslog服务器上。

在大多数据的Linux发行版中,rsyslog是一个预先安装的标准日志后台进程。

image.png

我的主机上为rsyslog-7.4.2版本

我们在自己的主机上实现将rsyslog守护进程配置成两种不同的环境,做客户端和服务端

Rsyslog服务的默认的主配置文件在/etc/rsyslog.conf

主程序为/user/sbin/rsyslogd

rsyslog配置文件

vim /etc/rsyslog.conf

#### MODULES 日志的模块####

$ModLoad imuxsock   #imuxsock是模块名,支持本地系统日志的模块

$ModLoad imklog     #imklog是模块名,支持内核日志的模块

#module(load="imfile")   #文本文件输入模块,提供转换任何标准输入文件为一个syslog消息(客)

#$ModLoad immark    #immark是模块名,支持日志标记

#$ModLoad imudp     #imupd是模块名,支持udp协议

#$UDPServerRun 514  #允许514端口接收使用UDPTCP协议转发过来的日志

#$ModLoad imtcp     #imtcp是模块名,支持tcp协议

#$InputTCPServerRun 514

#### GLOBAL DIRECTIVES ####定义全局日志格式的指令

$ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat #定义日志格式默认模板

$IncludeConfig /etc/rsyslog.d/*.conf   #载入rsyslog.d文件中所有以conf结尾的文件

#### RULES ####

*.info;mail.none;authpriv.none;cron.none    /var/log/messages

#####记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间#任务相关的信息除外

authpriv.*             /var/log/secure

#####authpriv验证相关的所有信息存放在/var/log/secure

mail.*                -/var/log/maillog

#####邮件的所有信息存放在/var/log/maillog; 这里有一个-符号表示是使用异步的方式记录因为日志一般会比较大

cron.*                /var/log/cron

####计划任务有关的信息存放在/var/log/cron

*.emerg                * (*表示所有用户)

###记录所有的大于等于emerg级别信息wall方式发送给每个登录到系统的人

uucp,news.crit        /var/log/spooler

####记录uucp,news.crit等存放在/var/log/spooler

local7.*              /var/log/boot.log

####本地服务器的启动的所有日志存放在/var/log/boot.log

###rsyslog.conf中日志规则的定义的格式

facitlity.priority          Target

#facility: 日志设备(可以理解为日志类型):

==============================================================

auth        #pam产生的日志,认证日志

authpriv    #ssh,ftp等登录信息的验证信息,认证授权认证

cron        #时间任务相关

kern        #内核

lpr         #打印

mail        #邮件

mark(syslog) #rsyslog服务内部的信息,时间标识

news        #新闻组

user        #用户程序产生的相关信息

uucp        #unix to unix copy, unix主机之间相关的通讯

local 1~7   #自定义的日志设备

===============================================================

#priority: 级别日志级别:

=====================================================================

debug           #有调式信息的,日志信息最多

info            #一般信息的日志,最常用

notice          #最具有重要性的普通条件的信息

warning, warn   #警告级别

err, error      #错误级别,阻止某个功能或者模块不能正常工作的信息

crit            #严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert           #需要立刻修改的信息

emerg, panic    #内核崩溃等严重信息

###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。

=====================================================================

Target

  #文件/var/log/messages

  #用户, root*(表示所有用户)

  #日志服务器,@172.16.22.1

  #管道        | COMMAND