rsyslog queue
2016-07-22 15:03
435 查看
http://www.rsyslog.com/doc/v8-stable/concepts/queues.html
1.所有消息先进主队列,再根据过滤器进响应队列,进去之后主队列消息删除;
2.$MainMsgQueueSaveOnShutdown on;
3.设置队列模型 : $<object>QueueType
4. 直接队列: $<object>QueueType Directory
5. 硬盘队列: 超可靠,但是最慢,不推荐
前缀:$<object>QueueFilename
分块写,每个块写自己的文件,前缀如上,接7个数字,从1开始,默认10mb,可设置大小:$<object>QueueMaxFileSize,但是大小要求不严格,rsyslog总是写完整个队列条目,即使违反大小限制;200G硬盘推荐设置为2G
在队列创建之前,使用$WorkDirectory命令指定不同的硬盘可以提高性能;
创建硬盘队列:$<object>QueueType Disk;
队列检查时间间隔:$<object>QueueCheckpointInterval;
每个写操作同步(性能消耗严重):<object>QueueSyncQueueFiles on/off;
6. 内存队列
保存数据不限时间
LinkedList模式:动态分配,可以存储大量数据:$<object>QueueType LinkedList;
FixedArray模式:固定大小,预先分配,对于数据量小,效率要求高可以使用:$<object>QueueType FixedArray;
7. 硬盘辅助内存队列
创建:如果使用命令$<object>QueueFileName创建一个跟内存队列同名的硬盘队列,则硬盘队列自动变为硬盘辅助队列(disk-assisted DA)
内存队列和硬盘队列是串联方式,如果内存满了或者要关机,则硬盘队列被激活;
推荐数据库action或通过tcp发送的action都使用硬盘辅助队列;
high watermark 命令:$<object>QueueHighWatermark,队列中数据量达到该值时,回写到磁盘;
low watermark 命令:$<object>QueueLowWatermark, 队列中数据量降到该值时,停止回写磁盘;
8. 限制队列大小
$<object>QueueSize : 队列可以接收的最大条目数
$<object>QueueMaxDiskSpace : 硬盘队列最大磁盘大小
9. 工作线程池
$<object>QueueWorkerThreadMinimumMessages : 该值为一个线程最多处理的消息数,大于该值,并且不会超过线程数限制,会创建新工作线程;
$<object>QueueWorkerThreads: 限制最多的线程数
$<object>QueueWorkerTimeoutThreadShutdown : 工作线程超时多长时间退出,单位毫秒,0为立即退出,-1为永不退出;
10. 消息丢弃
$<object>QueueDiscardMark : 队列消息数高于该值将会自动丢弃不重要的消息,丢弃顺序是新消息在队列头,先丢弃;
$<object>QueueDiscardSeverity: 设置队列丢弃消息级别,级别越低,丢弃越多,设置为高于队列大小或者设置为8,则不丢弃。值使用数字和文本都可以,级别在RFC 3164中定义,。
Code Severity
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages
11. 满队列
如果队列达到设置的最大值或者最大磁盘空间,队列就满了。rsyslog会关闭节流阀(throttles),这个时候对于可靠的输入(tcp/本地日志socket)的一个好的解决方案是降低消息产生;
关闭节流阀对于不可靠源,比如UDP,是高度不推荐的;
不能无限不操作,比如对本地日志socket节流时间太长会造成整个系统停顿;
$<object>QueueTimeoutEnqueue : 设置超时时间,单位毫秒,达到时间后新到的消息将被丢弃;如果不想节流,将值设置为0;
12. 速率限制
$<object>QueueDequeueSlowdown : 出队列延迟多长时间,单位微秒(microseconds),如在udp发送action中设置为1000 微秒,则限制1秒内不多与1000条。
13. 操作时间跨度
$<object>QueueDequeueTimeBegin <hour> : 设置开始出队时间,单位小时,采用24小时格式;
$<object>QueueDequeueTimeEnd <hour>: 设置结束出队时间。
14. 性能
<object>DequeueBatchSize <number> : 一批发送消息的上限条数,该上限由可用性决定,队列从来不会等该批次达到个数再发,如果队列中消息没有达到上限条数,即使只有一条,也会发出。[default 32] 设置多少条队列作为一个batch一起出队,针对一个日志量很大的系统,可以考虑把这个值调高来增加性能,不过要结合可使用内存考虑实际情况。对于一个高并发服务端,可以设置大值(1000左右或者更多),但是考虑需要内存则需要 批次大小*工作线程数 ,即使用的硬盘队列也需要这么多内存。
15. 终止队列
程序关闭时,第一个阶段:
$<object>QueueTimeoutShutdown: 当进程关闭时,设定超时时间让队列工作线程去处理没有处理完的元素,单位毫秒;
第二个阶段:
$<object>QueueTimeoutActionCompletion : 如果第一阶段之后还有元素没有被处理,该命令用来设置工作线程处理当前元素的超时时间,单位毫秒,如果到期之后,其他消息都会被丢弃,所有剩余的工作线程被取消,队列也会被销毁;
$<object>QueueSaveOnShutdown :如果是硬盘队列或者硬盘辅助队列,在关机时不想丢失数据,可以将该命令设置为on,则会将所有队列中的元素保存到硬盘。如果队列元素较多,该操作会耗时较长,并且不能设置超时。
1.所有消息先进主队列,再根据过滤器进响应队列,进去之后主队列消息删除;
2.$MainMsgQueueSaveOnShutdown on;
3.设置队列模型 : $<object>QueueType
4. 直接队列: $<object>QueueType Directory
5. 硬盘队列: 超可靠,但是最慢,不推荐
前缀:$<object>QueueFilename
分块写,每个块写自己的文件,前缀如上,接7个数字,从1开始,默认10mb,可设置大小:$<object>QueueMaxFileSize,但是大小要求不严格,rsyslog总是写完整个队列条目,即使违反大小限制;200G硬盘推荐设置为2G
在队列创建之前,使用$WorkDirectory命令指定不同的硬盘可以提高性能;
创建硬盘队列:$<object>QueueType Disk;
队列检查时间间隔:$<object>QueueCheckpointInterval;
每个写操作同步(性能消耗严重):<object>QueueSyncQueueFiles on/off;
6. 内存队列
保存数据不限时间
LinkedList模式:动态分配,可以存储大量数据:$<object>QueueType LinkedList;
FixedArray模式:固定大小,预先分配,对于数据量小,效率要求高可以使用:$<object>QueueType FixedArray;
7. 硬盘辅助内存队列
创建:如果使用命令$<object>QueueFileName创建一个跟内存队列同名的硬盘队列,则硬盘队列自动变为硬盘辅助队列(disk-assisted DA)
内存队列和硬盘队列是串联方式,如果内存满了或者要关机,则硬盘队列被激活;
推荐数据库action或通过tcp发送的action都使用硬盘辅助队列;
high watermark 命令:$<object>QueueHighWatermark,队列中数据量达到该值时,回写到磁盘;
low watermark 命令:$<object>QueueLowWatermark, 队列中数据量降到该值时,停止回写磁盘;
8. 限制队列大小
$<object>QueueSize : 队列可以接收的最大条目数
$<object>QueueMaxDiskSpace : 硬盘队列最大磁盘大小
9. 工作线程池
$<object>QueueWorkerThreadMinimumMessages : 该值为一个线程最多处理的消息数,大于该值,并且不会超过线程数限制,会创建新工作线程;
$<object>QueueWorkerThreads: 限制最多的线程数
$<object>QueueWorkerTimeoutThreadShutdown : 工作线程超时多长时间退出,单位毫秒,0为立即退出,-1为永不退出;
10. 消息丢弃
$<object>QueueDiscardMark : 队列消息数高于该值将会自动丢弃不重要的消息,丢弃顺序是新消息在队列头,先丢弃;
$<object>QueueDiscardSeverity: 设置队列丢弃消息级别,级别越低,丢弃越多,设置为高于队列大小或者设置为8,则不丢弃。值使用数字和文本都可以,级别在RFC 3164中定义,。
Code Severity
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages
11. 满队列
如果队列达到设置的最大值或者最大磁盘空间,队列就满了。rsyslog会关闭节流阀(throttles),这个时候对于可靠的输入(tcp/本地日志socket)的一个好的解决方案是降低消息产生;
关闭节流阀对于不可靠源,比如UDP,是高度不推荐的;
不能无限不操作,比如对本地日志socket节流时间太长会造成整个系统停顿;
$<object>QueueTimeoutEnqueue : 设置超时时间,单位毫秒,达到时间后新到的消息将被丢弃;如果不想节流,将值设置为0;
12. 速率限制
$<object>QueueDequeueSlowdown : 出队列延迟多长时间,单位微秒(microseconds),如在udp发送action中设置为1000 微秒,则限制1秒内不多与1000条。
13. 操作时间跨度
$<object>QueueDequeueTimeBegin <hour> : 设置开始出队时间,单位小时,采用24小时格式;
$<object>QueueDequeueTimeEnd <hour>: 设置结束出队时间。
14. 性能
<object>DequeueBatchSize <number> : 一批发送消息的上限条数,该上限由可用性决定,队列从来不会等该批次达到个数再发,如果队列中消息没有达到上限条数,即使只有一条,也会发出。[default 32] 设置多少条队列作为一个batch一起出队,针对一个日志量很大的系统,可以考虑把这个值调高来增加性能,不过要结合可使用内存考虑实际情况。对于一个高并发服务端,可以设置大值(1000左右或者更多),但是考虑需要内存则需要 批次大小*工作线程数 ,即使用的硬盘队列也需要这么多内存。
15. 终止队列
程序关闭时,第一个阶段:
$<object>QueueTimeoutShutdown: 当进程关闭时,设定超时时间让队列工作线程去处理没有处理完的元素,单位毫秒;
第二个阶段:
$<object>QueueTimeoutActionCompletion : 如果第一阶段之后还有元素没有被处理,该命令用来设置工作线程处理当前元素的超时时间,单位毫秒,如果到期之后,其他消息都会被丢弃,所有剩余的工作线程被取消,队列也会被销毁;
$<object>QueueSaveOnShutdown :如果是硬盘队列或者硬盘辅助队列,在关机时不想丢失数据,可以将该命令设置为on,则会将所有队列中的元素保存到硬盘。如果队列元素较多,该操作会耗时较长,并且不能设置超时。
相关文章推荐
- openstack(juno版)使用rsyslog转发日志
- rsyslog参数说明
- Rsyslog配置文件详解
- Linux系统日志管理:(4)rysylog日志服务、日志服务器以及日志转储
- CentOS 5.5搭建日志服务器
- 03-Log 日志常见配置
- Centos rsyslog远程日志服务配置
- rsyslog 的远程配置
- Centos7日志服务器配置
- rsyslog:本地日志&日志服务器
- rsyslog+loanalyzer+mysql搭建日志服务器
- linux 下rsyslog 和 logrotate 的配置
- dd-wrt使用Linux日志服务器
- PostgreSQL rsyslog的使用
- rsyslog+loganalyzer+mysql+apache+php的lamp架构搭建日志服务器
- ubuntu 10.04下搭建rsyslog Server管理存储远程主机日志
- rsyslog+loganalyzer+evtsys
- linux日志管理
- rsyslog通过自定义json格式发送日志信息给logstash
- Rsyslog Loganalyzer centos6.3