collectd не распознает мой плагин Python

Я пытаюсь загрузить супер простой плагин, который я нашел онлайн как начальная точка, и collectd, кажется, не распознает мой плагин Python. Мой conf файл имеет соответствующие строки:

<LoadPlugin python>
    Globals true
</LoadPlugin>

...

<Plugin python>
    ModulePath "/usr/lib/collectd"
    Import "test"

    <module "test">
        test "input"
    </module>

</Plugin>

И мой test.py похож на это:

import collectd

def configer(confObj):
    collectd.info('config called')

def init_fun():
    collectd.info('my py module init called')

def reader(input_data=None):
    collectd.info('my py read called')

def writer(input_data=None)
    collectd.info('my py write called')


collectd.register_config(configer)
collectd.register_init(init_fun)
collectd.register_read(reader)
collectd.register_write(writer)

Я попробовал много вещей включая переупорядочение регистров и некоторых других вещей, но независимо от того, что мой syslog выкладывает:

Jul 14 21:10:34 vagrant-ubuntu-trusty-64 collectd[21449]: python plugin: Found a configuration for the "test" plugin, but the plugin isn't loaded or didn't register a configuration callback.
Jul 14 21:10:34 vagrant-ubuntu-trusty-64 collectd[21454]: python plugin: Found a configuration for the "test" plugin, but the plugin isn't loaded or didn't register a configuration callback.

Я загонял голову в течение многих часов и чувствую себя полностью потерянным, любая ценившая справка.

0
задан 15 July 2015 в 00:23
1 ответ

Есть две проблемы:

  1. Отсутствует завершающий: в строке 12: «def writer (input_data = None)»
  2. Похоже, что «test» в качестве имени вашего плагина конфликтует с чем-то где-то в стеке (может быть, с «тестовым» модулем в python?). Переименование файла test.py в 'foobar.py' и замена 'test' на 'foobar' в конфигурации приводит к его правильной загрузке и при запуске выводится 'config called'.
1
ответ дан 4 December 2019 в 16:53

Теги

Похожие вопросы