У меня есть 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 и кто может дать мне несколько советов, как решить эту проблему. .
Спасибо