rsyslog与logrotate服务

rsyslog 负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件。

一、rsyslog

rsyslog 是一个 syslogd 的多线程增强版,现在Fedora和Ubuntu, Centos默认的日志系统都是rsyslog了。

一种常见又简单的 syslogd 使用方法如图:

1、用户进程将产生的日志消息发送至UNIX域数据报套接字 /dev/log;

2、syslogd 守护进程启动时会读取配置文件 /etc/syslog.conf,该配置文件决定不同种类的消息应送往何处。

如下图rsyslog的架构图,它的消息流是从输入模块->预处理模块->主队列->过滤模块->执行队列->输出模块。

在这个流程图中,输入、输出、过滤三个部分称为module:

input模块(消息来源)有imklg、imsock、imfile;

pre-processor模块()主要解决各种syslog协议实现间的差异,举例说明如果日志系统client端使用rsyslog、server端使用syslog-ng,如果自己不做特殊处理syslog-ng是无法识别的。但是反过来,rsyslog的server端就可以识别syslog-ng发过来的消息。

queue模块负责消息的存储,从Input传入的未经过滤的消息放在主队列中,过滤后的消息放入到不同action queue中,再由action queue送到各个输出模块。

filetr模块处理消息的分析和过滤,rsyslog可以根据消息的任何部分进行过滤;

output模块(消息目的地)有omudp、omtcp、omfile、omprog、ommysql、omruleset;

配置rsyslog 的命令行参数:

在 rsyslog 的配置文件 /etc/rsyslog.conf,增加下面两行:

local3.* /var/log/haproxy.log
local0.* /var/log/haproxy.log

然后执行下面的命令进行测试:

logger -p local3.info 'hello world'

可以看到 /var/log/haproxy.log 增加了改行信息。

/etc/rsyslog.conf 每行配置项的含义:

日志设备  连接符号 日志级别   日志处理方式

日志设备:
———————————————————————-

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        –什么都不记录

从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册:
man 3 syslog

注意:日志记录的顺序有先后关系

例子:

———————————————————————-

1. 记录到普通文件或设备文件::
*.* 
   /var/log/file.log   # 绝对路径
*.*     /dev/pts/0
测试: logger -p local3.info
‘KadeFor is testing the rsyslog and logger ‘   logger 命令用于产生日志

2. 转发到远程::
*.* @192.168.0.1       
    # 使用UDP协议转发到192.168.0.1的514(默认)端口
*.* @@192.168.0.1:10514 
   # 使用TCP协议转发到192.168.0.1的10514(默认)端口

3. 发送给用户(需要在线才能收到)::
*.*   root
*.*   root,kadefor,up01 
   # 使用,号分隔多个用户
*.*   *     # *号表示所有在线用户

4. 忽略,丢弃::
local3.*   ~    # 忽略所有local3类型的所有级别的日志

5. 执行脚本::
local3.*    ^/tmp/a.sh 
    # ^号后跟可执行脚本或程序的绝对路径
# 日志内容可以作为脚本的第一个参数.
# 可用来触发报警

二、logrotate

logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为“转储”。

我们可以根据日志的大小,或者根据其使用的天数来转储。

logrotate的执行由crond服务实现,参考 /etc/cron.daily/logrotate 脚本,该脚本每天由cron在指定的时间(/etc/crontab)启动。

在执行logrotate时,需要指定其配置文件/etc/logrotate.conf
这个配置文件的注释写得很清楚,没有必要再罗嗦了。只想强调下面这行,它的作用包含存放在/etc/logrotate.d目录下面的配置文件,不可或缺。如果你安装了一个新的服务,它的日志转储的规则可以建立一个专门的配置文件,放在/etc/logrotate.d下面。它其实也因为下面的这句话,在logrotate服务启动时被读取。
每个存放在/etc/logrotate.d目录里的文件,都有上面格式的配置信息。在{}中定义的规则,如果与logrotate.conf中的冲突,以/etc/logrotatate.d/中的文件定义的为准。
logrotate启动脚本放在 /etc/cron.daily/logrotate 中,可人工执行命令进行测试:
/usr/sbin/logrotate -f /etc/logrotate.conf
dateext表示转储文件会以日期来结束*

