rsyslogd配置文件

 rsyslogd 服务是依赖其配置文件 /etc/rsyslog.conf 来确定哪个服务的什么等级的日志信息会被记录在哪个位置的。也就是说,日志服务的配置文件中主要定义了服务的名称、日志等级和日志记录位置。

/etc/rsyslog.conf配置文件的格式

该配置文件的基本格式如下所示:

authpriv.* /var/log/secure
#服务名称[连接符号]日志等级 日志记录位置
#认证相关服务.所有日志等级 记录在/var/log/secure日志中

服务名称

我们首先需要确定 rsyslogd 服务可以识别哪些服务的日志,也可以理解为以下这些服务委托 rsyslogd 服务来代为管理日志。这些服务如表 1 所示。

服务名称 说 明
auth(LOG AUTH) 安全和认证相关消息 (不推荐使用authpriv替代)
authpriv(LOG_AUTHPRIV) 安全和认证相关消息(私有的)
cron (LOG_CRON) 系统定时任务cront和at产生的日志
daemon (LOG_DAEMON) 与各个守护进程相关的曰志
ftp (LOG_FTP) ftp守护进程产生的曰志
kern(LOG_KERN) 内核产生的曰志(不是用户进程产生的)
Iocal0-local7 (LOG_LOCAL0-7) 为本地使用预留的服务
lpr (LOG_LPR) 打印产生的日志
mail (LOG_MAIL) 邮件收发信息
news (LOG_NEWS) 与新闻服务器相关的日志
syslog (LOG_SYSLOG) 存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了 syslogd服务的,所以这里并没有修改服务名称)
user (LOG_USER) 用户等级类别的日志信息
uucp (LOG_UUCP> uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来 也常用在新闻组服务中

这些日志服务名称是rsyslogd服务自己定义的,并不是实际的Linux的服务。当有服务需要由rsyslogd服务来帮助管理日志时,只需要调用这些服务名称就可以实现日志的委托管理。

这些日志服务名称大家可以使用命令“man 3 syslog”来查看。虽然我们的日志管理服务已经更新到rsyslogd,但是很多配置依然沿用了syslogd服务,在帮助文档中仍然查看syslog服务的帮助信息。

连接符号

日志服务连接日志等级的格式如下:

日志服务[连接符号]日志等级 日志记录位置

在这里,连接符号可以被识别为以下三种。

  1. “.”代表只要比后面的等级高的(包含该等级)日志都记录。比如,“cron.info”代表cron服务产生的日志,只要日志等级大于等于info级别,就记录。
  2. “.=”代表只记录所需等级的日志,其他等级的日志都不记录。比如,“*.=emerg”代表人和日志服务产生的日志,只要等级是emerg等级,就记录。
  3. “.!”代表不等于,也就是除该等级的日志外,其他等级的日志都记录。

日志等级

每个日志的重要性都是有差别的,比如,有些日志只是系统的一个日常提醒,看不看根本不会对系统的运行产生影响;但是有些日志就是系统和服务的警告甚至报错信息,这些日志如果不处理,就会威胁系统的稳定或安全。如果把这些日志全部写入一个文件,那么很有可能因为管理员的大意而忽略重要信息。

比如,我们在工作中需要处理大量的邮件,笔者每天可能会接收到200多封邮件。而这些邮件中的绝大多数是不需要处理的普通信息邮件,甚至是垃圾邮件。所以笔者每天都要先把这些大量的非重要邮件删除之后,才能找到真正需要处理的邮件。但是每封邮件的标题都差不多,有时会误删除需要处理的邮件。这时笔者就非常怀念Linux的日志等级,如果邮件也能标识重要等级,就不会误删除或漏处理重要邮件了。

邮件的等级信息也可以使用“man 3 syslog”命令来查看。日志等级如表 2 所示,我们按照严重等级从低到高排列。

等级名称 说 明
debug (LOG_DEBUG) 一般的调试信息说明
info (LOG_INFO) 基本的通知信息
nolice (LOG_NOTICE) 普通信息,但是有一定的重要性
warning(LOG_WARNING) 警吿信息,但是还不会影响到服务或系统的运行
err(LOG_ERR) 错误信息, 一般达到err等级的信息已经可以影响到服务成系统的运行了
crit (LOG_CRIT) 临界状况信思,比err等级还要严®
alert (LOG_ALERT) 状态信息,比crit等级还要严重,必须立即采取行动
emerg (LOG_EMERG) 疼痛等级信息,系统已经无法使用了
* 代表所有日志等级。比如,“authpriv.*”代表amhpriv认证信息服务产生的日志,所有的日志等级都记录

日志等级还可以被识别为“none”。如果日志等级是none,就说明忽略这个日志服务,该服务的所有日志都不再记录。

日志记录位置

日志记录位置就是当前日志输出到哪个日志文件中保存,当然也可以把日志输出到打印机打印,或者输出到远程日志服务器上(当然,远程日志服务器要允许接收才行)。日志的记录位置也是固定的:

  • 日志文件的绝对路径。这是最常见的日志保存方法,如“/var/log/secure”就是用来保存系统验证和授权信息日志的。
  • 系统设备文件。如“/dev/lp0”代表第一台打印机,如果日志保存位置是打印机设备,当有日志时就会在打印机上打印。
  • 转发给远程主机。因为可以选择使用 TCP 和 UDP 协议传输日志信息,所以有两种发送格式:如果使用“@192.168.0.210:514”,就会把日志内容使用 UDP 协议发送到192.168.0.210 的 UDP 514 端口上;如果使用“@@192.168.0.210:514”,就会把日志内容使用 TCP 协议发送到 192.168.0.210 的 TCP 514 端口上,其中 514 是日志服务默认端口。当然,只要 192.168.0.210 同意接收此日志,就可以把日志内容保存在日志服务器上。
  • 用户名。如果是“root”,就会把日志发送给 root 用户,当然 root 要在线,否则就收不到日志信息了。发送日志给用户时,可以使用“*”代表发送给所有在线用户,如“mail.**”就会把 mail 服务产生的所有级别的日志发送给所有在线用户。如果需要把日志发送给多个在线用户,则用户名之间用“,”分隔。
  • 忽略或丢弃日志。如果接收日志的对象是“~”,则代表这个日志不会被记录,而被直接丢弃。如“local3.* ~”代表忽略 local3 服务类型所有的日志都不记录。
  • 忽略或丢弃日志。如果接收日志的对象是“~”,则代表这个日志不会被记录,而被直接丢弃。如“local3.* ~”代表忽略 local3 服务类型所有的日志都不记录。

/etc/rsyslog.conf配置文件的内容

我们知道了/etc/rsyslog.conf 配置文件中日志的格式,接下来就看看这个配置文件的具体内容。

[root@localhost ~]# vi /etc/rsyslog.conf
#查看配置文件的内容
#rsyslog v5 configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
*### MODULES ###
#加载棋块
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
#加载imixsock模块,为本地系统登录提供支持
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#加载imklog模块,为内核登录提供支持
#$ModLoad immark # provides --MARK-- message capability
#加载immark模块,提供标记信息的能力
# Provides UDP syslog reception
#$ModLoad imudp
#SUDPServerRun
#加载UPD模块,允许使用UDP的514端口接收采用UDP协议转发的日志
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun
#加栽TCP摸块,允许使用TCP的514编口接收采用TCP协议转发的日志
#### GLOBAL DIRECTIVES ####
#定义全局设置
#Use default timestamp format
#ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义曰志的时间使用默认的时间戳格式
#File syncing capability is disabled by default. This feature is usually not required,
#not useful and an extreme performance hit
#$ActionFileEnableSync on
#文件同步功能。默认没有开启,是注释的
#Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
#包含/etx/tsyslog.d/目录中所有的".conf"子配置文件。也就是说,这个目录中的所有子配置文件也同时生效
#### RULES ####
#日志文件保存规则
#Log all kernel messages to the console.
#Logging much else clutters up the screen.
#kern.* /dev/console
#kern服务.所有曰志级别 保存在/dev/console
#这个日志默认没有开启,如果需要,则取消注释
#Log anything (except mail) of level info or higher.
#Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
#所有服务.info以上级到的日志保存在/var/log/messages日志文件中
#mail, authpriv^ cron的B志不记录在/var/log/messages曰志文件中,因为它们部有自己的曰志文件
#所以/var/log/messages日志是最重要的系统日志文件,需要经常查看
#The authpriv file has restricted access.
authpriv.* /var/log/secure
#用户认证服务所有级别的日志保存在/vai/1og/secure日志文件中
#Log all the mail messages in one place.
mail.* -/var/log/maillog
#mail服务的所有级别的日志保存在/var/log/maillog 日志文件中
#"-"的含义是日志先在内存中保存.当曰志足够多之后.再向文件中保存
# Log cron stuff
cron.* /var/log/cron
#计対任务的所有日志保存在/var/log/cron日志文件中
# Everybody gets emergency messages
#所有日志服务的疼痛等级日志对所有在线用户广播
#Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler
#uucp和news曰志服务的crit以上级别的日志保存在/var/log/sppoler曰志文件中
#Save boot messages also to boot.log
local7.* /var/log/boot.log
#loacl7 日志服务的所有日志写入/var/log/boot.log 日志文件中 #会把开机时的检测信息在显示到屏幕的同时写入/var/log/boot.log 日志文件中
# ### begin forwarding rule ###
#定义转发规到
#The statement between the begin ... end define a SINGLE forwarding
#rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# 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. #SWorkDirectory /var/lib/rsyslog # where to place spool files #$ActionQueueFileName fwdRulel # 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 t run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*•* @6remote-host:514
# ### end of the forwarding rule ##

其实系统已经非常完善地定义了这个配置文件的内容,系统中重要的日志也已经记录得非常完备。如果是外来的服务,如 apache、Samba 等服务,那么这些服务的配置文件中也详细定义了日志的记录格式和记录方法。所以,日志的配置文件基本上不需要我们修改,我们要做的仅仅是查看和分析系统记录好的日志而已。

Linux 系统日志管理 rsyslogd配置文件的更多相关文章

  1. Linux 系统日志管理

    Linux rsyslogd服务及启动方法 在 CentOS 6.x 中,日志服务已经由 rsyslogd 取代了原先的 syslogd.Red Hat 公司认为 syslogd 已经不能满足工作中的 ...

  2. :Linux 系统日志管理 日志转储

    Linux日志服务器设置 使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上. 假设需要管理几十台服务器,每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看 ...

  3. Linux系统日志管理

    1.系统常用的日志(日志是用来记录重大事件的工具) /var/log/message      系统信息日志,包含错误信息等 /var/log/secure         系统登录日志 /var/l ...

  4. linux的用户管理相关配置文件

    Linux的管理命令的本质不过是对配置文件/etc相关文件的修改罢了 

  5. Linux 用户篇——用户管理的配置文件

    一.用户管理之配置文件的重要性 在Linux系统中,用户账户的相关信息是存放在相关配置文件中.而Linux安全系统的核心是用户账号,用户对系统中各种对象的访问权限取决于他们登录系统时用的账户,并且Li ...

  6. 【Linux学习】Linux用户管理2—用户配置文件

    Linux用户管理2-用户配置文件 /etc/passwd: 存放系统用户的文件 输入 vi /etc/passwd /etc/shadow: 保存保密文件 /etc/group: 群组文件 输入 v ...

  7. 【CentOS】Linux日常管理

    /////////////////////////目录///////////////////////////////////////// 一.日常监控指标相关 1.监控系统状态命令 2.查看系统进程 ...

  8. Linux系统日志及日志分析

    Linux系统日志及日志分析   Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位 ...

  9. Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统 nsswitch.conf配置文件

    Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统  nsswitch.conf配置文件 朋友们,今天我对你们说,在此时此刻,我们虽然遭受种种困难和挫折,我仍然有一个梦 ...

随机推荐

  1. ios开发之--键盘的监听

    监听键盘的弹出,让整个页面向上移动,比较简单,仅做记录使用: 代码如下: // 监听键盘 [[NSNotificationCenter defaultCenter] addObserver:self ...

  2. 在 Linux 下使用任务管理器

    有很多 Linux 初学者经常问起的问题,“Linux 有任务管理器吗?”,“怎样在 Linux 上打开任务管理器呢?” 来自 Windows 的用户都知道任务管理器非常有用.你可以在 Windows ...

  3. 160427、CSS3实战笔记--多列布局

    通过阅读和学习书籍<CSS3实战>总结 <CSS3实战>/成林著.—北京机械工业出版社2011.5   多列布局适合纯文字版式设计,如报纸内和杂志类网页布局,不适合做网页结构布 ...

  4. vscode编辑器配置C语言编译运行环境

    1.安装C/C++插件 2.安装编译环境,这里选择MinGW(http://mingw.org/ ) 选择一个安装目录,如:E:\workspace\MinGW mingw32-gcc开头的(包括了m ...

  5. error.log worker_connections exceed open file resource limit: 1024

    不按照预期响应请求 nginx.conf中worker_connections 与ulimt -n 配置的冲突

  6. php中mysql_pconnect()的实现方式.

    网上有人说要想让mysql_pconnect正常稳定的工作,必须保证mysql max_connect参数设定大于或等于apache的最大线程(进程)数.这句话是有一定道理的.这要简单了解mysql_ ...

  7. qemu网络虚拟化之数据流向分析二

    2016-09-27 上篇文章大致介绍了qemu网络虚拟化相关的数据结构,本篇就结合qemu-kvm源代码分析下各个数据结构是如何初始化以及建立联系的. 这里还是分为三个部分: 1.Tap设备区 2. ...

  8. ovn-kubernetes安装指南

    Master节点的安装 1.首先在master节点安装ovs和ovn: #!/bin/bash sudo apt-get install openvswitch-common openvswitch- ...

  9. 【MFC系列】MFC快速设置控件文本字体、大小、颜色、背景

    以静态文本为例,分享一下怎么修改文本字体.大小.颜色.背景等参数.其他文本.控件等可参照修改. 1.修改字体.大小 这个很简单,首先在Dlg类中声明一个CFont类型的成员变量: 然后在类的初始化函数 ...

  10. Apache Lucene初探

    讲解之前,先来分享一些资料 首先,学习任何一门新的亦或是旧的开源技术,百度其中一二是最简单的办法,先了解其中的大概,思想等等.这里就贡献一个讲解很到位的ppt 这是Lucene4.0的官网文档:htt ...