Redhat 6中syslog信息丢失

我们采用Linux的syslog来记录产品的debug log。调用其中的一个可执行文件,执行完命令之后,查看debug log的信息,居然从某一条log之后的log都丢失了。多次尝试后,发现每次都在某条固定的log之后的log都丢失了。这篇博文就让我们一起来探个究竟。

一. 问题发现

在发现真正问题之前我做了以下尝试:

(1) 进程是否在固定log之后某种逻辑退出?或者在固定log打印之后的语句中会产生信号导致进程终止? 在程序末尾打印一个消息到屏幕,可以看到程序正常运行,并退出。

(2) 是否debug log对象发生了改变,或者debug level在运行中发生了改变? 同样在程序中打印这些信息,发现并无异常。

(3) gdb调试查看程序走的分支逻辑

如上方法均未发现问题,其实还有一种想法:syslog会不会丢弃一些log信息?但一开始是被我排除的,当时原因有二:第一在Redhat4/5上均不会出现这个问题;第二Redhat 6平台上的产品已经发布了至少一年了,要是debug log总是缺少应该不会等到我来发现吧。然而,正是由于一些惯有的思维,或者是一些看似有理却不严谨的推断,导致真相姗姗来迟。

接着,我优先查看了/var/log/messages文件, 看到了如下的错误信息,而6292正是我之前执行的进程ID。

imuxsock begins to drop messages from pid 6292 due to rate-limiting

那么很显然,于是很快利用google神器,找到了原因,这个是和Redhat 6中的rsyslog的机制有关系,并且这些机制可配置。

二. Redhat 6中rsyslog的Rate Limit配置

所谓Rate limit就是指,在某个固定的时间段内,syslog最多允许打印的log信息数量(多出的log信息将被丢弃)。在Redhat 6中,由配置文件/etc/rsyslog.conf中以下两个配置项决定:

$SystemLogRateLimitInterval [Number1]: Number1 为设定的限制的时间间隔大小

$SystemLogRateLimitBurst [Number2]: Number2 为在设定的限制的时间间隔内,最多输出的log信息数量。

在设定完后,则表示在每一个Number1时间间隔内,如果超过Number2个数的log信息将会被去除。默认Number1为5秒钟,Number2为200.但如果我们不希望,在打印的log时有丢失,则可以在/etc/rsyslog.conf中添加或者设置

$SystemLogRateLimitInterval 0

当然设置完成后,一定要记得重新启动rsyslog服务(用命令:service rsyslog restart)哦~~~

参考:

1. https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=753363

2. http://lists.adiscon.net/pipermail/rsyslog/2011-April/028307.html

3. http://www.rsyslog.com/tag/rate-limiting/

Redhat 6中syslog信息丢失,布布扣,bubuko.com

时间: 2024-12-07 21:32:29

Redhat 6中syslog信息丢失的相关文章

Redhat 6.3中syslog信息丢失

我们採用Linux的syslog来记录产品的debug log. 调用当中的一个可运行文件.运行完命令之后,查看debug log的信息,竟然从某一条log之后的log都丢失了.多次尝试后,发现每次都在某条固定的log之后的log都丢失了. 这篇博文就让我们一起来探个到底. 一. 问题发现 在发现真正问题之前我做了下面尝试: (1) 进程是否在固定log之后某种逻辑退出?或者在固定log打印之后的语句中会产生信号导致进程终止? 在程序末尾打印一个消息到屏幕,能够看到程序正常执行,并退出. (2)

磁盘阵列中分区信息丢失后如何恢复磁盘的盘符

磁盘阵列,也可以说是容错式廉价磁盘阵列,可以将多个较小的磁碟整合成为一个较大的磁碟装置.对磁盘阵列的操作,主要是空间的分区,即磁盘阵列分区,而分区又可以分为一个或多个区.本文介绍的方法是磁盘阵列中的分区信息丢失后如何恢复磁盘的盘符. 当用户对服务器重新配置磁盘阵列信息时,重配磁盘阵列的信息得保证和当初配置信息一致,如果配置的参数和当初配置的不一致,部分目录可能正确,但绝大多数文件不能打开,造成数据丢失,而部分服务器在重配阵列信息后要自动初始化,所有的数据都会清除,这种情况造成的损失就更大了. 当

存储linux RAID6中raid信息丢失数据恢复解决方法

