首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接系统包括OPC UA IoT代理、Orion上下文代理。Cygnus与Postgres的历史数据

连接系统包括OPC UA IoT代理、Orion上下文代理。Cygnus与Postgres的历史数据
EN

Stack Overflow用户
提问于 2021-08-31 17:20:39
回答 1查看 263关注 0票数 2

我试图建立一个系统来保存这样的历史数据: Prosys服务器仿真-> OPC IoT Agent -> Orion Context Broker -> FIWARE Cygnus Connector -> PostgreSQL数据库。

下面是我用来组成docker-compose文件的文档:

历史-文脉-水槽

OPC代理

下面是我使用的docker-compose.env文件

docker-compose.yml

代码语言:javascript
复制
version: "3"
#secrets:
#   age_idm_auth:
#      file: age_idm_auth.txt

services:
  iotage:
    hostname: iotage
    image: iotagent4fiware/iotagent-opcua:1.3.4
    networks:
      - hostnet
      - iotnet
    ports:
      - "${AGENT_SERVER_PORT}:${AGENT_SERVER_PORT}"
      - "4081:8080"
    extra_hosts:
      - "iotcarsrv:192.168.50.167"
      - "HP:192.168.50.167"
    depends_on:
      - iotmongo
      - orion
    volumes:
      - ./AGECONF:/opt/iotagent-opcua/conf
      - ./certificates/charm:/opt/iotagent-opcua/certificates
    command: /usr/bin/tail -f /var/log/lastlog

  iotmongo:
    hostname: iotmongo
    image: mongo:3.4
    networks:
      - iotnet
    volumes:
      - iotmongo_data:/data/db
      - iotmongo_conf:/data/configdb

  ################ OCB ################

  orion:
    hostname: orion
    image: fiware/orion:latest
    networks:
      - hostnet
      - ocbnet
    ports:
      - "${ORION_PORT}:${ORION_PORT}"
    depends_on:
      - orion_mongo
    #command: -dbhost mongo
    entrypoint: /usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -statCounters -dbhost mongo -logForHumans -logLevel DEBUG -t 255

  orion_mongo:
    hostname: orion_mongo
    image: mongo:3.4
    networks:
      ocbnet:
        aliases:
          - mongo
    volumes:
      - orion_mongo_data:/data/db
      - orion_mongo_conf:/data/configdb
    command: --nojournal

  ############### CYGNUS ###############

  cygnus:
    image: fiware/cygnus-ngsi:${CYGNUS_VERSION}
    hostname: cygnus
    container_name: fiware-cygnus
    networks:
      - hostnet
    depends_on:
      - postgres-db
    expose:
      - "${CYGNUS_POSTGRESQL_SERVICE_PORT}" # 5055
      - "${CYGNUS_API_PORT}" # 5080
    ports:
      - "${CYGNUS_POSTGRESQL_SERVICE_PORT}:${CYGNUS_POSTGRESQL_SERVICE_PORT}"
      - "${CYGNUS_API_PORT}:${CYGNUS_API_PORT}"
    environment:
      - "CYGNUS_POSTGRESQL_SERVICE_PORT=${CYGNUS_POSTGRESQL_SERVICE_PORT}"      
      - "CYGNUS_POSTGRESQL_HOST=postgres-db" # Hostname of the PostgreSQL server used to persist historical contex
      - "CYGNUS_POSTGRESQL_PORT=${POSTGRES_DB_PORT}" # Port that the PostgreSQL server uses to listen to commands
      - "CYGNUS_POSTGRESQL_DATABASE=postgres"
      - "CYGNUS_POSTGRESQL_USER=postgres" # Username for the PostgreSQL database user
      - "CYGNUS_POSTGRESQL_PASS=password" # Password for the PostgreSQL database user
      - "CYGNUS_POSTGRESQL_ENABLE_CACHE=true" # Switch to enable caching within the PostgreSQL configuration
      - "CYGNUS_SERVICE_PORT=${CYGNUS_POSTGRESQL_SERVICE_PORT}" # Notification Port that Cygnus listens when subcr
      - "CYGNUS_API_PORT=${CYGNUS_API_PORT}" # Port that Cygnus listens on for operational reasons
      - "CYGNUS_LOG_LEVEL=DEBUG" # The logging level for Cygnus


  postgres-db:
    image: postgres
    hostname: postgres-db
    expose:
      - "${POSTGRES_DB_PORT}"
    ports:
      - "${POSTGRES_DB_PORT}:${POSTGRES_DB_PORT}"
    networks:
      - hostnet
    environment:
      - "POSTGRES_PASSWORD=password"
      - "POSTGRES_USER=postgres"
      - "POSTGRES_DB=postgres"
    volumes:
      - postgres-db:/var/lib/postgresql/data

volumes:
  iotmongo_data:
  iotmongo_conf:
  orion_mongo_data:
  orion_mongo_conf:
  postgres-db:

networks:
  hostnet:
  iotnet:
  ocbnet:

.env

代码语言:javascript
复制
# Orion
ORION_PORT=1026

# PostgreSQL
POSTGRES_DB_PORT=5432

# OPCUA IoT Agent
AGENT_SERVER_PORT=4001

# Cygnus
CYGNUS_VERSION=2.10.0
CYGNUS_API_PORT=5080
CYGNUS_MYSQL_SERVICE_PORT=5050
CYGNUS_MONGO_SERVICE_PORT=5051
CYGNUS_CKAN_SERVICE_PORT=5052
CYGNUS_HDFS_SERVICE_PORT=5053
CYGNUS_CARTO_SERVICE_PORT=5054
CYGNUS_POSTGRESQL_SERVICE_PORT=5055
CYGNUS_ORION_SERVICE_PORT=5056
CYGNUS_POSTGIS_SERVICE_PORT=5057
CYGNUS_ELASTICSEARCH_SERVICE_PORT=5058
CYGNUS_ARCGIS_SERVICE_PORT=5059

我可以看到系统已经启动,没有从码头结果通知错误。

但是,当我使用pgAdmin或docker exec检查postgres数据库时,其中没有任何内容。psql的\dt命令给了我Did not find any relation,这意味着数据库中没有任何登录。

请提供帮助,结合这两个组成部分的FIWARE ( IoT禁化武组织代理和天鹅座)。我也不清楚Cygnus连接器是否会为我们创建数据库。

编辑组件似乎正在工作:模拟服务器

所有服务

Cynus只告诉我‘配置没有变化’,当我使用docker exec进入容器时,从Cygnus,我可以平两个orion,postgresql数据库容器。

在postgresql中:我看不到所需的数据库或表

我的仿真服务器、禁止化学武器组织-> IoT代理-> Orion的系统运行良好,因为从docker logs我仍然能够获得仿真服务器的更新值:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 10:31:01

这里有一个复杂的场景,由一个由5个组件组成的端到端链组成:

  • Prosys OPC-UA服务器仿真
  • OPC-UA FIWARE IoT代理
  • Orion上下文代理
  • Cygnus连接器
  • PostgreSQL数据库

我在这里的建议是检查链中的每一步(查看日志等)。在检查下一步之前,确保一切都是正确的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69002930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档