fiware/cygnus-ngsiCygnus-NGSI是FIWARE生态系统的核心组件,作为上下文数据持久化连接器,基于Apache Flume(流编程概念的数据流系统)开发。其核心功能是接收上下文数据源(如Orion Context Broker)的数据,通过流处理将数据路由并持久化到第三方数据库和存储系统,从而创建上下文的历史视图。Flume提供的强大可扩展数据流路由、转换能力,使Cygnus-NGSI能自动化系统间的信息流转与持久化。
agent.conf文件进行参数配置。_FILE后缀环境变量从文件加载敏感信息(如密码、密钥)。适用于需要持久化上下文数据以保留历史记录的场景,主要包括:
以下示例展示Cygnus与Orion、PostgreSQL的配合使用,Cygnus将上下文数据持久化到PostgreSQL:
yamlversion: "3.5" services: # Orion作为上下文 broker orion: image: fiware/orion hostname: orion container_name: fiware-orion depends_on: - mongo-db ports: - "1026:1026" command: -dbhost mongo-db -logLevel DEBUG -noCache # Cygnus配置为将上下文数据写入PostgreSQL cygnus: image: fiware/cygnus-ngsi hostname: cygnus container_name: fiware-cygnus networks: - default depends_on: - postgres-db ports: - "5055:5055" # PostgreSQL sink服务端口 - "5080:5080" # Cygnus运维API端口 environment: - "CYGNUS_POSTGRESQL_HOST=postgres-db" # PostgreSQL服务器主机名 - "CYGNUS_POSTGRESQL_PORT=5432" # PostgreSQL监听端口 - "CYGNUS_POSTGRESQL_USER=postgres" # PostgreSQL用户名 - "CYGNUS_POSTGRESQL_PASS=password" # PostgreSQL密码 - "CYGNUS_POSTGRESQL_ENABLE_CACHE=true" # 启用PostgreSQL缓存 - "CYGNUS_POSTGRESQL_SERVICE_PORT=5055" # agent.conf配置的服务端口 - "CYGNUS_LOG_LEVEL=DEBUG" # 日志级别 - "CYGNUS_SERVICE_PORT=5055" # 订阅通知监听端口 - "CYGNUS_API_PORT=5080" # 运维API端口 # 数据库服务 mongo-db: # Orion使用的MongoDB image: mongo:3.6 hostname: mongo-db container_name: db-mongo ports: - "27017:27017" command: --bind_ip_all --smallfiles volumes: - mongo-db:/data postgres-db: # Cygnus持久化目标PostgreSQL image: postgres hostname: postgres-db container_name: db-postgres ports: - "5432:5432" environment: - "POSTGRES_PASSWORD=password" - "POSTGRES_USER=postgres" - "POSTGRES_DB=postgres" volumes: - postgres-db:/var/lib/postgresql/data volumes: mongo-db: ~ postgres-db: ~
通过环境变量可配置存储连接、端口、日志等核心参数,以PostgreSQL为例,常用变量包括:
CYGNUS_POSTGRESQL_HOST:目标PostgreSQL服务器主机名CYGNUS_POSTGRESQL_PORT:服务器监听端口(默认5432)CYGNUS_POSTGRESQL_USER/CYGNUS_POSTGRESQL_PASS:数据库用户及密码CYGNUS_LOG_LEVEL:日志级别(如DEBUG、INFO)CYGNUS_SERVICE_PORT:订阅通知监听端口CYGNUS_API_PORT:运维API端口更复杂配置可通过挂载agent.conf文件实现,详情参考官方文档。
为安全管理敏感信息,可通过_FILE后缀环境变量从容器内文件加载值(如Docker Secrets)。支持的变量包括:
CYGNUS_MYSQL_USER_FILE/CYGNUS_MYSQL_PASS_FILECYGNUS_MONGO_USER_FILE/CYGNUS_MONGO_PASS_FILECYGNUS_HDFS_USER_FILE/CYGNUS_HDFS_TOKEN_FILECYGNUS_POSTGRESQL_USER_FILE/CYGNUS_POSTGRESQL_PASS_FILECYGNUS_POSTGIS_USER_FILE/CYGNUS_POSTGIS_PASS_FILECYGNUS_CARTO_USER_FILE/CYGNUS_CARTO_KEY_FILE示例:
bashdocker run --name some-cygnus -e CYGNUS_POSTGRESQL_PASS_FILE=/run/secrets/postgres-pass -d fiware/cygnus-ngsi:tag
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务