数据恢复故障描述: 原存储为12块2T硬盘组成的Linux RAID6,文件系统均为EXT3,此存储上划有3个LUN,每个均为6TB大小,某天在RAID失效后,维护人员为了抢救数据,对此失效的存储重进行分配RAID,并进行了初始化.初始化进行很长时间后,维护人员察觉到情况有异,便强制停止初始化,但初始化已达到 50%以上.数据部分已被不可逆的破坏.数据恢复故障分析:故障的起因仅仅是RAID失效,维护人员随后的抢救数据过程中用11块硬盘进行重分配RAID5,并进行长时间的初始化,这对原始数据是不可

EXT3文件系统误删除导致文件系统中的邮件丢失恢复方法

一.故障描述 由8块盘组成的RAID5, 上层是EXT3文件系统,由于误删除导致文件系统中的邮件丢失 二.镜像磁盘为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用winhex软件为每块磁盘做镜像, 以后所有的数据恢复操作都在镜像盘上进行, 不会对原始磁盘造成影响镜像结果如下:图一 三.组建RAID通过分析数据在硬盘中分布的规律, 获取RAID类型, RAID条带的大小,以及每块磁盘的顺序.根据分析结果使用UFS组建RAID.结果如下:图二 四.导出目标分区 从组建好的RAID中可以看

resolv.conf 配置信息丢失解决方法

resolv.conf 配置信息丢失解决方法 配置DNS,修改/etc/resolv.conf,修改后重启服务 service network restart ,修改/etc/resolv.conf的信息丢失,请大家看看. [code]修改前的配置 # No nameservers found; try putting DNS servers into your # ifcfg files in /etc/sysconfig/network-scripts like so: # # DNS1=x

EVA4400存储RAID信息丢失数据恢复过程

[服务器数据恢复故障分析]在数据恢复行业中经常会遇到因为意外断电导致raid模块硬件损坏或者riad管理信息丢失等raid模块损坏导致数据丢失的情况.正常情况下服务器的raid阵列一旦创建完成后就不再对管理模块中的信息进行更改,不过raid管理模块的信息其实是可修改信息,一次或多次的意外断电是可能造成这部分信息被篡改或丢失的,断电次数过多时甚至可能导致raid卡上的元器损坏.间接导致主机失去对多块物理硬盘进行RAID管理的中间层模块.该客户的服务器就属于这种情况. [服务器数据恢复故障描述]客户

HP EVA4400服务器RAID信息丢失数据恢复方法

[服务器数据恢复故障分析] 在数据恢复行业中经常会遇到因为意外断电导致raid模块硬件损坏或者riad管理信息丢失等raid模块损坏导致数据丢失的情况.正常情况下服务器的raid阵列一旦创建完成后就不再对管理模块中的信息进行更改,不过raid管理模块的信息其实是可修改信息,一次或多次的意外断电是可能造成这部分信息被篡改或丢失的,断电次数过多时甚至可能导致raid卡上的元器损坏.间接导致主机失去对多块物理硬盘进行RAID管理的中间层模块.今天这个服务器就属于这种情况. [服务器数据恢复故障描述]

记录一次raid信息丢失的成功恢复过程,恢复结果极度舒适

[存储raid阵列故障的起因] 事情的起因是这样的,这次经历的数据恢复设备为DL380系列存储,存储中存储的是客户公司内部文件和机密信息.存储上共有6块硬盘组成raid5阵列,在正常使用过程中存储突然崩溃,强制重启后无法找到存储设备,再重启还是这样.客户于是联系我们进行存储层面的数据恢复.· [数据恢复故障分析] 经过和硬件部门同事的一同检测和分析,大致可以推断客户这台存储的故障应该是raid模块损坏,一般出现这种raid信息丢失或者raid模块硬件损坏的原因多是由于多次的断电造成的.说回到本次

关于点击Notification后,获取Notification中的信息

在点击Notification之后,通常需要在界面上呈现Notification中的信息. 在测试的时候,在Activity中通过getIntent获取到的Intent对象中,总是获取不到想要的信息. 在网上搜索发现,如果使用了相同的Intent,在创建PendingIntent的时候需要设置Flags参数为PendingIntent.FLAG_CANCEL_CURRENT,如下所示. PendingIntent.getActivity(AtyNotification.this, 0, inte