java - 如何从容器内连接zabbix api?

标签 java docker zabbix

我们正在运行 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/

相关文章:

java - 直接分配给老年代

mysql - zabbix trapper 以及来自 MySQL 查询的结果

php - Zabbix:无法确定 "dbversion"

mysql - 如何将值直接插入到zabbix Mysql数据库中

java - 使用外部类路径运行可执行 JAR

java - 使用 webhook 对 Google 部署执行的操作

docker - Docker 有操作系统吗?

docker - 在不启动设置为自动重启的容器的情况下启动Docker守护程序

docker - 无法从 Jenksinfile 中安装 ansible-galaxy 角色以构建和部署具有 (git)scm 引用角色的基础设施

用于 ElasticSearch 的 Java HTTP 客户端