参考文档:

http://www.cnblogs.com/tobeseeker/archive/2013/03/10/2953250.html

rsyslog 与 logrotate 服务的更多相关文章

  1. rsyslog和logrotate服务

    参考: http://www.lampbo.org/others/opensource/rsyslog-config-file-detail.html http://bangerlee.blog.ch ...

  2. rsyslog和logrotate

    简介 rsyslog 是一个 syslogd 的多线程增强版. 现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了 rsyslog负责写入日志, logrotate负责备份 ...

  3. Linux下rsyslog日志收集服务环境部署记录【转】

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  4. Linux下rsyslog日志收集服务环境部署记录

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  5. rsyslog及logrotate小结

    [root@node1 logrotate.d]# ls dracut haproxy httpd mcelog nginx ppp psacct syslog yum   yum install n ...

  6. Linux日志切割logrotate服务配置

    一.logrotate介绍 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.一般centos系统已经自带安装好 ...

  7. [svc]rsyslog及logrotate小结

    [root@node1 logrotate.d]# ls dracut haproxy httpd mcelog nginx ppp psacct syslog yum yum install ngi ...

  8. linux服务之rsyslog

    日志片断分析 systemd:服务报出来的信息kvm:内核模块kvm报出来的信息kernel: tun: 内核的tun模块报出来的信息kernel: br0: 内核的br0模块报出来的信息kernel ...

  9. syslog之二:syslog协议及rsyslog服务全解析

    目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...

随机推荐

  1. windows 7 安装 scrapy

    基于64位 win7 系统 先到 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载四个 wheel 文件: 1. lxml-3.4.4-cp27-none-w ...

  2. AS2.0大步更新 Google强势逆天

    New Features in Android Studio 2.0Instant Run: Faster Build & Deploy逆天吗?你还在羡慕iOS的playground吗?And ...

  3. Python Web实战 - 基于Flask实现的黄金点游戏

    一.简介 团队成员: 领航者:张旭 驾驶员:张国庆 项目简介: 项目名称:基于B/S模式的黄金点游戏 采用技术: 后端:Python + Sqlite3 前端:HTML + CSS + JS + Bo ...

  4. application/x-www-form-urlencoded multipart/form-data text/plain 后台返回的数据响应的格式类型

    application/x-www-form-urlencoded multipart/form-data text/plain 为什么上传文件的表单里要加个属性 enctype  后台返回的数据响应 ...

  5. 20145222黄亚奇《Java程序设计》第1周学习总结

    教材学习内容总结 BJVM是Java程序唯一认识的操作系统,其可执行文件为.class文档 Java的三大平台为Java SE,Java EE,Java ME. Java SE的四个部分为:JVM,J ...

  6. 秒杀9种排序算法(JavaScript版)

    一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...

  7. jquery-ajax-async之浏览器差异

    最近的PC项目遇到了一个问题,日志记录程序会在1s内多次发起对首页的请求,一时间没有找到原因. 简单描述一下问题:访问一个首页的时候,由于代码质量不高的原因,访问就连接数据库,但是同时存在的问题是一秒 ...

  8. [设计模式] javascript 之 适配器模式

    适配器模式说明 说明: 适配器模式,一般是为要使用的接口,不符本应用或本系统使用,而需引入的中间适配层类或对象的情况: 场景: 就好比我们买了台手机,买回来后发现,充电线插头是三插头,但家里,只有两插 ...

  9. Ibatis学习总结2--SQL Map XML 配置文件

    SQL Map 使用 XML 配置文件统一配置不同的属性,包括 DataSource 的详细配置信息, SQL Map 和其他可选属性,如线程管理等.以下是 SQL Map 配置文件的一个例子: Sq ...

  10. java连接sql server2000/2005

    接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此 ...