Cygnus-ngsi, установленный с Docker -compose, не сохраняет данные в MongoDB - PullRequest
1 голос
/ 02 мая 2020

У меня есть Orion, MongoDB и Cygnus-ngsi, установленные с docker -compose на машине с Ubuntu 18.04. Я использовал следующие образы: fiware / orion: последний, fiware / cygnus-ngsi: последний и понедельник go: 3,6.

Они были установлены с помощью команды: docker-compose -f reflexwaterDocker.yaml up

I не было проблем с установкой. Все контейнеры UP. Орион сохранение в MongoDB. API Cygnus работает.

Я создал подписку на объект Orion, все в порядке. Но когда я обновляю сущность, orion работает на mon go, но Cygnus не сохраняет исторические данные.

Файл agent.conf в opt/apache-flume/conf настроен правильно. Я использую настройки по умолчанию для docker -композитной установки.

Все порты верны и были протестированы.

Я использовал Cygnus с Orion и MongoDB, устанавливаемыми вручную, и я не было проблем. Но также я установил agent_conf и cygnus_instance.conf. Используя docker, следуя пошаговым инструкциям в документации, нет необходимости настраивать cygnus_instance.conf. Он даже не существует в папке opt/apache-flume/conf.

Кто-нибудь знает, что может случиться с Cygnus, не сохраняющим данные? Или вы прошли через это и сумели решить?

Мой docker -композит выглядит так для Cygnus-ngsi:

    image: fiware/cygnus-ngsi:latest
    hostname: cygnus
    container_name: cygnus
    networks:
      - default
    depends_on:
      - mongo
    expose:
      - "5050"
      - "5080"
    ports:
      - "5050:5050"
      - "5080:5080" 
    environment:
      - CYGNUS_SERVICE_PORT=5050
      - CYGNUS_AGENT_NAME=cygnus-ngsi
      - CYGNUS_MONGO_SERVICE_PORT=5050
      - CYGNUS_DEFAULT_SERVICE=def_serv 
      - CYGNUS_DEFAULT_SERVICE_PATH=reflexWater
      - CYGNUS_MONGO_HOSTS=localhost:27017
      - CYGNUS_MONGO_USER=""
      - CYGNUS_MONGO_PASS=""
      - CYGNUS_MONGO_ENABLE_ENCODING=false
      - CYGNUS_MONGO_ENABLE_GROUPING=false
      - CYGNUS_MONGO_ENABLE_NAME_MAPPINGS=false
      - CYGNUS_MONGO_DATA_MODEL=dm-by-entity
      - CYGNUS_MONGO_ATTR_PERSISTENCE=column
      - CYGNUS_MONGO_DB_PREFIX=db_
      - CYGNUS_MONGO_COLLECTION_PREFIX=col_   
      - CYGNUS_MONGO_ENABLE_LOWERCASE=false
      - CYGNUS_MONGO_BATCH_TIMEOUT=30
      - CYGNUS_MONGO_BATCH_TTL=10
      - CYGNUS_MONGO_DATA_EXPIRATION=0
      - CYGNUS_MONGO_COLLECTIONS_SIZE=0
      - CYGNUS_LOG_LEVEL=DEBUG
      - CYGNUS_SKIP_CONF_GENERATION=false

Я выполнил команду: docker logs cygnus

Cygnus пытается сохранить данные в соответствии с журналом: time=2020-05-03T01:18:27.683Z | lvl=INFO | corr=fda0c4fc-8cdb-11ea-ad11-0242ac120003 | trans=f1674faf-aa5a-4ca8-a62a-2136378f6d08 | srv=default |subsrv=/ | comp=cygnus-ngsi | op=persistAggregation | msg=com.telefonica.iot.cygnus.sinks.NGSIMongoSink[235] : [mongo-sink] Persisting data at NGSIMongoSink. Database: db_default, Collection: col_/_Room1_Room, Data: [Document{{temperature=279, recvTime=Sun May 03 01:18:27 UTC 2020}}]

Но я также заметил следующую ошибку:

time=2020-05-03T01:18:28.553Z| lvl=WARN|corr=fda0c4fc-8cdb-11ea-ad11-0242ac120003 |trans=f1674faf-aa5a-4ca8-a62a-2136378f6d08 | srv=default| subsrv=/ | comp=cygnus-ngsi | op=createCollection|msg=com.telefonica.iot.cygnus.backends.mongo.MongoBackendImpl[192] : Error in collection col_/_Room1_Room creating index ex=Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='""', source='db_default', password=<hidden>, mechanismProperties=<hidden>}

Как я Понимаете, это не сохраняется из-за учетных данных MongoDB. Но я не использую имя пользователя и пароль для банка MongoDB.

Итак, что это может быть? Я не понял ошибку и даже не смог найти правдоподобное оправдание этой ошибки.

Кто-то, кто уже использовал Лебедя на docker и кто может дать мне несколько советов, как решить эту проблему. .

Спасибо

...