ホームページ  >  記事  >  バックエンド開発  >  公式の指示に従ってテストプラグインを処理しようとすると、Zabbix Agent 2 がエラーをスローします

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

PHPz
PHPz転載
2024-02-11 08:54:171016ブラウズ

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 までご連絡ください。