<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>深蓝的blog &#187; rsyslog queue</title>
	<atom:link href="http://www.lanxinbase.com/?feed=rss2&#038;tag=rsyslog-queue" rel="self" type="application/rss+xml" />
	<link>http://www.lanxinbase.com</link>
	<description>记录日常生活</description>
	<lastBuildDate>Sat, 18 Apr 2026 07:10:07 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.3</generator>
	<item>
		<title>rsyslog queue队列权威指南</title>
		<link>http://www.lanxinbase.com/?p=2855</link>
		<comments>http://www.lanxinbase.com/?p=2855#comments</comments>
		<pubDate>Mon, 15 Jan 2024 03:08:22 +0000</pubDate>
		<dc:creator><![CDATA[Alan]]></dc:creator>
				<category><![CDATA[1.服务端语言]]></category>
		<category><![CDATA[2.运维相关]]></category>
		<category><![CDATA[rsyslog queue]]></category>

		<guid isPermaLink="false">http://www.lanxinbase.com/?p=2855</guid>
		<description><![CDATA[实际上，队列在整个日志的生命周期中都存在，它是Rsyslog的核心，一般情况下，我们感觉不到它的存在；然而，从日志的产生到被处理的过程，都必须经过两个队列，一个是主消息队列（main message queue），另一个是动作队列（action queue）。通过下面的图片，可以理解得更加清楚：

[图片1]

从上图中可以看到，日志产生后，先经过预处理器然后就被压入main message queue等待后续的处理，在进入action queue之前，日志被解析器和过滤器处理，它们的作用是读取rsyslog.conf配置文件中设置的规则，和日志中的内容进行对比，然后发送到合适的action queue，一旦日志进入到这个action queue之后，就会从主消息队列中删除。

日志真正被处理的阶段发生在进入action queue之后，action processor（动作处理器）会从action queue中获取最先进入队列的日志进行处理，根据规则进行日志的输出，例如写入文件，录入数据库、发送到远程服务器，甚至是把它们丢弃。

rsyslog.conf中每一条规则的action都有一个action queue，这种queue默认类型是direct queue，但严格来说，它不属于队列，虽然名字中有queue字样。direct queue通常处理简单的行为，例如把日志写入本地文件。

在direct queue下，同一条日志如果被多个动作处理器消费，这个时候，同一条日志会被复制到各个动作队列中，那么可能会造成的现象是，当你使用discard丢弃日志的时候，会发现discard指令没有生效，原因是：discard指令丢弃的是原始日志的副本，而原始的日志会继续活动在原来的工作流中。]]></description>
		<wfw:commentRss>http://www.lanxinbase.com/?feed=rss2&#038;p=2855</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
