官方文档地址:
Install by RPM Package (Red Hat Linux)
本文解释如何安装td-agent rpm 包,这是由 Treasure Data, Inc. 维护的稳定的 Fluentd 发行包。
1. td-agent 是什么?
Fluentd 是用 Ruby 编写的,以提高灵活性,对性能敏感的部分是用 C 语言编写的。但是,有些用户可能在安装和操作 Ruby 守护进程时遇到困难。
这就是为什么 Treasure Data, Inc 提供了 Fluentd 的稳定发行版,称为td-agent 。
2. calyptia-fluentd 是什么?
我们的 Calyptia 也叫作 Fluentd 是用 Ruby 编写的,以提高灵活性,而对性能敏感的部分是用 C 语言编写的。但是,有些用户可能在安装和操作 Ruby 守护进程时遇到困难。由于兼容性和 Ruby 版本策略的原因,td-agent 仍然使用Ruby 2.7,calyptia-fluentd 目前使用 Ruby 3 而不是 Ruby 2.7。
这就是为什么 Calyptia,Inc. 提供了 Fluentd 的替代稳定发行版,称为calyptia-fluentd 。td-agent 和calyptia-fluentd 之间的区别是绑定的 Ruby 版本不同。
本安装指南适用于td-agent v3/v4 和calyptia-fluentd v1。td-agent v3/v4 和calyptia-fluentd 在核心都使用 fluentd v1。有关比较和支持的操作系统,请参阅此页。
3. 用于安装 td-agent
3.1. 步骤 0:安装前
请按照预安装指南正确配置操作系统。
3.2. 步骤 1:从 rpm Repository 安装
强烈建议在 node 上设置ntpd ,以防止日志中的时间戳无效。看预安装指南。
注意:如果您的操作系统不受支持,请考虑安装 gem。
3.2.1. Red Hat / CentOS
使用 curl 下载并执行安装脚本:
$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh
$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh
执行此脚本将自动在您的机器上安装td-agent 。这个 shell 脚本在/etc/yum.repos.d/td.repo 上注册一个新的rpm 存储库并安装td-agent 。
我们在脚本中使用$releasever 作为存储库路径,并且$releasever 应该是像“7” 那样的主版本。如果您的环境使用“7.2” 之类的其他格式,则只将其更改为主版本或手动设置 TD 存储库。
3.2.2. Amazon Linux
对于 Amazon Linux 2:
# td-agent 4
$ curl -L https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent4.sh | sh
# td-agent 3
$ curl -L https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent3.sh | sh
3.3. 步骤 2:启动 Daemon
td-agent 提供两(2)个脚本:
3.3.1. systemd
使用/usr/lib/systemd/system/td-agent 脚本启动、停止或重启agent :
$ sudo systemctl start td-agent.service
$ sudo systemctl status td-agent.service
● td-agent.service - td-agent: Fluentd based data collector for Treasure Data
Loaded: loaded (/lib/systemd/system/td-agent.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2017-12-07 15:12:27 PST; 6min ago
Docs: https://docs.treasuredata.com/articles/td-agent
Process: 53192 ExecStart = /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid (code = exited, statu
Main PID: 53198 (fluentd)
CGroup: /system.slice/td-agent.service
├─53198 /opt/td-agent/embedded/bin/ruby /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent
└─53203 /opt/td-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /v
Dec 07 15:12:27 ubuntu systemd[1]: Starting td-agent: Fluentd based data collector for Treasure Data...
Dec 07 15:12:27 ubuntu systemd[1]: Started td-agent: Fluentd based data collector for Treasure Data.
要自定义 systemd 行为,请放置td-agent.service 到/etc/systemd/system 。
注意:在td-agent 4 中,路径是/opt/td-agent/bin ,而不是/opt/td-agent/embedded/bin 。
3.3.2. init.d
这是针对 CentOS 6,非systemd 的系统。
使用/etc/init.d/td-agent 脚本启动,停止,重启agent :
$ sudo /etc/init.d/td-agent start
Starting td-agent: [ OK ]
$ sudo /etc/init.d/td-agent status
td-agent (pid 21678) is running...
支持以下命令:
$ sudo /etc/init.d/td-agent start
$ sudo /etc/init.d/td-agent stop
$ sudo /etc/init.d/td-agent restart
$ sudo /etc/init.d/td-agent status
请确保您的配置文件路径为:
/etc/td-agent/td-agent.conf
3.4. 步骤 3:通过 HTTP 发布示例日志
默认配置/etc/td-agent/td-agent.conf 是在 HTTP 端点接收日志并将其路由到stdout 。td-agent 日志请参见/var/log/td-agent/td-agent.log 。
您可以使用curl 命令发布示例日志记录:
$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
$ tail -n 1 /var/log/td-agent/td-agent.log
2018-01-01 17:51:47 -0700 debug.test: {"json":"message"}
4. 用于安装 calyptia-fluentd
4.1. 步骤 0:安装前
请按照预安装指南正确配置操作系统。
4.2. 步骤 1:从 rpm Repository 安装
强烈建议在 node 上设置ntpd ,以防止日志中的时间戳无效。看预安装指南。
注意:如果您的操作系统不受支持,请考虑安装 gem。
4.2.1. Red Hat / CentOS
使用 curl 下载并执行安装脚本:
$ curl -L https://calyptia-fluentd.s3.us-east-2.amazonaws.com/calyptia-fluentd-1-redhat.sh | sh
执行此脚本将自动在您的机器上安装calyptia-fluentd 。这个 shell 脚本在/etc/yum.repos.d/Calyptia-Fluentd.repo 注册一个新的 rpm 存储库并安装calyptia-fluentd 。
我们在脚本中使用$releasever 作为存储库路径,并且$releasever 应该是像“7” 那样的主版本。如果您的环境使用“7.2” 之类的其他格式,则只将其更改为主版本或手动设置 TD 存储库。
4.2.2. CentOS Stream
CentOS Stream 8:
$ curl -L https://calyptia-fluentd.s3.us-east-2.amazonaws.com/calyptia-fluentd-1-centos-stream.sh
4.2.3. Amazon Linux
Amazon Linux 2:
$ curl -L https://calyptia-fluentd.s3.us-east-2.amazonaws.com/calyptia-fluentd-1-amazon-2.sh | sh
4.3. 步骤 2:启动守护进程
calyptia-fluentd 只提供systemd 的单元文件:
4.3.1. systemd
使用/usr/lib/systemd/system/calyptia-fluentd 脚本启动、停止或重启agent :
$ sudo systemctl start calyptia-fluentd.service
$ sudo systemctl status calyptia-fluentd.service
● calyptia-fluentd.service - calyptia-fluentd: Fluentd based data collector for Calyptia Services
Loaded: loaded (/usr/lib/systemd/system/calyptia-fluentd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2021-05-31 01:37:47 UTC; 4h 38min ago
Docs: https://docs.fluentd.org/
Process: 694 ExecStart=/opt/calyptia-fluentd/bin/fluentd --log $CALYPTIA_FLUENTD_LOG_FILE --daemon /var/run/calyptia-fluentd/calyptia-fluentd.pid $CALYPTIA_FLUENTD_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 1365 (fluentd)
CGroup: /system.slice/calyptia-fluentd.service
├─1365 /opt/calyptia-fluentd/bin/ruby /opt/calyptia-fluentd/bin/fluentd --log /var/log/calyptia-fluentd/calyptia-fluentd.log --daem...
└─1368 /opt/calyptia-fluentd/bin/ruby -Eascii-8bit:ascii-8bit /opt/calyptia-fluentd/bin/fluentd --log /var/log/calyptia-fluentd/cal...
要自定义systemd 行为,请放置calyptia-fluentd.service 在/etc/systemd/system 下。
请确保您的配置文件路径为:
/etc/calyptia-fluentd/calyptia-fluentd.conf
4.4. 步骤 3:通过 HTTP 发布示例日志
默认配置/etc/calyptia-fluentd/calyptia-faluentd.conf 是在 HTTP 端点接收日志并将其路由到stdout 。calyptia-fluentd 日志请参见/var/log/calyptia-fluentd/calyptia-fluentd.log 。
您可以使用curl 命令发布示例日志记录:
$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
$ sudo tail -n 1 /var/log/calyptia-fluentd/calyptia-fluentd.log
2021-05-31 06:19:04.415878392 +0000 debug.test: {"json":"message"}
5. 下一步
现在可以使用 Fluentd 收集实际日志了。请参阅下面的教程,了解如何从各种来源收集数据:
- 基本配置
- 应用程序日志
- Ruby, Java, Python, PHP,Perl, Node.js, Scala
- 示例
- 更进一步
|