rsyslog由于RateLimit丢失日志的处理
- 问题
问题的发现:在我们的docker应用中,配置了rsyslog作为日志输出;当应用产生的日志在某段时间内量比较大时,就发现会丢日志。
- 原因
问题的原因:日志的输出路径,应用程序把日志输出到system journal,然后system journal再输出到rsyslog,最后由rsyslog把日志持久化存储到本地磁盘文件。
而不管是system journal还是rsyslog都有一个配置值,允许一个时间段内最大的日志数量;当应用程序产生的日志数大于规定的数量时就会被丢弃。
解决办法就是根据应用需要调整配置值。
- system journal的配置
当system journal发生日志超量时,就会看到下面类似信息:
$ sudo journalctl -u systemd-journald
Apr 16 19:11:52 <hostname> systemd-journal[1356]: Suppressed 1929 messages from /system.slice/docker.service
因为我们的应用是部署成docker container模式,所以对system journal来说它收到的日志是从docker.service发布过来的。
system journal关于日志量的配置在:
$ cat /etc/systemd/journald.conf
RateLimitInterval=30s
RateLimitBurst=1000
含义是在30秒的周期内,允许的日志数目是1000,超过部分会被丢弃。
我们可以估算应用的日志量来调整这两个值,然后重启system journal系统服务system systemd-journald restart
即可。
如果要取消限制,可以把两个值都设置成0就可以。
- rsyslog的配置
和system journal类似,当rsyslog发生日志超量时,就会看到下面类似信息
$ sudo journalctl -f -u rsyslog
Apr 16 22:18:38 <hostname> rsyslogd[25142]: imjournal: begin to drop messages due to rate-limiting
Apr 16 22:18:46 <hostname> rsyslogd[25142]: imjournal: 1429 messages lost due to rate-limiting
同样的rsyslog也有两个配置项:
$ cat /etc/rsyslog.conf
$ModLoad imjournal
$imjournalRatelimitInterval 30
$imjournalRatelimitBurst 1000
含义是在30秒的周期内,允许的日志数目是1000,超过部分会被丢弃。
也是根据需要调整值,或者通过把两个值都设置成0的方式关闭限制;然后重启rsyslog服务就行。
- 补充一点
关于日志Rate的配置值,system journal和rsyslog都有一个缺省值,不同的操作系统,发行版本,以及system journal/rsyslog的版本都可能有不同的值,要查具体文档。
如果在配置文件里面没有值,则使用缺省值。
system journal的配置文件在:
- /etc/systemd/journald.conf
- /etc/systemd/journald.conf.d/*
rsyslog的配置文件在:
- /etc/rsyslog.conf
- /etc/rsyslog.d/*
转自: https://www.jianshu.com/p/4e71f553cf3f
rsyslog由于RateLimit丢失日志的处理的更多相关文章
- CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
- django+nginx+xshell简易日志查询,接上<关于《rsyslog+mysql+loganalyzer搭建日志服务器<个人笔记>》的反思>
纠正一下之前在<关于<rsyslog+mysql+loganalyzer搭建日志服务器<个人笔记>>的反思>中说到的PHP+MySQL太慢,这里只是说我技术不好,没 ...
- 关于《rsyslog+mysql+loganalyzer搭建日志服务器<个人笔记>》的反思
关于<rsyslog+mysql+loganalyzer搭建日志服务器<个人笔记>>的反思--链接--http://www.cnblogs.com/drgcaosheng/p/ ...
- CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
- rsyslog+mysql+loganalyzer搭建日志服务器<个人笔记>
大概思路如下: 使用Linux自带的rsyslog服务来做底层,然后再使用mysql与rsyslog的模板来存储文件,并且以web来进行显示出来.<模板的存储以日期的树形结构来存储,并且以服务器 ...
- CENTOS6.2系统日志rsyslog替换默认的日志服务syslog 转载自http://www.phpboy.net/linux/648.html
最近遇到配置centos 6.2的sshd及sftp日志,发现/etc/syslog.conf文件不存在, 然后: #rpm -qa | grep syslog 出来的是 rsyslog-5.8.10 ...
- rsyslog+mariadb+loganalyzer实现日志服务器搭建
rsyslog+mariadb+loganalyzer实现日志服务器搭建 一.概述 Linux的日志记录了用户在系统上一切操作,包括系统自身运作产生的日志,这些日志是应使用者了解服务器的情况最好的资料 ...
- <二>ELK-6.5.3学习笔记–使用rsyslog传输管理nginx日志
http://www.eryajf.net/2362.html 转载于 本文预计阅读时间 28 分钟 文章目录[隐藏] 1,nginx日志json化. 2,发送端配置. 3,接收端配置. 4,配置lo ...
- Oracle控制文件丢失,日志文件丢失
控制文件丢失: alter database backup controlfile to traces; shutdown immediate; @j:\db\script\orcl_ora_ctl_ ...
- rsyslog VS syslog-ng,日志记录哪家强?
还有慢慢摸索,NG的MYSQL配置,我始终没搞好. RSYSLOG则比较容易. 另外,也可以每个RSYSLOG直接入库,不需要经过LOG SERVER..如果有一个大内网的话... 配合LOGANAL ...
随机推荐
- 结合代码和内存变化图一步步弄懂JVM的FullGC
1.年轻代存活的对象太多,老年代了放不下 01.示例代码 public class DemoTest1 { public static void main(String[] args) { byte[ ...
- npm -D与-S
--save == -S -S, --save 安装包信息将加入到dependencies(生产阶段的依赖,也就是项目运行时的依赖,就是程序上线后仍然需要依赖) --save-dev == -D -D ...
- liunx安装docker (自我记录)
1 安装 安装所需的软件包dnf install -y yum-utils device-mapper-persistent-data lvm2 //官方源地址(比较慢) ~]# dnf config ...
- rsut 字节数组和字符串转换
一.字符串转换为字节数组 let s = String::from("str"); let v = s.as_bytes(); // &[u8] println!(&quo ...
- Vue 超长列表渲染性能优化
参考:https://juejin.cn/post/6979865534166728711#heading-3 组件懒加载参考:https://github.com/xunleif2e/vue-laz ...
- python数据方面的文章
excel 对接 jupyter https://mp.weixin.qq.com/s/NTCIOs_Yz3MIRgT8S36yGQ pandas 常用分拆数据 https: ...
- Thread Safety Analysis 编译期对线程安全代码的检测
https://blog.csdn.net/weixin_42157432/article/details/115939656 使用Clang Static Thread Analysis在编译期发现 ...
- ABAP 委外采购收货调用过账bapi
相关的表: ekko:采购凭证抬头表 用于判断是否委外 ekpo:采购凭证行项目表 用于判断是否委外以及委外采购的数量 resb:获取委外采购单中bom的相应预留 mseg:获取已经委外原材料出库给供 ...
- Mysql主从备份指定库别名
问题:replicate-rewrite-db 不生效 解决方案: 尝试 注释掉 replicate-do-db ,不写 replicate-ignore-db,只写 replicate-rewri ...
- TypeScript的super
(function(){ class Animal{ name:string; constructor(name:string){ this.name=name; } sayHello(){ cons ...