【问题标题】:LTTng live view with port forwarding / tunneling带有端口转发/隧道的 LTTng 实时视图
【发布时间】:2021-06-20 04:53:01
【问题描述】:

我有一台 PC A,其中 LTTng 跟踪正在运行实时视图

lttng create trace-session --live

# Traces will be output to tcp4://127.0.0.1:5342/ [data: 5343]

另一台电脑B通过以太网线直接与A相连。同时,B 连接到本地网络。

现在我如何从与 B 位于同一本地网络中的第三台 PC C 上查看实时跟踪事件,例如使用

babeltrace2 "net://${B_IP}/host/${B_HOSTNAME}/trace-session"

我在 PC C 上运行了以下命令,以建立到 PC *A 的隧道。

ssh -L 5342:${A_IP}:5342 -N user_name@${B_IP}

但是,它似乎没有奏效。我想问一下:

  • 我在这里做错了什么?
  • “转发”babeltrace2 可以查看的 LTTng 实时跟踪事件的标准方法是什么?

【问题讨论】:

    标签: trace portforwarding lttng


    【解决方案1】:

    Babeltrace2 使用lttng-relayd 进程的live 端口而不是数据和控制端口连接到lttng-relayd。

    当命令行报告如下:

    # Traces will be output to tcp4://127.0.0.1:5342/ [data: 5343]
    

    这意味着lttng-sessiond 和lttng-consumerd 进程将与lttng-relayd 进程通信,该进程侦听127.0.0.1:5342 以获取控制消息,127.0.0.1:5343 以进行跟踪数据交换。查看器(在本例中为 Babeltrace2)可以连接到 lttng-relayd 进程的 live 端口以流式传输实时会话。您可以深入了解组件图here。

    默认活动端口是 5344,lttng-relayd 进程的默认行为是绑定所有接口以进行侦听。当然Babeltrace2 也默认使用该端口,如果没有指定与lttng-relayd 进程通信。

    更多详情请参见lttng-relayd 的手册页。

    我在这里做错了什么?

    在您的场景中,您需要隧道 5344 端口。请注意,我不精通 ssh 隧道,因此无法在此处验证 ssh 方法。

    ssh -L 5344:${A_IP}:5344 -N user_name@${B_IP}
    

    “转发”要被 babeltrace2 查看的 LTTng 实时跟踪事件的标准方法是什么?

    Babeltrace2 和 lttng-relayd 使用 TCP 进行通信。因此,所有 TCP “转发”方法在这里都是可以接受的。您可能已经注意到,LTTng 不会以任何方式加密通信和跟踪数据。如果您需要跨不受信任的网络移动数据,我想说在这里使用 ssh 隧道是合适的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      相关资源
      最近更新 更多