Networking 用于分布式监视和跟踪网络中的延迟/下降的良好设置

Networking 用于分布式监视和跟踪网络中的延迟/下降的良好设置,networking,tcp,monitoring,openstack,Networking,Tcp,Monitoring,Openstack,首先,我想说,我从未参加过网络课程,但我正在工作中学习。像TCP/IP网络之类的东西,我有一个相当基本的掌握,如果你认为这会阻碍我在这方面的尝试,请告诉我 因此,我手头的任务是:我有一个开放堆栈网络,其中有一组节点可以相互通信,所有节点都运行CentOS虚拟机(为了简单起见),应用程序运行在这些虚拟机之上。任务基本上是找到一种方法来监视每个节点的ping,并在报告发生情况的某种消息(可能通过http)时进行报告。检查实际延迟问题的逻辑并不是我正在努力解决的问题,它是完成此任务的最佳结构 我正在考

首先,我想说,我从未参加过网络课程,但我正在工作中学习。像TCP/IP网络之类的东西,我有一个相当基本的掌握,如果你认为这会阻碍我在这方面的尝试,请告诉我

因此,我手头的任务是:我有一个开放堆栈网络,其中有一组节点可以相互通信,所有节点都运行CentOS虚拟机(为了简单起见),应用程序运行在这些虚拟机之上。任务基本上是找到一种方法来监视每个节点的ping,并在报告发生情况的某种消息(可能通过http)时进行报告。检查实际延迟问题的逻辑并不是我正在努力解决的问题,它是完成此任务的最佳结构

我正在考虑使用Nagios并建立一个分布式监控系统。基本上,我的计划是在编写我的插件后在每个节点上安装nagios(除非它已经提供或存在),一旦安装完毕,它将简单地ping网络中的所有其他节点,一旦检测到它已经加入网络,其他节点就会ping它。我不确定这到底有多大的可伸缩性,因为如果节点数量增加很多,让每个节点ping其他节点实际上是一件好事吗?这真的会给网络带来很大压力吗

这是个坏主意吗?我知道一个更有效的解决方案是,只要每个节点都被检查(不一定要让每个节点都被其他节点连接到),效率就会更高。将其可视化为一个包含两个点的图形,它将是一个双向图形,每个点之间只有一条路径连接,而不是每个可能的点之间都有边。但我不知道这是否是我应该考虑的水平

简而言之,我要问的是:如何在一堆开放堆栈节点之间建立ping监控系统


让我知道这个问题是否有意义。谢谢。

仍然不能完全确定您试图通过此设置实现什么,但是您描述的Nagios设置听起来很混乱,可能无法满足您的需要。我会考虑将packetbeat构建到每个主机的配置中,然后将数据发送到Elasticsearch。这样,您就可以观察实际的应用程序级流量和响应时间

这听起来像是一团糟。有NetFlow和IP SLA之类的工具来监视网络上的情况。顺便说一句,ping只测量ICMP的延迟,这与实际网络流量无关。好的,但我想检查这些虚拟机之间的延迟,因此没有任何物理路由器。还有一些“ping-like”工具基本上可以测量相同的东西,对吗?像fping或tcping等。在这种情况下,为什么不使用nagios?NetFlow和IP SLA有多种实现方式。虚拟机之间的网络仍然使用第2层和第3层网络,您可以使用这些工具来测量实际流量。这正是设计这些工具的原因。你只是想重新发明轮子。是的,我可以感觉到我在尝试做一些以前肯定做过的事情,唯一让我感到困惑的是:监控服务本身是否分布在网络上?(每个节点都有一个运行它的守护进程)还是需要某台主机返回并记录所有内容?我假设是后者,但问题是,如果主机坏了,就会出现大问题。我想这是我想解决的主要问题。谢谢你的建议。不过问题已经澄清了。我不太关心网络流量,我只关心检查节点之间的延迟。基本上,如果出现问题(有人抱怨网络太慢),我只需要找到一种方法来确定问题是在他们这边还是我们这边,在这种情况下,从其他地方ping有问题的节点,或者在某种类型的掉电/尖峰情况下,跟踪这些ping就可以了。我可能会有一台集中的主机来保存日志。我不必处理应用层