-2

私は、collectd 用の非常に単純な Java ライター プラグインを開発しようとしていますが、成功していません。Java プラグイン開発に関するドキュメントも見つかりませんでした。

LoadPlugin 要素 (collectd.config) で提供されるクラスがエージェントの起動時に見つからないという同じエラーが何度も発生します。

これが私がやったことです:

  1. sudo apt-get install collectd を使用して collectd をインストールしました。
  2. ダウンロードした collectd ソース。
  3. /bindings/java/org/collectd/java の下に新しい (非常に単純な) ライター プラグインを追加しました。
  4. /bindings/java/Makefile.am を次のように変更しました。
    • ライターを EXTRA_DIST リストに追加しました
    • 次の行を java-build-stamp タスクに追加しました (新しいライター用の jar を作成するため): jar cf .lib/simple.jar “com.microsoft.java”/*.class
    • 次の行を install-exec-local タスクに追加しました: $(INSTALL) –m 644 .libs/simple.jar \ “$(DESTDIR)$(pkgdatadir)/java”</li>
  5. ソースのルート ディレクトリから ./configure を実行しました。
  6. bindings/java ディレクトリから sudo make all install を実行しました。
  7. 変更された collectd.config:
    • Javaプラグインを有効にしました
    • 「LoadPlugin “com.microsoft.java.SimpleWriter” を Java プラグイン セクションに追加して、新しいプラグインを有効にしました。
    • JVM クラスパス引数を更新して、新しいプラグインを含む jar を含めます。
  8. 次を実行してcollectdを開始しました:sudo /etc/init.d/collectd start

GenericJMX プラグインを有効にすると、正常に読み込まれました。誰かが私が間違っていることを知っていますか?

4

1 に答える 1

0

jar コンテンツをクラスパス フォルダーに抽出すると、問題が解決しました。クラス名が com.company.foo.FooClass の場合、CollectD はディレクトリ (class_path_dir)/com/company/foo/FooClass.class の下でそれを検索するようです。

于 2015-05-07T07:36:11.520 に答える