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
,并且容易出错。为了消除这种复杂性和维护自定义代码的困难,我在 Helm 中添加了一个 toToml
模板函数。一旦 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 文件可以直接添加到您的 values.yaml 文件中的 config 部分,并在那里进行编辑。
下一步
我计划继续改进部署 TICK 堆栈的生产就绪性、示例和用户体验。以下项目在我的 # TODO:
列表中:
- 生产就绪性
- 使 InfluxDB 部署时启用基本身份验证
- 添加备份/恢复作业示例,以将 InfluxDB 备份到 s3 或其他对象存储
- 创建作业,在升级时动态重新加载
telegraf
的配置
- 用户体验
- 创建顶级图表,以便可以从一个图表管理整个部署
- 将零到仪表板的时间缩短到最短
- 解决随着使用量增加而开始出现的问题点
- 示例
- 使用Telegraf监控Prometheus端点
- 在Kubernetes中使用队列与Telegraf
- 监控
{{ .telegraf_plugin.name }}
(欢迎提出建议!)
我也非常希望听到您对集成中希望看到哪些功能的想法。请在我们社区网站上的这篇帖子这里发表您的问题/疑虑/建议或其他评论。我迫不及待想听到您的反馈!