我正在开发一个UI,我需要在其中显示在mesos slave中运行的作业的实时日志(stdout和stderr)。我找到了一种方法,我可以生成一个URL,指向作业的mesos日志。有没有办法做同样的事情?基本上,我需要知道slave id,executor id,master id等来生成URL。有没有办法找到这些信息?
答案 0 :(得分:1)
沙箱网址的格式为http://
$slave_url:5050/read.json?$work_dir/work/slaves/$slave_id/frameworks/$framework_id/executors/$executor_id/runs/$container_id/stdout
,您甚至可以使用browse.json
端点在沙箱中浏览。
或者,您可以使用mesos tail $task_id
CLI命令访问这些日志。
有关详细信息,请参阅以下邮件列表主题:http://search-hadoop.com/m/RFt15skyLE/Accessing+stdout%252Fstderr+of+a+task+programmattically
答案 1 :(得分:1)
如何使用反向方法。您需要从stderr和stdout提供实时日志。如何将它们存储在mesos slave之外,例如弹性搜索?您将获得几乎实时更新,以后可用的旧日志,不错的搜索选项。
从版本0.27.0开始,Mesos支持jax-rs document。您可以编写自己的ContainerLogger实现,将日志推送到中央日志存储库(Graylog,Logstash,e.t.c),然后在您的UI中公开它。
答案 2 :(得分:0)
Mesos提供了一个REST界面,您可以在其中获得所需的信息。访问您的浏览器http://<MESOS_MASTER_IP>:5050/help
(使用默认端口)检查您必须查询的选项(例如,您可以从http://<MESOS_MASTER_IP>:5050/master/state.json)
获取所需信息。请查看this link以查看示例使用它。