Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 谁应该决定发出警报,是中央服务器还是卫星服务器?_Ruby On Rails_Architecture_Logic_Monitoring_Alert - Fatal编程技术网

Ruby on rails 谁应该决定发出警报,是中央服务器还是卫星服务器?

Ruby on rails 谁应该决定发出警报,是中央服务器还是卫星服务器?,ruby-on-rails,architecture,logic,monitoring,alert,Ruby On Rails,Architecture,Logic,Monitoring,Alert,我遇到了一个建筑设计问题,我不确定哪种方法是最好的。我的二分法是将警报逻辑放在远程卫星上,还是将卫星上的信息收集到中央服务器并将警报逻辑放在那里 我们有许多卫星自动化系统,有时需要在自动化应用程序内部发出警报,以解决自动化问题,以及系统管理员方面可能导致系统本身问题(磁盘空间、数据库大小等)的问题。每颗卫星本身都是一个相当强大的系统(CoreI5,4GB RAM),但我们希望在下一次设计迭代中将其降级为基于ARM的系统(希望是RPi)。我们完全控制卫星系统上的软件 有一个中央服务器(目前运行Ra

我遇到了一个建筑设计问题,我不确定哪种方法是最好的。我的二分法是将警报逻辑放在远程卫星上,还是将卫星上的信息收集到中央服务器并将警报逻辑放在那里

我们有许多卫星自动化系统,有时需要在自动化应用程序内部发出警报,以解决自动化问题,以及系统管理员方面可能导致系统本身问题(磁盘空间、数据库大小等)的问题。每颗卫星本身都是一个相当强大的系统(CoreI5,4GB RAM),但我们希望在下一次设计迭代中将其降级为基于ARM的系统(希望是RPi)。我们完全控制卫星系统上的软件

有一个中央服务器(目前运行Rails和Observium)接收警报并将其发送到SMS和/或电子邮件。信息从系统代理(Check_MK/Observium)收集并存储在中央服务器上,但目前仅用于报告/跟踪目的。然而,Observium警报不适合我们的需要,也不够灵活

我想知道将警报逻辑放在中央服务器上,而不是放在远程卫星上,有什么利弊,因为毫无疑问,以前有人遇到过这个问题


提前谢谢。

我想这真的取决于这些问题的答案:

1)保证这些信息的传递对您来说有多重要?

让卫星直接发送消息而不依赖中央服务器可能更可靠,因为您跳过了通信步骤

2)您将来需要修改流程的可能性有多大?

想象一下,在将来的某个新的支持系统中,您突然需要调用一个服务,在每个警报上创建一个记录单,而不是SMS/电子邮件。或者,您可能需要修改消息文本以添加更多信息。如果你把这个逻辑放在卫星上,你必须更新所有的卫星。就可维护性而言,这可能更糟。如果在中央服务器中介绍这一点,可能会更容易。逻辑集中意味着所有配置也都是集中的

3)让服务器或卫星负责通知传递是否更合理?

考虑一下分离关注点-卫星关注发送电子邮件/短信的技术细节有意义吗?很可能不是

希望这有帮助

普拉曼