2015-10-21 2 views
2

Я хочу подписаться на Orion для отправки уведомлений в Cygnus. Затем cygnus сохранит все данные в базе данных mysql. Я использую этот скрипт для подписки на атрибут скорости car1.Cygnus не обновлял базу данных

(curl 130.206.118.44:1026/v1/subscribeContext -s -S --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Fiware-Service: vehicles' --header 'Fiware-ServicePath: /4wheels' -d @- | python -mjson.tool) <<EOF 
{ 
    "entities": [ 
     { 
      "type": "car", 
      "isPattern": "false", 
      "id": "car1" 
     } 
    ], 
    "attributes": [ 
     "speed", 
     "oil_level" 
    ], 
    "reference": "http://192.168.1.49:5050/notify", 
    "duration": "P1M", 
    "notifyConditions": [ 
     { 
      "type": "ONCHANGE", 
      "condValues": [ 
       "speed" 
      ] 
     } 
    ], 
    "throttling": "PT1S" 
} 
EOF 

Но когда я обновляю атрибут скорости автомобиля 1, cygnus не обновляет базу данных.

Базы данных, доступные:

mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| mysql    | 
| performance_schema | 
+--------------------+ 
3 rows in set (0.00 sec) 

Некоторая информация о моей службе Лебедя и моей конфигурации Cygnus (systemctl status cygnus):

cygnus.service - SYSV: cygnus 
    Loaded: loaded (/etc/rc.d/init.d/cygnus) 
    Active: active (exited) since Wed 2015-10-21 17:54:07 UTC; 8min ago 
    Process: 31566 ExecStop=/etc/rc.d/init.d/cygnus stop (code=exited, status=0/SUCCESS) 
    Process: 31588 ExecStart=/etc/rc.d/init.d/cygnus start (code=exited, status=0/SUCCESS) 

Oct 21 17:54:05 cygnus systemd[1]: Starting SYSV: cygnus... 
Oct 21 17:54:05 cygnus su[31593]: (to cygnus) root on none 
Oct 21 17:54:07 cygnus cygnus[31588]: Starting Cygnus mysql... [ OK ] 
Oct 21 17:54:07 cygnus systemd[1]: Started SYSV: cygnus. 

agent_mysql.conf:

# main configuration 
cygnusagent.sources = http-source 
cygnusagent.sinks = mysql-sink 
cygnusagent.channels = mysql-channel 

# source configuration 
cygnusagent.sources.http-source.channels = mysql-channel 
cygnusagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource 
cygnusagent.sources.http-source.port = 5050 
cygnusagent.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.OrionRestHandler 

# url target 
cygnusagent.sources.http-source.handler.notification_target = /notify 
cygnusagent.sources.http-source.handler.default_service = def_serv 
cygnusagent.sources.http-source.handler.default_service_path = def_servpath 
cygnusagent.sources.http-source.handler.events_ttl = 10 
cygnusagent.sources.http-source.interceptors = ts gi 
cygnusagent.sources.http-source.interceptors.ts.type = timestamp 
cygnusagent.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder 
cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file = /usr/cygnus/conf/grouping_rules.conf 


#Orion MysqlSink Configuration 
cygnusagent.sinks.mysql-sink.channel = mysql-channel 
cygnusagent.sinks.mysql-sink.type = com.telefonica.iot.cygnus.sinks.OrionMySQLSink 
cygnusagent.sinks.mysql-sink.enable_grouping = false 
# mysqldb ip 
cygnusagent.sinks.mysql-sink.mysql_host = 127.0.0.1 
# mysqldb port 
cygnusagent.sinks.mysql-sink.mysql_port = 3306 
cygnusagent.sinks.mysql-sink.mysql_username = root 
cygnusagent.sinks.mysql-sink.mysql_password = 12345 
cygnusagent.sinks.mysql-sink.attr_persistence = column 
cygnusagent.sinks.mysql-sink.table_type = table-by-destination 

# configuracao do canal mysql 
cygnusagent.channels.mysql-channel.type = memory 
cygnusagent.channels.mysql-channel.capacity = 1000 
cygnusagent.channels.mysql-channel.transactionCapacity = 100 

После чтения this вопрос , Я изменил свой agent_mysql.conf в th строка: cygnusagent.sinks.mysql-sink.attr_persistence = column - cygnusagent.sinks.mysql-sink.attr_persistence = row и перезапустили службу. Затем я обновил объект orion, и я запросил базу данных, и ничего не произошло.

файл Cygnus журнала: http://pastebin.com/B2FNKcVf

Примечание: Мой JAVA_HOME.

+0

Ваша конфигурация, похоже, в порядке. Не могли бы вы поделиться всем журналом цикла Cygnus? Пожалуйста, используйте gist или pastebin. Что касается attr_persistence, как вы уже заметили по связанному вопросу, если вы настроите его на «столбец», то Cygnus не будет создавать таблицу, но он должен быть предоставлен вами. Напротив, если использовать «строку», он автоматически создается Cygnus. – frb

+0

@frb Я обновил вопрос. – urb

+0

Я обновил свой ответ – frb

ответ

1

Как вы можете видеть в журналах вы в курсе, есть проблема с лог-файл Cygnus:

java.io.FileNotFoundException: ./logs/cygnus.log (No such file or directory) 

После этого Cygnus останавливается. Вы должны проверить свою конфигурацию в отношении log4j, все находится в /usr/cygnus/conf/log4j.properties (она должна существовать, она создается RPM ... если не существует - потому что вы были выбраны из источников вместо RPM-, она должна быть создана из доступного шаблона) , Кроме того, можете ли вы разместить свой файл конфигурации экземпляра? Во всяком случае, в какой версии вы работаете?

EDIT 1

Недавно мы нашли другой пользователь дело с той же ошибкой, и проблема была содержимое файла /usr/cygnus/conf/log4j.properties был:

flume.root.logger=INFO,LOGFILE 
flume.log.dir=./log 
flume.log.file=flume.log 

Вместо того, что содержит шаблон :

flume.root.logger=INFO,LOGFILE 
flume.log.dir=/var/log/cygnus/ 
flume.log.file=flume.log 

После изменения он работал, потому что RPM создает /var/log/cygnus но не ./log.

Смежные вопросы