2017-03-06 7 views
2

私はCygnusとSTHを接続しようとしています。私はコンテナドッカーにCygnusインスタンスがあり、VMにSTHインスタンスがあります。CygnusとSTHを接続するときのエラー

私はfiware-cygnus/cygnus-ngsi/resources/ngsi-examples/notification-json-simple.shで利用可能シグナスへの通知を送信するとき、それは私に次のエラーを示しています。

注:私は

time=2017-03-06T17:35:46.522Z | lvl=ERROR | corr=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | trans=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | srv=red | subsrv=/red/red | comp=cygnus-ngsi | op=processRollbackedBatches | msg=com.telefonica.iot.cygnus.sinks.NGSISink[394] : Persistence error. Message: -, Timed out after 30000 ms while waiting for a server that matches PrimaryServerSelector. Client view of cluster state is {type=UNKNOWN, servers=[{address=:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Exception receiving message}, caused by {java.net.SocketException: Connection reset}}], Stack trace: [com.telefonica.iot.cygnus.sinks.NGSISTHSink.persistOne(NGSISTHSink.java:158), com.telefonica.iot.cygnus.sinks.NGSISTHSink.persistBatch(NGSISTHSink.java:93), com.telefonica.iot.cygnus.sinks.NGSISink.processRollbackedBatches(NGSISink.java:387), com.telefonica.iot.cygnus.sinks.NGSISink.process(NGSISink.java:370), org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68), org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147), java.lang.Thread.run(Thread.java:745)] time=2017-03-06T17:35:46.522Z | lvl=INFO | corr=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | trans=0767a9d2-d44e-4872-9ef4-b57d68ef7f88 | srv=red | subsrv=/red/red | comp=cygnus-ngsi | op=doRollbackAgain | msg=com.telefonica.iot.cygnus.sinks.NGSISink[458] : Rollbacking again (0767a9d2-d44e-4872-9ef4-b57d68ef7f88), this was retry #9

質問を投稿するSTH IPを交換し、何も掲示されていませんSTHで

cygnus-ngsi.sources = http-source 
cygnus-ngsi.sinks = sth-sink 
cygnus-ngsi.channels = sth-channel 

cygnus-ngsi.sources.http-source.type = org.apache.flume.source.http.HTTPSource 
cygnus-ngsi.sources.http-source.channels = sth-channel 
cygnus-ngsi.sources.http-source.port = 5050 
cygnus-ngsi.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.NGSIRestHandler 
cygnus-ngsi.sources.http-source.handler.notification_target = /notify 
cygnus-ngsi.sources.http-source.handler.default_service = default 
cygnus-ngsi.sources.http-source.handler.default_service_path =/
cygnus-ngsi.sources.http-source.interceptors = ts gi 
cygnus-ngsi.sources.http-source.interceptors.ts.type = timestamp 
cygnus-ngsi.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.NGSIGroupingInterceptor$Builder 
cygnus-ngsi.sources.http-source.interceptors.gi.grouping_rules_conf_file = /opt/apache-flume/conf/grouping_rules.conf 


cygnus-ngsi.sinks.sth-sink.type = com.telefonica.iot.cygnus.sinks.NGSISTHSink 
cygnus-ngsi.sinks.sth-sink.channel = sth-channel 
#cygnus-ngsi.sinks.sth-sink.enable_encoding = false 
#cygnus-ngsi.sinks.sth-sink.enable_grouping = false 
#cygnus-ngsi.sinks.sth-sink.enable_name_mappings = false 
#cygnus-ngsi.sinks.sth-sink.enable_lowercase = false 
cygnus-ngsi.sinks.sth-sink.data_model = dm-by-entity 
cygnus-ngsi.sinks.sth-sink.mongo_hosts = <STH-MONGO-IP>:27017 
cygnus-ngsi.sinks.sth-sink.mongo_username = 
cygnus-ngsi.sinks.sth-sink.mongo_password = 
cygnus-ngsi.sinks.sth-sink.db_prefix = sth_ 
cygnus-ngsi.sinks.sth-sink.collection_prefix = sth_ 
cygnus-ngsi.sinks.sth-sink.resolutions = day,hour,minute 
#cygnus-ngsi.sinks.sth-sink.batch_size = 1 
#cygnus-ngsi.sinks.sth-sink.batch_timeout = 30 
#cygnus-ngsi.sinks.sth-sink.batch_ttl = 10 
#cygnus-ngsi.sinks.sth-sink.data_expiration = 0 
#cygnus-ngsi.sinks.sth-sink.ignore_white_spaces = true 


cygnus-ngsi.channels.sth-channel.type = com.telefonica.iot.cygnus.channels.CygnusMemoryChannel 
cygnus-ngsi.channels.sth-channel.capacity = 1000 
cygnus-ngsi.channels.sth-channel.transactionCapacity = 100 

そして、私のSTHの設定は次のとおりです:

var config = {}; 

// STH server configuration 
//-------------------------- 
config.server = { 

    host: '10.0.2.15', 

    port: '8666', 


    defaultService: 'testservice', 


    defaultServicePath: '/testservicepath', 


    filterOutEmpty: 'true', 

    aggregationBy: ['day', 'hour', 'minute'], 

    temporalDir: 'temp' 
}; 

// Database configuration 
//------------------------ 
config.database = { 

    dataModel: 'collection-per-entity', 
user: '', 

    password: '', 

    URI: 'localhost:27017', 

    replicaSet: '', 

    prefix: 'sth_', 


    collectionPrefix: 'sth_', 

    poolSize: '5', 


    shouldStore: 'both', 
    truncation: { 


    expireAfterSeconds: '0', 
    size: '0', 

    max: '0' 
    }, 

    ignoreBlankSpaces: 'true', 
    nameMapping: { 

    enabled: 'false', 

    configFile: './name-mapping.json' 
    }, 

    nameEncoding: 'false' 
}; 

// Logging configuration 
//------------------------ 
config.logging = { 
    level: 'info', 
    NODE_ENV variable is set to 'development'. 

    format: 'pipe', 


    proofOfLifeInterval: '60' 
}; 

module.exports = config; 
+1

これはネットワークエラーと思われます。具体的には、MongoDBドライバはサーバーに接続して、Cygnus設定で指定することができません。 CygnusをローカルでMongoDBに実行していますか?それとも、両方のマシンが異なるのでしょうか? – frb

+0

こんにちは、私は別のマシンで両方の作品を実行しています。実際には、私はCygnusをコンテナ(ドッカー)とSTH(そしてそのMongoDB)をVM CentOS 6にしています。私は既にiptables設定を変更して27017へのアクセスを許可していますが、動作しません。 –

+1

@frb、今すぐ接続しました。私は '/ etc/mongod.conf'を編集したところで' bindip = 127.0.0.1'という行をコメントアウトしました。今、私は認証に問題がありますが、より簡単に解決できます。ご協力いただきありがとうございます! –

答えて

1

私はこの問題の解決策を見つけた:私はちょうど私の/etc/mongod.confを編集した私のagent.conf(シグナスconfに)で

私はこれを持っていますすべてのインターフェイスでリッスンするようにbindip=127.0.0.1をコメントアウトしました。

関連する問題