linux - 如何删除转发时间戳?OSE 版本 Syslog-NG
问题描述
按照答案,
我尝试在 Syslog-NG 3.17 OSE 版本中进行更改,配置如下,
@version: 3.17
@include "scl.conf"
options {
};
source s_network_to_forward {
network(
flags(no-parse)
transport(udp)
port(514)
keep-timestamp(no)
persist-name("somekey")
);
};
template forward_template {
template($RAWMSG);
template_escape(no);
};
destination forward_to_syslog2{
network("1.2.3.4" transport(udp) port(514) template(forward_template));
};
log {
source(s_network_to_forward);
destination(forward_to_syslog2);
};
要转发的消息:Oct 31 16:44:29.071 UTC: %SYS-3-DUP_TIMER: Same tty2 in linewatch_timers, type 2
上面的配置能够转发消息,如下所示(额外的标头以粗体显示):
10 月 31 日 12:44:29 XXXX 5277586: Oct 31 16:44:29.071 UTC: %SYS-3-DUP_TIMER: Same tty2 in linewatch_timers, type 2
其中 XXXX 显示实际发件人地址(如预期)、进程 ID(5277586
)和转发时间戳(Oct 31 12:44:29
)
但
只希望转发Oct 31 16:44:29.071 UTC: X.X.X.X 5277586: %SYS-3-DUP_TIMER: Same tty2 in linewatch_timers, type 2
通过删除转发时间戳
如何转发所需的格式?
解决方案
如果您想在发送消息时转发消息,$RAWMESSAGE
宏是个好主意,但默认情况下它是空的(因为它使消息内存占用更大)。
flags(...,store-raw-message)
您必须在源配置中添加一个额外的标志。(参见相关文档)
您的配置看起来像这样:
@version: 3.17
@include "scl.conf"
options {
};
source s_network_to_forward {
network(
flags(no-parse,store-raw-message)
transport(udp)
port(514)
keep-timestamp(no)
persist-name("somekey")
);
};
template forward_template {
template("$RAWMSG");
template_escape(no);
};
destination forward_to_syslog2{
network("1.2.3.4" transport(udp) port(514) template(forward_template));
};
log {
source(s_network_to_forward);
destination(forward_to_syslog2);
};
推荐阅读
- django - Django - 我们可以让模型继承自己吗?
- java - HTTP 状态 500 - Eclipse 中的内部服务器错误
- reactjs - 从按钮单击的输入中获取值并输入按键反应
- android - RecyclerView 元素 OnClickListener 对点击没有反应
- node.js - Express 中的路线优先级:我做错了吗?
- sql - SQL 中的字符串到日期转换
- actions-on-google - 正在使用的关键字触发了 Google 助理的意外退出和全局响应
- javascript - 将负数转换为字符串,然后再转换回负数
- programming-languages - 如何模拟while循环?
- processing - 如何单独更改每个 controlP5 下拉列表条目的颜色?