내부 API를 아십니까?
전치
zabbix는 버전 1.8부터 API를 구현했으며, 이 놀라운 기능을 통해 외부 AP와의 연동이 가능해졌습니다.
그렇게, 예를 들면 「Zabbix의 대시보드 화면은 XXXXX다!」라고 말하고 있는 분들이 사용하고 있는 grafana 어째서 Zabbix 대시보드를 표시하고 있는 경우는 API를 사용하고 있군요.
일단 말해 둡니다만, XXXXX인 화면은 Zabbix 3.4부터 조금 보기가 좋아지므로 사용해 보면 좋을지도 모릅니다.
아래 이미지는 2.2.
API 문서
내부 API
그런데 이번에 이야기하고 싶은 것은 API 문서에 실려 있지 않은 API가 있다는 것입니다.
통칭 "내부 API".
Zabbix는 과거의 수집 이력 등 거의 모든 정보를 DB에 저장하고 있습니다.
여러분이 사용하는 WebUI에 대해서는, 이 DB로부터 데이터를 검색한 결과를 보고 있습니다.
이 점은 로그인 유저의 그룹에 「디버그 모드」를 유효화하면 알기 쉽습니다.
하지만 Zabbix의 DB에 보관하지 않은 정보라는 것도 존재합니다.
큐 정보입니다.
DB에 없는 정보를 WebUI로 취득하는, 그러한 때에 내부 API는 사용되고 있습니다.
대기열 정보
큐의 정보는,zabbix3.0.8 이전에는 취득·표시할 수 있는 상한치가 500이 되고 있어 C의 소스와 php의 개수가 필요했습니다만 그 이후는 php의 파라미터 변경 가능하게 되어 있습니다.
htps //w w. 잔인한 x. 코 m / 도쿠 멘 타치 온 / 3.2 / 마누아 l / 우우 b_ 이런 r 푸세 / / 후 니치 온 s
절차
그런데 이번에 이야기하고 싶은 것은 API 문서에 실려 있지 않은 API가 있다는 것입니다.
통칭 "내부 API".
Zabbix는 과거의 수집 이력 등 거의 모든 정보를 DB에 저장하고 있습니다.
여러분이 사용하는 WebUI에 대해서는, 이 DB로부터 데이터를 검색한 결과를 보고 있습니다.
이 점은 로그인 유저의 그룹에 「디버그 모드」를 유효화하면 알기 쉽습니다.
하지만 Zabbix의 DB에 보관하지 않은 정보라는 것도 존재합니다.
큐 정보입니다.
DB에 없는 정보를 WebUI로 취득하는, 그러한 때에 내부 API는 사용되고 있습니다.
대기열 정보
큐의 정보는,zabbix3.0.8 이전에는 취득·표시할 수 있는 상한치가 500이 되고 있어 C의 소스와 php의 개수가 필요했습니다만 그 이후는 php의 파라미터 변경 가능하게 되어 있습니다.
htps //w w. 잔인한 x. 코 m / 도쿠 멘 타치 온 / 3.2 / 마누아 l / 우우 b_ 이런 r 푸세 / / 후 니치 온 s
절차
[root@localhost ~]# curl -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params": {"user":"Admin","password":"zabbix"},"id":0}' 127.0.0.1/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":"fa23a03c53c8db0c2654ce0893611747","id":0}
내부 API는 일반 api와 달리 웹 서버를 통하지 않고 Zabbix 서버의 대기 포트(일반적으로 10051/TCP)를 사용합니다.
telnet이 아니라 nc 명령을 사용하여 얻을 수 있습니다.
queue.get에서 사용하는 sid는 이전 user.login에서 얻은 결과 값을 사용하십시오.
[root@localhost ~]# telnet 127.0.0.1 10051
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
{"request":"queue.get", "sid":"fa23a03c53c8db0c2654ce0893611747","type":"overview"}
{"response":"success","data":[{"itemtype":3,"delay5":0,"delay10":1,"delay30":0,"delay60":0,"delay300":0,"delay600":0}]}Connection closed by foreign host.
위는 큐 화면의 「개요」를 JSON 형식으로 취득한 것입니다.
type을 "overview by proxy"나 "details"로 하면, 프록시의 개요나 상세를 취득할 수 있습니다.
요약
10분 이상 경과한 큐가 묻혀 WebUI에서 보이지 않게 되어 버렸을 때에는, 이 내부 API가 도움이 될지도 모릅니다.
소스를 읽으면 의외로 재미있는 것을 알 수 있는 Zabbix, 꼭 도전해 보세요!
Reference
이 문제에 관하여(내부 API를 아십니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/_BSmile_/items/83c6bf8a6239359a899b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)