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를 설치했습니다.
지침에 따라 모든 작업을 수행했습니다.
/etc/zabbix/zabbix_agent2.d/plugins.d
zabbix_agent2 -t myip
그리고... 작동하지 않으며 잘못된 구문 분석 프록시 버전에 대한 오류가 발생합니다.
제 생각에는strconv.atoi
가 Zabbix Agent 2 자체의 코드에서 어떻게든 잘못 처리된 것 같은데, 코드 편집기를 사용하여 전체 프로젝트를 살펴본 후에는 주목할 만한 내용을 찾을 수 없습니다.
그리고 zabbix 에이전트 버전이 6.0.14인데 플러그인 통신 프로토콜 버전이 6.0.13인 것도 이상하네요. 프로토콜 버전을 프록시 버전으로 전달하려는 이유를 이해할 수 없습니다.
이 문제에 대해 생각이 있으시면 표현해 주시기 바랍니다. 미리 감사드립니다.
해결책을 찾았습니다! (글쎄, 내 직장 동료가 실제로 이것을 발견했지만 요점은 아닙니다)
이유는 파일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 중국어 웹사이트의 기타 관련 기사를 참조하세요!