我们正在运行 zabbix 的 3 个组件。 Zabbix-webui、zabbix 服务器和 mysql 数据库作为使用 docker-compose 文件的 docker 容器。 创建了另一个 springboot 应用程序,该应用程序是 dockerized 的并尝试连接到 zabbix api。所有 4 个图像都在同一个 compose 文件中运行。
我们如何连接到 zabbix api 并在我们的应用程序中获取 api 结果?
最佳答案
让我们假设这个 docker-compose.yml
文件:
version: '2'
services:
zabbix-frontend:
restart: always
image: zabbix/zabbix-web-nginx-mysql
environment:
- DB_SERVER_HOST=someserver
[...]
some-application:
restart: always
image: yourapplication:latest
您的 some-application
容器应连接到 http://zabbix-frontend
以使用 API。
要从应用程序容器内测试 http 可访问性(示例中的 a5d95c2cc9a2
):
# docker exec -it a5d95c2cc9a2 sh
sh-4.2# curl -i -X POST -H 'Content-type:application/json' \
-d '{"jsonrpc":"2.0","method":"user.login", \
"params":{ "user":"youruser","password":"somepassword"},"auth":null,"id":0}' \
http://zabbix-frontend/api_jsonrpc.php
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 21 Jan 2019 19:17:55 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/7.1.17
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 1000
{"jsonrpc":"2.0","result":"xxxxxxxxxxxxxxxxx","id":0}
关于java - 如何从容器内连接zabbix api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54230614/