我使用 td-agent 运行 fluentd 的环境如下:-
fluentd or td-agent version.
td-agent 1.3.3
Environment information:
Operating system: cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.5 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.5 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
Kernel version: uname -r
4.4.0-1077-aws
我在我的 conf 文件中使用 filter_parser 插件,如下所示:-
<filter input.s3>
@type parser
key_name message
remove_key_name_field true
<parse>
@type regexp
expression /^?<timestamp>[^ ]*) [^ ]* [^ ]* [^ ]* [^ ]* [^ ]* [^ ]* [^ ]* [^ ]* (?<url>[^ ]*) [^ ]* [^ ]* [^ ]* [^ ]* (?<platform>".+") [^ ]* (?<ref>".+")$/
time_format %d/%b/%Y:%H:%M:%S %z
</parse>
</filter>
现在,当我通过以下命令重新启动 td-agent 时,我在命令输出中得到错误。
sudo /etc/init.d/td-agent restart
Error:- [....] Restarting td-agent (via systemctl): td-agent.serviceJob for td-agent.service failed because the control process exited with error code. See "systemctl status td-agent.service" and "journalctl -xe" for details.
我的 conf 文件是正确的,因为我可以在 td 代理的日志文件中看到解析成功,如下所示:-
2019-03-24 11:53:16 +0000 [info]: parsing config file is succeeded path="/etc/td-agent/td-agent.conf"
此外,当我尝试为来自 v0.12 的旧 fluentd 版本安装过滤器解析器时(td-agent2,它似乎可以工作并给我错误,例如格式字段是必需的,这是有道理的,因为 td-agentv3 没有任何格式参数。
当我删除此过滤器插件时,一切都对我有用,并且重新启动成功。
td-agentv3 的解析器插件似乎无法正常工作或被 td-agent 检测到。任何指导都会对我很有帮助。