tick-charts 更新
作者:Jack Zampolin / 用例, 开发者
2017 年 3 月 29 日
导航至
这是对我之前关于 tick-charts
的博客文章的更新,该项目旨在使 InfluxData 堆栈尽可能容易地在 Kubernetes 上运行。在开发该项目的过程中,我了解到最初的一些实现决策并不是正确的方法!此外,自那时以来,Chronograf 已显着成熟,并且需要对图表进行添加以支持几种不同的 OAuth 类型:Heroku、Github 和 Google。
Telegraf 更改
第一个版本的主要更改是 telegraf
图表的重新架构。最初,我认为 telegraf 的单体图表将是最佳选择。该图表将主机级监控以及轮询都放在一个 values.yaml
文件中。这变得很复杂,因为 telegraf 主要由配置驱动,并且将两个配置都放在一个文件中很快就会变得过于复杂。该图表的另一个缺点是,启动单个 telegraf 实例需要删除 daemonset
的大量配置。
为了降低这种复杂性,我采用了双管齐下的方法。首先,我将 telegraf 图表拆分为两个,为用户提供了更清晰的界面。接下来,我减少了 daemonset
(telegraf-ds
) 所需的配置量。默认值提供了 Kubernetes 中主机级监控的基础知识:Kubelet 和 Docker 轮询、cpu、mem、disk、系统负载 和网络统计信息。用户只需要设置 config.outputs.influxdb.url
。如果您不想托管自己的 InfluxDB,您可以轻松启动一个 InfluxDB Cloud 实例来保存数据。
用于启动单个 telegraf 实例的图表现在称为 telegraf-s
。目前,它的实现方式与旧的 telegraf 图表非常相似:使用一些自定义 golang 模板来生成配置。这对于需要大量配置的插件(例如 snmp
或 jolokia
)来说很困难,并且容易出错。为了消除这种复杂性和维护自定义代码的难度,我添加了一个 toToml
模板函数到 Helm。一旦 Helm 的 2.3 版本 可用,telegraf-s
图表将被修改为使用它。这将使在您的集群中创建 telegraf 实例变得非常容易。使用像 remarshal
这样的工具将 telegraf 输出的 toml
转换为 yaml
,生成新的 telegraf 实例来监控集群一部分的工作流程将如下所示
# On mac at least...
$ telegraf -sample-config -input-filter nginx:cloudwatch -output-filter
kafka_producer | toml2yaml | pbcopy
生成的 yaml blob 可以直接添加到您的 values.yaml 文件中的 config 部分并在那里进行编辑。
后续步骤
我计划继续改进 TICK 堆栈部署的生产就绪性、示例和用户体验。以下项目在我的此项目的 # TODO:
列表中
- 生产就绪性
- 使 InfluxDB 部署启用基本身份验证
- 添加备份/恢复作业示例,以将 InfluxDB 备份到 s3 或其他对象存储
- 创建作业以在升级时动态重新加载
telegraf
的配置
- 用户体验
- 创建一个顶级图表,以便可以从一个图表管理整个部署
- 尽可能缩短从零到仪表板的时间
- 解决随着使用量增加而开始出现的任何痛点
- 示例
- 使用 Telegraf 监控 Prometheus 端点
- 在 Kubernetes 中使用队列和 Telegraf
- 监控
{{ .telegraf_plugin.name }}
(欢迎提出建议!)
我也很想听取您希望在此集成中看到哪些功能的意见。请在我们的社区网站上的这篇文章上发布您的问题/疑虑/建议或其他评论。我迫不及待想收到您的来信!