>  기사  >  백엔드 개발  >  공식 지침에 따라 테스트 플러그인을 처리하려고 하면 Zabbix Agent 2에서 오류가 발생합니다.

공식 지침에 따라 테스트 플러그인을 처리하려고 하면 Zabbix Agent 2에서 오류가 발생합니다.

PHPz
PHPz앞으로
2024-02-11 08:54:17963검색

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

php 편집자 Yuzi가 오늘 Zabbix Agent 2에 대한 질문을 여러분과 공유할 것입니다. 한 사용자가 공식 지침에 따라 테스트 플러그인을 처리하려고 시도하는 동안 오류가 발생했습니다. 이 문제는 플러그인의 올바른 작동에 영향을 미칠 수 있으므로 이 문제를 해결하는 방법을 모색하겠습니다. 한 번 보자!

질문 내용

저는 Zabbix Agent 2의 가능성을 탐색하기 시작했고 공식 플러그인 생성 가이드에 설명된 대로 단계별로 테스트 플러그인을 생성하기로 결정했습니다.

모든 단계를 완료한 후 zabbix 에이전트는 아무것도 하고 싶지 않았고(-h 옵션 제외) 다음 오류를 표시했습니다.

zabbix_agent2 [10046]:错误:无法注册插件:无法解析代理版本strconv.atoi:解析“6.0.13”:语法无效

우분투 22.04에서 이 작업을 했습니다.

zabbix 에이전트 2 버전: 6.0.14.

go 버전: go1.18.1 linux/amd64

저는 apt-get을 통해서만 Zabbix Agent 2를 설치했습니다.

지침에 따라 모든 작업을 수행했습니다.

  1. /home/ubuntu/myip
  2. 디렉터리를 만들었습니다.
  3. main.go 파일을 생성했습니다
  4. 지침에 있는 코드를 붙여넣었습니다
으아악
  1. go mod init example.test/myip
  2. 조직 모듈
  3. 빌딩 시작
  4. 플러그인 실행 파일의 경로를 사용하여 myip.conf 파일을 생성하고 이를 디렉토리에 넣었습니다 /etc/zabbix/zabbix_agent2.d/plugins.d
  5. 그리고 명령을 시작하세요 zabbix_agent2 -t myip

그리고... 작동하지 않으며 잘못된 구문 분석 프록시 버전에 대한 오류가 발생합니다.

제 생각에는 strconv.atoi가 Zabbix Agent 2 자체의 코드에서 어떻게든 잘못 처리된 것 같은데, 코드 편집기를 사용하여 전체 프로젝트를 살펴본 후에는 주목할 만한 내용을 찾을 수 없습니다.

그리고 zabbix 에이전트 버전이 6.0.14인데 플러그인 통신 프로토콜 버전이 6.0.13인 것도 이상하네요. 프로토콜 버전을 프록시 버전으로 전달하려는 이유를 이해할 수 없습니다.

이 문제에 대해 생각이 있으시면 표현해 주시기 바랍니다. 미리 감사드립니다.

Solution

해결책을 찾았습니다! (글쎄, 내 직장 동료가 실제로 이것을 발견했지만 요점은 아닙니다)

이유는 파일 src/go/plugins/external/broker.go。在此文件中多次更改了请求结构中记录的逻辑。在 22 年夏天,他们改变了 Zabbix Agent 版本属性的方式(通过 strconv.Atoi이 문자열에서 정수로 구문 분석되기 때문입니다.

그러나 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제