storm集群的监控

2019-03-02 23:38|来源: 网路


所谓兵马未动,粮草先行,准备将storm用在某个项目中做实时数据分析。无论任何系统,一定要有监控系统并存,当故障发生的时候你能第一个知道,而不是让别人告诉你,那处理故障就很被动了。

因此我写了这么个项目,取名叫storm-monitor,放在了github上

https://github.com/killme2008/storm-monitor

主要功能如下:
1.监控supervisor数目是否正确,当supervisor挂掉的时候会发送警告。
2.监控nimbus是否正常运行,monitor会尝试连接nimbus,如果连接失败就认为nimbus挂掉。
3.监控topology是否正常运行,包括它是否正常部署,是否有运行中的任务。

当故障发生的时候通过alarm方法警告用户,开放出去的只是简单地打日志。因为每个公司的告警接口不一样,所以你需要自己扩展,修改alarm.clj即可。我们这儿就支持旺旺告警和手机短信告警。

基本的原理很简单,对supervisor和topology的监控是通过zookeeper来间接地监控,通过定期查看path是否存在。对nimbus的监控是每次起一个短连接连上去,连不上去即认为挂掉。

整个项目也是用clojure写。你的机器需要安装leinexec插件,然后将你的storm.yaml拷贝到conf目录下,编辑monitor.yaml设定监控参数如检查间隔等,最后启动start.sh脚本即可。默认日志输出在logs/monitor.log。


转自:http://aliapp.blog.51cto.com/8192229/1327617

相关问答

更多
  • 如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据...
  • protected void customizeRegistration(ServletRegistration.Dynamic registration) { registration.setInitParameter("spring.profiles.active", "default"); } } WebAppSecurityInitializer (安全配置初始化)
  • bg4.png 如果对zookeeper系统的认识一下,可能会加深理解,下面可以参考:zookeeper适用场景:zookeeper解决了哪些问题什么是ZooKeeper,ZooKeeper 能干什么?ZooKeeper的作用zookeeper原理zookeeper适用场景:如何竞选Master及代码实现zookeeper适用场景:配置文件同步分布式网站架构:zookeeper技术浅析zookeeper适用场景:分布式锁实现
  • tomcat作为使用非常广泛的web容器,确实给我们带来了很多帮助,就像任何软件系统一样,一旦正式投入生产环境,那监控手段就不可或缺。如何有效的监控tomcat的运行情况,尤其是在复杂IT环境下就更显得迫切了,如tomcat集群部署; 1、单点tomcat的监控 到底一个tomcat服务我们应该监控哪些指标呢?每个人可能都有不同的见解,但下面这些指标是基本的:  .JVM可用内存情况:可用内存一定不能太小,否则直接影响tomcat的处理性能  .响应时间:该指标直接反映tomcat响应用户请求的速度 . ...
  • 1. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node)。其分别对应的角色如下: · 主控节点(Master Node)上运行一个被称为Nimbus的后台程序,它负责在Storm集群内分发代码,分配任务给工作机器,并且负责监控集群运行状态。Nimbus的作用类似于Hadoop中JobTracker的角色。 · 每个工作节点(Work Node)上运行一个被称为Supervisor的后台程序。Supervisor负责监听从Nimbus分配给它执 ...
  • 使用脚本提交 1.使用spark脚本提交到yarn,首先需要将spark所在的主机和hadoop集群之间hosts相互配置(也就是把spark主机的ip和主机名配置到hadoop所有节点的/etc/hosts里面,再把集群所有节点的ip和主机名配置到spark所在主机的/etc/hosts里面)。 2.然后需要把hadoop目录etc/hadoop下面的*-sit.xml复制到${SPARK_HOME}的conf下面. 3.确保hadoop集群配置了 HADOOP_CONF_DIR or YARN_CONF ...
  • Storm可以自行管理其资源,也可以在YARN之上运行。 如果您有一个共享集群(即,与其他系统一样运行Hadoop,Spark或Flink),使用YARN应该是避免资源冲突的更好选择。 关于HDFS:Storm独立于HDFS。 如果要在HDFS之上运行,则需要自己设置HDFS。 此外,Storm提供Spouts / Bolt访问HDFS: https : //storm.apache.org/documentation/storm-hdfs.html Storm can manage its resourc ...
  • 你可以,但我不推荐它。 在Storm的当前设计中,nimbus是一个单点故障(有计划解决这个问题),但是在与nimbus相同的节点上运行一个监控程序会使得nimbus节点可能发生一些不好的事情,这对你来说是灾难性的。风暴集群。 此外,Storm的部分设计是工作人员和主管节点应该能够死亡,Storm应该能够恢复。 如果除了作为nimbus服务器之外还使用node-1作为管理程序,则会失去一些灵活性。 最后,随着集群的增长,你的nimbus服务器将有很多工作要做,你希望它能够快速运行,因此它不会减慢你的工作速度 ...
  • 我尝试了几个选项,下面是配置对我有用,组名可以是任何东西,度量标准名称是从一个组件到另一个组件的流的名称,taskid可以是任何唯一的任务编号, conf.put("gumbo.server.kind", "local"); conf.put("gumbo.local.port", 8086); //Any port it must be same in the html file conf.put("gumbo.start", System.currentTimeMillis()); // should ...
  • 只需按照群集设置指南操作: https://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html 对于伪分布式设置,请在单台计算机中运行所有守护程序(ZK,Nimbus和一个单独的主管)。 Just follow the cluster setup guide: https://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html For pseudo distri ...