目录

开始


这次安装插件主要是根据https://github.com/ganglia/gmond_python_modules/tree/master/storm_topology的步骤,但也发现了一些小问题。

安装插件

第一步:为ganglia添加python支持

新建文件 vim /etc/ganglia/conf.d/modpython.conf
modules {
  module {
    name = "python_module"    #  模块名
    path = "/usr/local/lib64/ganglia/modpython.so"  # 可能库不在这个目录,依照自己情况填写路径
    params = "/usr/lib/ganglia/python_modules"  # 所有python脚本存放的路径
  }
}
include ('/etc/ganglia/conf.d/*.pyconf')  # 注意避免相互包含的问题

第二步:配置storm参数文件

vim /etc/ganglia/conf.d/storm_topology.pyconf

modules {
    module {
        name = "storm_topology"    # 记住这个名字,后的脚本文件必须和这个名字保持一致
        language = "python"
        param topologies {
            value = "MyFirsttopology,MySecondtopology" # 所有要监视的topology,
        }                                              # 多个topology用逗号分开
        param MyFirsttopology_spouts {               # 注意这里的命名方式,拓扑名_spouts
            value = "first_spouts"                   # 程序中spout的名字
        }
        param MyFirsttopology_bolts {
            value = "first_bolt1,first_bolt2"      # 注意这里的命名方式,拓扑名_bolts
        }                                          # 程序中blot的名字,多个用逗号分开
        param MySecondtopology_spouts {            # 为其他拓扑定义spout和blot,
            value = "second_spouts"
        }
        param MySecondtopology_bolts {
            value = "second_bolt1,first_bolt2"
        }
        param storm_thrift_gen {
            value = "/usr/lib/ganglia/python_modules" # 该插件依赖storm的thrift接口,
            # 这个路径指定接口文件在哪个位置。否则该插件无法import进来(插件会自动去找${storm_thrift_gen}/stormpy/storm目录)
        }
        param loglevel {
            value = "INFO"
        }
    }
}
collection_group {
  collect_every = 20
  time_threshold = 90
  metric {
    name_match = ".*"
  }
}

第三步:用thrift生成storm的python接口

错误原因

解决办法:

第四步:添加storm脚本

stormtopology.py主要和nimbus通信,通过nimbus获取所有信息,所以文件中可以配置nimbus的ip,端口。默认是127.0.0.1:6627