我正在尝试在我们的一个环境中找到一台导致 Sensu 通知的机器。通知中列出的主机名和 IP 地址都搞砸了,因为在创建机器时,它有不同的数据。所以错误的数据卡住了,机器仍然活着并且在踢……我的意思是,从某个地方向 Sensu 服务器发送错误的数据。
我试图追踪机器的地址。在 tcpdump 的帮助下,我在两个地方发现了我正在寻找的相同类型的数据包:
1) 在每台运行 Sensu 客户端的机器上,我看到带有正确有效负载的数据包离开 Sensu 服务器机器。Sensu 配置文件告诉我 Sensu 正在与 Sensu 服务器在同一台机器上使用 RabbitMQ,并且数据包正朝着那个方向前进。
2) 在 Sensu 服务器上,我看到所有来自本地 10 的数据包。.* IP 地址,来自各种不同的端口。当我用 wget 探查那个 IP 地址时,它与 Sensu 仪表板的 index.html 进行游戏,所以本地地址似乎是同一台机器 - 可能是 RabbitMQ 或其他东西,因为 Sensu 使用它。
在我们的环境中可能有多达 100 台机器运行 Sensu 客户端,但传入流量中的连接或源 IP 地址远没有那么多。所以,除了蛮力关闭每台机器并查看何时弹出不同的通知之外,我无法弄清楚如何找到正确的源机器。
额外信息:我们的机器都在 AWS 中,并在创建后由 Puppet 预置。Sensu 被嵌入到基础 AMI 中,因此如果 Puppet 立即失败,我们可以收到警报。除了失败时偶人甚至不知道他是谁。
编辑:另外,现在我想起来了,Sensu 服务器位于 Elastic Load Balancer 后面可能很重要,它位于 Route 53 条目后面,这是所有 Sensu 客户端发送内容的地方。