[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

fluidd 3 分钟烹饪如何将日志转发到 swift 对象存储

大家好,我是佐藤,最近经常玩 Fluentd。

我们正在为某个项目使用GMO App Cloud,我们收到一个请求,要求使用fluidd将正在运行的服务器的日志划分为每小时的块并将它们保存在对象存储中。

“它是对象存储!它可能与 S3 兼容,所以这是一个轻松的胜利!”

我把这件事闹大了。 。 。 。 。

GMO 应用云对象存储

对象存储使用 OpenStack 的基于 Swift 的 API 从客户管理的服务器进行操作。

什么?斯威夫特呢? ?

我突然从一开始就迷茫了……GMO App Cloud的对象存储参考有使用curl、Python-swiftclient和Cyber​​duck的操作示例,但是它们都不适合与fluidd链接,我必须自己登录。考虑制定一个转移计划。 。 。

有东西有用!

我要感谢作者创建了一个可以帮助解决这个困难领域的插件

这就是为什么

Fluentd 3 分钟烹饪(GMO App Cloud)Swift 对象存储版

这是材质

1.fluidd及所需插件

  • fluidd(td-agent) 新鲜(最新版本)
  • 流利插件 Swift
  • 流畅插件森林

*这是您的偏好,但此食谱假设使用森林。

2. 访问swift对象存储所需的信息

请从 GMO App Cloud 控制面板 > 服务 > API 信息检查以下内容

服务信息: 租户名称 以app开头的20位数字
*还有称为租户ID的信息,但我们这次不会使用它

端点:identity v2.0(身份验证)
*端点信息有多种,但这次我们将使用这个。

您还需要 GMO App Cloud 控制面板的登录 ID/密码
准备好所有原料后,我们就可以开始烹饪了。

3.安装fluidd

在安装前已完成推荐设置,请按照官方页面上的说明进行安装。

#curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

4.安装插件

让我们安装 Fluent-plugin-swift 和 Fluent-plugin-forest。

# /opt/td-agent/embedded/bin/gem 安装 Fluent-plugin-swift Fluent-plugin-forest

5. 准备配置文件

编辑/etc/td-agent/td-agentd.conf

定义源(传输源日志)标签

这次,我们将使用标签 syslog.messages 定义 /var/log/messages。

<source>类型 tail 格式 无 标记 syslog.messages 路径 /var/log/messages pos_file /var/tmp/messages.pos</source>

匹配(swift 对象存储目标)标签定义


/hostname/YYYYMM/hostname_log 文件名_YYYYMMDD-HH_NN.gz 的
格式保存在对象存储容器(S3 中的 Bucket)

<match syslog.*>类型 森林 亚型 swift<template> auth_url https://ident-r2nd1001.app-sys.jp/v2.0/tokens auth_user "GMO App Cloud 控制面板登录 ID" auth_api_key "GMO App Cloud 控制面板登录密码" auth_tenant "租户名称" swift_container "swift 容器名称" swift_object_key_format %{path}${主机名}_${tag_parts[0]}.${tag_parts[1]}_%{time_slice}_%{index}.%{file_extension} 路径 %{主机名}/%Y% m/ ssl_verify false buffer_path /var/log/ Fluent/swift/${tag_parts[0]}.${tag_parts[1]} time_slice_format %Y%m%d-%H time_slice_wait 10m</template></match>

预先创建 swift_containter 中指定的容器名称即可,但如果不存在,则会自动创建。

6. 运行测试

# td-agent-vv &

您可以一次性启动它,但首先,在调试模式下检查状态大约一个小时,然后检查以下内容。

  • 配置文件的格式没有错误。
  • 日志正在传输到对象存储

*如果 td-agent 已在运行,并且您只想测试计划添加的设置,请准备一个具有不同名称的配置文件(例如 td-agent.conf.test)。

# td-agent -vv -c /etc/td-agent/td-agent.conf.test &

如果这样做,则可以在不影响现有 td-agent 运行的情况下进行测试。

如果日志转移到对象存储,会出现这样的日志

YYYY-mm-dd HH:MM:SS +0900 [info]: 将日志放入 Swift.container="容器名称" object=主机名/YYYYMM/主机名_日志文件名_YYYYMMDD-HH_NN.gz

7.启动td-agent并设置自动启动

# chkconfig td-agent on && 服务 td-agent 启动

如今基于 Swift 的对象存储很少见,但插件设置与 S3 插件非常相似,所以我认为设置起来并不困难。

祝你生活愉快。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
1,002
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

佐藤圣坚

我在紧要关头有很好的第六感,但我基本上是一个老派工程师。目前,
我在加拿大办事处工作。