使用 Telegraf 进行综合监控

Telegraf 可以使用特定于应用程序的插件(例如 NGINX 或 MySQL 的插件)收集许多白盒指标,并且您可以使用 InfluxDB 客户端库来检测您的应用程序,但我们也可以使用 Telegraf 作为综合监控工具来监控我们的状态来自外部的系统。

HTTP 响应输入插件

Telegraf 的 http_response 输入插件通过使用自定义请求轮询端点然后记录有关结果的信息来检查 HTTP 和 HTTPS 连接的状态。该插件的配置允许您指定要查询的 URL 列表、定义请求方法以及发送自定义请求正文或标头以模拟外部用户和系统可能采取的操作。它还允许您通过使用正则表达式验证对这些请求的响应是否与某些预定义字符串匹配来验证这些端点的行为。这些选项为我们监控应用程序的方式提供了很大的灵活性。

对于每个被轮询的目标服务器,插件将向 InfluxDB 发送一个测量结果,其中包含服务器标签(目标 URL)、请求方法、状态代码和结果,以及包含响应时间数据、响应字符串是否匹配的字段、HTTP 响应代码以及结果的数字表示(称为结果代码)。

我们可以在 Telegraf 配置中为我们想要监控的每个端点创建一个新块。Telegraf 将在每个收集间隔收集每个配置块的数据一次。

监控 Influxdata.com

让我们看一个简单的例子:我们将创建一个简单的综合监控检查,它将告诉我们 influxdata.com 是否启动。因为我们希望这些监控检查来自系统外部,所以我们需要设置某种独立的基础设施,与系统的其余部分分开,用于运行 Telegraf。这可能意味着在 AWS 上的不同可用区中运行或完全使用不同的云提供商。由于本示例实际上不需要长期存在的基础设施,因此我将配置 Telegraf 在我的 Mac 上运行,该 Mac 位于 influxdata.com 基础设施的外部。

我已经使用 Homebrew 安装了 Telegraf,因此下一步将使用我们的 http_response 设置创建一个新的配置文件。下面是该块的一个片段 inputs.http_response :这会查询 InfluxData 主页并查找匹配短语"InfluxDB is the open-source [...]"。

需要注意的一件事是,Telegraf 的收集间隔对于该插件尤其重要,因为它决定了向相关端点发出请求的频率。各个插件可以通过 在适当的配置块中包含参数来定义自己的收集间隔。interval为了举例,我们将使用 Telegraf 默认值,但您需要确定适合您自己的系统的间隔。

然后我们可以使用新配置启动 Telegraf 的副本,并且应该看到一些输出,如下所示:

下一步

http_reponse 插件在创建监控请求方面提供了很大的灵活性,您可以使用这些请求来更准确地建模用户和应用程序如何与您的站点交互。例如,您可能希望通过提交 POST 请求并验证响应是否包含搜索结果页面中的文本来验证搜索页面是否正常工作,而不仅仅是检查页面是否加载。

由于综合监控目的是对用户体验进行建模,因此检查的具体数量、频率和实施将取决于产品的设计和功能,但总的来说,您正在寻找诸如响应时间慢或速率高之类的东西错误------影响用户幸福感的事情。

由于黑盒监控通常会暴露已经影响用户的问题,因此您还需要基于此数据创建合理的警报策略。这可能意味着寻呼工程师或在 Slack 中删除通知,此时他们将不得不转向更适合调试的数据:白盒指标和事件。

黑盒监控并不能替代从应用程序捕获的数据,但它提供了端到端的覆盖范围,这在最灾难性的场景中非常有用。当与白盒工具结合使用时,它可以让您对软件的功能更有信心,使其成为监控系统的关键组件。

相关推荐
智擎软件测评小祺2 天前
渗透测试报告关键模块拆解
网络·web安全·渗透测试·测试·检测·cma·cnas
智擎软件测评小祺2 天前
渗透测试报告撰写:漏洞发现到验证流程
网络·渗透测试·测试·cma·第三方检测·cnas·渗透测试报告
jaycyj3 天前
Web端抓包工具操作与应用
测试
神秘的t4 天前
抽奖系统测试报告
测试
阳光普照世界和平5 天前
单元测试工具现状及实现思路探析
测试·软件质量
jaycyj5 天前
Web项目功能测试用例实战
测试
智擎软件测评小祺5 天前
从报告看懂安全隐患,提升防护能力
安全·web安全·渗透测试·测试·检测·cma·cnas
独断万古他化6 天前
AI 赋能自动化测试实战:从用例生成到 CI/CD 全流程落地
人工智能·ci/cd·测试
甜甜圈圈子6 天前
基于Dify与DeepSeek:零门槛训练自己的专属AI大模型
测试
独断万古他化7 天前
基于 Selenium + POM 模式的聊天室系统 UI 自动化测试框架搭建与实践
selenium·测试工具·ui·自动化·测试·pom