TL;DR InfluxDB 技术技巧 - 使用 Kapacitor 和 Chronograf 在 Telegram 中设置

导航至

在本篇文章中,我们介绍了如何设置 Kapacitor 和 Chronograf 来将警报消息发送到 Telegram。下周将为您带来最有趣的 InfluxDB 和 TICK-stack 相关问题、解决方案、教程和问答,包括来自 GitHub、IRC 和 InfluxDB Google Group 的内容,您可能错过了。

使用 Kapacitor 在 Telegram 中设置

Telegram 是一个即时通讯应用程序。 Kapacitor 是 InfluxData 的开源数据处理框架,允许您配置和发送警报消息到 事件处理器 (例如 Telegram!)。

要求

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

Telegram 机器人

以下步骤描述了如何创建一个新的 Telegram 机器人。

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

2. 点击 Start@BotFather 开始对话

3.@BotFather 发送 /newbot

@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.@BotFather发送/token

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的安装指南,了解如何安装并将Kapacitor连接到Chronograf。

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

在“使用Kapacitor配置Telegram”部分中查看要求列表,了解如何从Telegram获取该信息。

Chronograf/Kapacitor配置

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

2.Configure Alert Endpoints 部分,从下拉菜单中选择Telegram 。

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

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

5. 点击Save 按钮。

注意,Telegram URL 输入不需要额外配置。Parse ModeDisable Web Page PreviewDisable Notification 复选框是可选的;有关这些设置的更多信息,请参阅Kapacitor文档

规则配置

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

接下来是什么

  • 下载 TICK-stack的下载可在我们的“下载”页面找到。
  • 云上部署:免费试用InfluxDB Cloud,包括完全管理的集群、Kapacitor和Grafana。
  • 在您的服务器上部署:想在您的服务器上运行InfluxDB集群吗?尝试免费14天的InfluxDB Enterprise试用期,InfluxDB Enterprise,具有直观的界面,用于部署、监控和重新平衡集群,以及管理备份和恢复。
  • 讲述您的故事: 300多家公司 分享了他们如何通过InfluxDB取得成功的故事。提交您的评价,并作为感谢获得限量版卫衣。