公式の指示に従ってテストプラグインを処理しようとすると、Zabbix Agent 2 がエラーをスローします

PHPz
リリース: 2024-02-11 08:54:17
転載
927 人が閲覧しました

Zabbix Agent 2 在尝试根据官方说明处理测试插件时抛出错误

php エディターの Yuzi が、今日は Zabbix Agent 2 に関する質問を共有します。あるユーザーは、公式の指示に従ってテスト プラグインを処理しようとしたときにエラーが発生しました。この問題はプラグインの適切な機能に影響を与える可能性があるため、この問題を解決する方法を検討します。見てみましょう!

質問内容

私は zabbix エージェント 2 の可能性を模索し始め、公式プラグイン作成ガイドに記載されているように段階的にテスト プラグインを作成することにしました。

すべての手順を完了した後、zabbix エージェントは何も実行しようとせず (-h オプションを除く)、次のエラーが表示されます:

zabbix_agent2[10046]: エラー: プラグインを登録できません: エージェントのバージョン strconv.atoi を解析できません: '6.0.13' を解析しています: 無効な構文

これをubuntu 22.04で実行しました。

zabbix エージェント 2 バージョン: 6.0.14。

go バージョン: go1.18.1 linux/amd64

私は apt-get を通じて zabbix エージェント 2 のみをインストールしました。

指示に従ってすべてを行いました:

  1. ディレクトリ/home/ubuntu/myipを作成しました
  2. ファイルmain.goを作成しました
  3. ディレクティブからコードを貼り付けました
リーリー
  1. go mod init example.test/myip
  2. 組織モジュール
  3. 構築を開始
  4. プラグイン実行可能ファイルへのパスを含むファイル myip.conf を作成し、ディレクトリ/etc/zabbix/zabbix_agent2.d/plugins.d
  5. に配置しました。
  6. そして、コマンドzabbix_agent2 -t myip
  7. を開始します。

そして...機能せず、間違った解析プロキシのバージョンに関するエラーがスローされます。

strconv.atoiは、zabbix エージェント 2 自体のコード内で何らかの形で間違って処理されていると思いますが、コード エディターを使用してプロジェクト全体を確認したところ、特筆すべき点は見つかりませんでした。

また、zabbixエージェントのバージョンが6.0.14、プラグイン通信プロトコルのバージョンが6.0.13というのも不思議です。なぜプロトコルのバージョンをプロキシのバージョンとして偽装しようとするのか理解できません。

それでは、この問題についてご意見がございましたら、ぜひ表明していただきたいと思います。よろしくお願いします。

解決策

解決策を見つけました! (実際、私の職場の同僚がこれを発見しましたが、要点ではありません)

その理由は、ファイルsrc/go/plugins/external/broker.goにあります。リクエスト構造に文書化されたロジックは、このファイル内で数回変更されました。 Summer '22 では、strconv.Atoiを介して Zabbix エージェントのバージョン属性を文字列から整数に解析する方法が変更されました。

しかし、2023 年 1 月に、プロキシ バージョン属性が削除され、strconv.Atoiによって解析され、プロトコル バージョン属性が追加されました。そのため、プロトコルのバージョンをプロジェクトのバージョンとして偽装しようとします。

Plugin Supportパッケージのplugin/container/handler.goファイル内のcheckVersionメソッドも変更されました。これは、プロトコルのバージョン。

つまり、問題は新しい Zabbix Agent 2 と古いプラグイン サポート パッケージにあります。

Zabbix Agent 2 にバージョン 6.4 を使用し、git.zabbix.com/ap/plugin-support/pluginにバージョン 1.2.2 を使用している場合は、すべて正常に動作します。

以上が公式の指示に従ってテストプラグインを処理しようとすると、Zabbix Agent 2 がエラーをスローしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!