centos 7如何因对日志风暴和保证日志及时落盘

Centos7在出现系统异常的情况下,比如iscsi软件栈出错且有持续IO的情况下,很可能会出现持续大量的日志,就像短时强风暴一样,甚至导致日志丢失。

在调试阶段,这些日志都是需要的,为此需要解决此时出现的log
drop。方法是修改/etc/rsyslog.conf,加入下面的几行:

$SystemLogRateLimitInterval
0

$SystemLogRateLimitBurst
0

$IMUXSockRateLimitInterval
0

$IMJournalRatelimitInterval
0

"/etc/rsyslog.conf"
106L, 3683C

此外,我们还要求日志能及时落盘,为此也需要修改journald配置文件/etc/systemd/journald.conf,更新下面几行:

Storage=persistent

RateLimitInterval=0

RateLimitBurst=0

SyncIntervalSec=2

除此之外,还需要disable 日志盘的写缓存:

[[email protected]:~]$
hdparm -W 0 /dev/sda

/dev/sda:

setting
drive write-caching to 0 (off)

write-caching
=  0 (off)

最后重启服务:

systemctl
daemon-reload

[[email protected]
etc]# systemctl restart systemd-journald.service

[[email protected]
etc]# systemctl restart rsyslog.service

或者重启机器就可生效。在本人的机器上,重启多次之前kernel出错及不少日志丢失的问题,根据上面的改动都被解决了。

参考:

1.
man journald.conf

RateLimitInterval=,
RateLimitBurst=

Configures
the rate limiting that is applied to all messages generated on the
system. If, in the

time
interval defined by RateLimitInterval=, more messages than specified
in RateLimitBurst= are

logged
by a service, all further messages within the interval are dropped
until the interval is

over.
A message about the number of dropped messages is generated. This
rate limiting is applied

per-service,
so that two services which log do not interfere with each other‘s
limits. Defaults to

1000
messages in 30s. The time specification for RateLimitInterval= may be
specified in the

following
units: "s", "min", "h", "ms",
"us". To turn off any kind of rate limiting, set either

value
to 0.

SyncIntervalSec=

The
timeout before synchronizing journal files to disk. After syncing,
journal files are placed in

the
OFFLINE state. Note that syncing is unconditionally done immediately
after a log message of

priority
CRIT, ALERT or EMERG has been logged. This setting hence applies only
to messages of the

levels
ERR, WARNING, NOTICE, INFO, DEBUG. The default timeout is 5 minutes.

2.
man journalctl

3.http://www.jinbuguo.com/systemd/journald.conf.html

时间: 2024-10-22 20:31:33

centos 7如何因对日志风暴和保证日志及时落盘的相关文章

CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的

seci-log 1.04 日志分析增加 windows 日志分析

本次升级并没有增加新的告警,而是增加了window的日志分析,主要分析了windows的登录日志和操作日志,这两个比较重要的日志类型,其他日志类型可以作为通用的日志收集功能进行存储查询. Windows系统没有自带的功能支持系统日志进行syslog发送,因此需要依赖第三方工具,这里我们推荐一款非常好用的轻量级日志采集模块:Nxlog,在Windows下部署和配置均十分便捷. 注:本人测试过2008 ,2003 server,理论上2012也是可以的,其他环境没有测试,如果有问题欢迎到群里咨询.

nginx日志配置,以及日志轮询

一.为nginx配置错误日志 Nginx错误日志是调试nginx的重要手段,属于核心功能模块的参数(ngx_core_module)该参数名字为err_log,是放在Main区块中全局配置 err_log的语法格式以及参数语法说明如下 err_log   file              level(级别) 关键字           日志文件              错误日志级别 其中关键字err_log不能改变 1 1.在配置文件中写入error_log logs/error.log e

日志系统之Flume日志收集

最近接手维护一个日志系统,它用于对应用服务器上的日志进行收集然后提供实时分析.处理并最后将日志存储到目标存储引擎.针对这三个环节,业界已经有一套组件来应对各自的需求需求,它们是flume+kafka+hdfs/hbase.我们在实时分析.存储这两个环节,选择跟业界的实践相同,但agent是团队自己写的,出于对多种数据源的扩展需求以及原来收集日志的方式存在的一些不足,于是调研了一下flume的agent.结果是flume非常契合我们的实际需求,并且拥有良好的扩展性与稳定性.于是打算采用flume的

手动切换日志文件和清空日志文件

切换日志文件组 日志文件组是循环使用的,当一组日志文件被写满时,oracle系统自动的切换到下一组日志文件.在需要的时候,数据库管理员也可以手动的切换到其他的日志文件组.切换日志文件组需要使用如下的语句: alter system switch logfile; 清空日志文件组 如果日志文件组中的日志文件受损,将导致数据库无法将受损的日志文件进行归档,这会最终导致数据库停止运行.此时,在不关闭数据库的情况下,可以选择清空日志文件组中的内容. 清空日志文件组的语法如下: alter databas

mysql开启binlog日志和慢查询日志

1)首先,为什么要开启binlog日志和慢查询日志呢? binlog日志会记录下数据库的所以增删改操作,当不小心删除.清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说就是一个记录备份的东西 慢查询日志 slow_query_log,这个东西是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,然后就可以进行数据库或sql语句或程序上的优化,简单来说就是一个优化辅助工具 PS:binlog日志应该一直开着(因为你不知道数据库哪一天会崩掉,或者哪

传递给数据库 'master' 中的日志扫描操作的日志扫描号无效

错误:连接数据库的时候提示:SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 C:\Documents and Settings\Administrator>"C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release\setup.exe" /q /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS

rsyslog 服务器重启后 发现不能接受到外部日志 只能接受本地日志 关闭防火墙即可

rsyslog 服务器重启后 发现不能接受到外部日志 只能接受本地日志  关闭防火墙即可 1 关闭防火墙: # systemctl stop firewalld 2 将SELINUX设置为disabled # setenforce 0 # sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

Nginx日志文件格式及切割日志文件

作为web服务器而言,日志是必不可少的也是需要经常查看的.此篇就来介绍下如何自定义Nginx中的日志格式以及使用crontab计划任务来做到每天切割一次日志文件从而做到方便管理. 在Nginx中日志文件是由log_format这个指令来定义的,它的语法如下: log_format    name    format ##    name:指的是日志格式的名称(后面调用) ##    format:设置日志具体格式的 在Nginx中有自己默认的日志格式,如下内容:     #log_format