TL;DR InfluxDB 技术提示 - 使用 Kapacitor 和 Chronograf 进行 Telegram 设置

导航至

在这篇文章中,我们将介绍如何设置 Kapacitor 和 Chronograf 以将警报消息发送到 Telegram。下周请查看来自 GitHub、IRC 和 InfluxDB Google Group 中您可能错过的最有趣的 InfluxDB 和 TICK-stack 相关问题、解决方法、操作指南和问答。

使用 Kapacitor 进行 Telegram 设置

Telegram 是一款消息应用程序。Kapacitor 是 InfluxData 的开源数据处理框架,允许您配置警报消息并将其发送到 事件处理程序(例如 Telegram!)。

要求

要将 Kapacitor 警报消息 发送到 Telegram 机器人,您需要一个 Telegram 机器人、一个 API 访问令牌和您的 Telegram 聊天 ID。

Telegram 机器人

以下步骤介绍如何创建一个新的 Telegram 机器人。

1. 在您的 Telegram 应用程序中搜索用户名 @BotFather

2. 点击 Start 以开始与 @BotFather 对话

3. 发送 /newbot@BotFather

@BotFather 回复

Alright, a new bot. How are we going to call it? Please choose a name for your bot.

@BotFather 将提示您完成机器人创建过程的其余步骤;您可以随意按照他的指示进行操作,或者继续执行我们版本的以下步骤。两种设置都能成功!

4. 将您的机器人名称发送给 @BotFather

您的机器人名称可以是任何内容。请注意,这不是您机器人的 Telegram @username;您将在步骤 5 中创建用户名。

@BotFather 回复

Good. Now let's choose a username for your bot. It must end in `bot`.
Like this, for example: TetrisBot or tetris_bot.

5. 将您的机器人用户名发送给 @BotFather

您的机器人用户名必须以 bot 结尾。例如:mushroomKap_bot

BotFather 回复

Done! Congratulations on your new bot. You will find it at t.me/<bot-username>.
You can now add a description, about section and profile picture for your bot, see
/help for a list of commands. By the way, when you've finished creating your cool bot,
ping our Bot Support if you want a better username for it. Just make sure the bot is
fully operational before you do this.

Use this token to access the HTTP API:
<API-access-token>

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

6. 开始与您的机器人对话

点击 @BotFather 回复中的 t.me/<bot-username> 链接,然后在您的 Telegram 应用程序底部点击 Start

您新创建的机器人将出现在应用程序左侧的聊天列表中。

Telegram API 访问令牌

当您创建机器人时,Telegram 的 @BotFather 机器人向您发送了一个 API 访问令牌。请参阅上一节步骤 5 中的 @BotFather 回复,以查找您的令牌。

如果您找不到 API 访问令牌,请按照以下步骤创建新令牌。

1. 发送 /token@BotFather

2. 在您的 Telegram 应用程序底部选择相关的机器人

@BotFather 回复,提供新的 API 访问令牌

You can use this token to access HTTP API:
<API-access-token>

For a description of the Bot API, see this page: https://core.telegram.org/bots/api
Telegram 聊天 ID

以下步骤介绍如何识别您的聊天 ID。

1. 将以下链接粘贴到您的浏览器中

<API-access-token> 替换为您在上节中识别或创建的 API 访问令牌

https://api.telegram.org/bot<API-access-token>/getUpdates?offset=0

2. 向您的机器人发送消息

在 Telegram 应用程序中向您的机器人发送消息。消息文本可以是任何内容;您的聊天记录必须至少包含一条消息才能获取您的聊天 ID。

3. 刷新您的浏览器

4. 识别聊天 ID

在浏览器中识别数字聊天 ID。在下面的示例中,聊天 ID 为 123456789

{"ok":true,"result":[{"update_id":XXXXXXXXX,
"message":{"message_id":2,"from":{"id":123456789,"first_name":"Mushroom","last_name":"Kap"},
"chat":{"id":123456789,"first_name":"Mushroom","last_name":"Kap","type":"private"},
"date":1487183963,"text":"hi"}}]}

Telegram 配置

在 Kapacitor 配置文件 (/etc/kapacitor/kapacitor.conf) 的 [telegram] 部分中,将 enabled 设置为 true,并将 token 设置为您的 API 访问令牌。还有其他配置设置,但它们是可选的。

示例配置文件

[telegram]
  enabled = true
  url = "https://api.telegram.org/bot" # url requires no additional configuration.
  token = "abcdefghi:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  chat-id = "123456789"

Kapacitor TICKscript

在您的 Kapacitor TICKscript|alert() 部分中,包含 .telegram() 属性,并将 .chatId('<your-chat-id>') 属性设置为您的 Telegram 聊天 ID。

示例 TICKscript

stream
    |from()
        .measurement('cpu')
    |alert()
        .crit(lambda: "usage_idle" <  10)
        .message('')
        .telegram() ?
          .chatId('<your-chat-id>') ?

接下来,定义并启用您的 Kapacitor 任务,并关注您的 Telegram 机器人。就这么简单!

使用 Chronograf 进行 Telegram 设置

Chronograf 为使用 Kapacitor 提供了一个用户界面,可以轻松创建警报规则并将警报消息发送到 事件处理程序

要求

Kapacitor 实例

查看 Chronograf 的安装指南,了解如何安装 Chronograf 并将 Kapacitor 连接到 Chronograf。

Telegram 信息
  • Telegram 机器人
  • Telegram API 访问令牌
  • Telegram 聊天 ID

请参阅“使用 Kapacitor 进行 Telegram 设置”部分中的要求列表,了解如何从 Telegram 获取该信息。

Chronograf/Kapacitor 配置

1. 访问您的 Chronograf 应用程序中的 Kapacitor 配置页面。

2.配置警报端点 部分中,从下拉菜单中选择 Telegram

3.令牌 输入框中输入您的 Telegram API 访问令牌。

4.聊天 ID 输入框中输入您的聊天 ID。

5. 点击 保存 按钮。

请注意,Telegram URL 输入框不需要其他配置。解析模式禁用网页预览禁用通知 复选框是可选的;有关这些设置的更多信息,请参阅 Kapacitor 文档

规则配置

在 Chronograf 的 Kapacitor 规则页面上创建或编辑规则时,在屏幕底部的下拉菜单中选择 telegram。Kapacitor 会将与该规则关联的所有警报消息发送到您配置的 Telegram 机器人。

下一步是什么

  • 下载:TICK-stack 的下载页面已上线。
  • 云端部署:开始免费试用 InfluxDB Cloud,其中包含完全托管的集群、Kapacitor 和 Grafana。
  • 在您的服务器上部署:想在您的服务器上运行 InfluxDB 集群?免费试用 14 天的 InfluxDB Enterprise,它具有直观的 UI,可用于部署、监控和重新平衡集群,以及管理备份和恢复。
  • 讲述您的故事:超过 300 家公司 分享了他们关于 InfluxDB 如何帮助他们取得成功的故事。提交您的客户评价,即可获得限量版帽衫作为感谢。