rsyslog参数说明

下文出现的配置指令中,请将 “<object>” 根据情况替换为 “MainMsg” 或 “Action”。 前者对应主消息队列,后者对应将要创建的动作对应的队列。

每定义一个动作都会相应的创建一个动作队列,缺省情况下动作队列为 direct 模式(下详),等价于无队列。在动作队列创建其的配置参数会被恢复为缺省值, 这样就可以针对不同的动作进行不同的配置。

可用的队列类型为 $<object>QueueType [Direct|Disk|FixedArray|LinkedList],分别解释如下:

  1. Direct:没有队列
  2. Disk:仅使用磁盘作为缓冲
  3. FixedArray:使用内存作为缓冲,使用固定大小的预分配指针数组来记录队列元素
  4. LinkedList:使用内存作为缓冲,但所有数据都是动态分配的

当队列使用到磁盘或磁盘辅助时,会用到下面这些参数:

  • $WorkDirectory 磁盘文件所在的目录
  • $<object>QueueFilename 定义磁盘文件前缀
  • $<object>QueueMaxFileSize 每个文件的最大大小,缺省为 10MB
  • $<object>QueueMaxDiskSpace 最大可用的磁盘空间
  • $<object>QueueCheckpointInterval 更新bookkeeping 信息的间隔,每 n 秒
  • $<object>QueueSyncQueueFiles [on/off] 每次写操作后调用 (f)sync, 4.3.2 及之后的版本可用

对 FixedArray 和 LinkedList 两种类型,如果定义了 $<object>QueueFilename, 则队列变为磁盘辅助内存队列。在有必要时(内存队列满,写数据库太慢,进程关闭等), 数据会被写入磁盘(将来再读出)作为缓冲。指令 $<object>QueueHighWatermark 和 $<object>QueueLowWatermark 控制合适使用磁盘。在队列中的元素超过高水位 时开始使用磁盘,低于低水位时才停止。

$<object>QueueSize 配置队列大小,即可以存放的日志条数。

每个队列都有一个工作线程池,相关配置如下:

  • $<object>QueueWorkerThreadMinimumMessages 新工作线程启动的条件
  • $<object>QueueWorkerThreads 线程个数的上限
  • $<object>QueueWorkerTimeoutThreadShutdown 线程关闭超时值, 0 表示立即关闭,-1 表示永不关闭。

如果队列里的元素个数达到丢弃水位,则可以抛弃指定级别的日志信息, 从而保障重要信息有空间存放。

  • $<object>QueueDiscardMark 超过阀值丢弃(QueueSize*80%),默认值9750
  • $<object>QueueDiscardSeverity 定义可丢弃日志的优先级(>=),默认值4
Numerical         Severity
          Code

           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

如果队列满或磁盘空间满或其他情况,rsyslog 会控制输入输出的吞吐。

  • $<object>QueueTimeoutEnqueue 单位 ms,如果超过该时间仍然不能出队列, 日志会被丢弃。0 表示立即丢弃。缺省为 2s。
  • $<object>QueueDequeueSlowdown 延迟出队列时间,单位 us
  • $<object>QueueDequeueTimeBegin
  • $<object>QueueDequeueTimeEnd 出队列的时间窗口
  • $<object>DequeueBatchSize 批量输出条目数,默认值16
  • $ActionResumeRetryCount 队列被挂起后重试次数
  • $ActionResumeInterval 发送失败重连间隔(单位秒),间隔算法( (numRetries / 10 + 1) * $ActionResumeInterval )
  • $<object>QueueHighWatermark 超过阀值写入磁盘(QueueSize*60%),默认8000
  • $<object>QueueLowWatermark  低于阀值放入内存队列,默认2000

队列关闭的相关参数如下:

  • $<object>QueueTimeoutShutdown 关闭超时时间,单位ms,默认0
  • $<object>QueueTimeoutActionCompletion 队列完成超时时间,单位ms,默认1000
  • $<object>QueueSaveOnShutdown 队列关闭时是否保存数据,默认off

在没有配置任何队列相关参数的情况下(即队列类型为 Direct), 日志输出是按顺序进行,如果其中某个动作阻塞则会导致所有日志输出阻塞。 队列缺省参数(例如 $<object>QueueTimeoutEnqueue 的缺省 2s) 的设置也会影响到日志输入端的处理。 其他应用的日志输出相应的会被延迟,导致应用响应变慢。 因此在日志输出动作有使用到非本地文件输出时,最好对该动作队列进行合理的配置。

更多参考:

1、http://www.rsyslog.com/doc/v8-stable/configuration/action/index.html

2、http://www.rsyslog.com/doc/v8-stable/configuration/global/index.html

3、https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/ch-Viewing_and_Managing_Log_Files.html

转载于:https://my.oschina.net/thmz/blog/704513

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值