监视多台服务器上的程序进度


9

我们有三台服务器正在运行python程序,这些程序正在tmux会话中运行数据分析任务。我们目前使用的方法是将它们连接到每个tmux会话中,并在命令行中查看输出。

这种方法很繁琐,因此我们正在寻找一种解决方案,该解决方案可以同时自动监视多个服务器的程序进度(在CLI上输出)。理想情况下,我们希望使用Web UI解决方案,但CLI也非常适合。

感谢您的阅读。


使用prometheus和grafana :-)
恢复Monica-

Answers:


8

每当您运行临时的长期运行的命令时,都应该退后一步并重新考虑您的过程,因为这应该是自动化的,包括错误处理。

与其连接到服务器以查看状态,不如将其推送出去。如果您想编写一堆自定义代码,则可以执行多种操作,但是最简单的事情可能是开始通过syslog将输出发送到集中式日志记录系统(syslog本身,ELK或其他)。这样,您可以从中央位置监视所有内容。

展望未来,如果这不是一项一次性的任务,那么监控应该是自动化的。也就是说,您永远不必只看日志来查看事情是否按预期进行。相反,您应该假设它们已经存在(并继续进行其他工作),直到发出警报为止。这是投入时间来获得可靠且覆盖范围广泛的警报,但是随着系统复杂性的提高,它将得到回报,因为您无需在更改任何内容时随时监视所有内容


这不是一件一次性的事情。我喜欢您关于将时间投入到自动化监视和集中日志记录中的想法。您对免费使用的工具有什么建议,这些工具可以与运行该程序的ubuntu主机一起很好地工作吗?
鸟粪

@guano我认为Wissam 涵盖了我要提到的所有特定工具,除了使用诸如Sensu之类的功能来增强警报功能之外。
莫妮卡·塞利奥(Monica Cellio)的抵制SE,

4

Graylog

由于两个人已经建议您重新考虑当前的流程(我第二次这样做是因为它会在某个时候使您彻夜难眠;),因此,我将走另一条路线,推荐一款特定的软件,我认为它适合大多数您的需求:Graylog

我实施并使用了几个ELK堆栈进行日志聚合和商业智能,并且在我现在的雇主那里运行/维护了Graylog大约两年了。我建议使用Graylog,因为它具有以下内置功能,并且-我认为-设置和维护起来比较容易:

  • 网络界面
  • 多用户功能
  • 警示

据我了解您的情况,似乎您需要对日志消息流中出现的某些事件采取行动或收到警报。如果我们看一下Graylog功能

当需要注意的事情(例如失败的登录尝试,异常或性能下降)时,触发操作或得到通知。

想法:向您的团队发送电子邮件或备用消息。生成新机器以平衡处理负载。当检测到攻击时,将自动阻止防火墙中的IP范围。

要尝试使用Graylog,建议您执行以下两个步骤:

  • 设置一个专用主​​机,您的所有应用程序主机都可以访问该主机以运行Graylog(及其依赖项MongoDB和ElasticSearch)
  • 将日志从您的应用程序发送到灰度日志(可能是GELF消息)

注意:这两个步骤可以填充最佳实践的页面,并且至少应引起一些想法。更不用说Graylog并不是监视解决方案,应该通过适当的监视工具(例如Icinga,Prometheus,Nagios等)监视Graylog本身。


3

我同意@Xiong Chiamiov的观点,并希望提供更多澄清选项。如果你想在命令行的每一行被监视,我建议重定向所有输出到特定的文件和错误到另一个文件,然后使用logstashfilebeat既此文件发送到Elasticsearch,那么你可以配置LogtrilKibana通过devops友好的界面为您实时查看,分析,搜索和跟踪来自多个主机的日志事件


1

集中 tmux

从长远来看,其他答案更聪明,更明智,但我认为值得一提的是快速但易用的CLI解决方案。tmux在可以访问所有其他服务器的一台服务器上运行。一个合适的地方是跳箱或其他人们经常登录的地方。在此“中央” tmuxssh中,转到不同窗格中的每个框,并尾随任何必需的日志文件。您可以使用ctrl- b "在的一个标签中获取更多窗格tmux。现在,所有需要检查的人都将附加到“中央” tmux会话,他们可以一目了然地看到整个集群。

我花了很多时间来构建您正在努力的Web UI解决方案,但是如果今天需要,与之一起进行黑客入侵tmux可以节省一天的时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.