简体   繁体   中英

How to configure Cygnus to save in mysql

I'm trying to configure Cygnus in order to persist Orion context data in a MySQL database. I have installed phpmyadmin, and I'm trying to use this database to save the data. The whole workflow is the following one: Orion recives some data, then it is sent to Cygnus, and finally Cygnus sends it to the SQL db.

This is my configuration:

# OrionMySQLSink configuration
# channel name from where to read notification events
cygnusagent.sinks.mysql-sink.channel = mysql-channel
# sink class, must not be changed
cygnusagent.sinks.mysql-sink.type = com.telefonica.iot.cygnus.sinks.OrionMySQLSink
# the FQDN/IP address where the MySQL server runs 
cygnusagent.sinks.mysql-sink.mysql_host = x.y.z.w
# the port where the MySQL server listens for incomming connections
cygnusagent.sinks.mysql-sink.mysql_port = 3306
# a valid user in the MySQL server
cygnusagent.sinks.mysql-sink.mysql_username = root
# password for the user above
cygnusagent.sinks.mysql-sink.mysql_password = xxxxxxxxxxxx
# how the attributes are stored, either per row either per column (row, column)
cygnusagent.sinks.mysql-sink.attr_persistence = column

A correct configuration file look like this:

# channel name from where to read notification events
cygnusagent.sinks.mysql-sink.channel = mysql-channel
# sink class, must not be changed
cygnusagent.sinks.mysql-sink.type = com.telefonica.iot.cygnus.sinks.OrionMySQLSink
# the FQDN/IP address where the MySQL server runs
cygnusagent.sinks.mysql-sink.mysql_host = localhost 
# the port where the MySQL server listes for incomming connections
cygnusagent.sinks.mysql-sink.mysql_port = 3306
# a valid user in the MySQL server
cygnusagent.sinks.mysql-sink.mysql_username = YOURUSERNAME
# password for the user above
cygnusagent.sinks.mysql-sink.mysql_password = YOURPASSWORD
# how the attributes are stored, either per row either per column (row, column)
cygnusagent.sinks.mysql-sink.attr_persistence = column

You should also have a look at the iptables and open the MySQL port (default port is 3306)

For testing purposes you can run contextbroker in your terminal (don't forget to stop the service before) with

contextBroker -port 1026

and cygnus in other terminal (don't forget to stop the service before) with

/usr/cygnus/bin/cygnus-flume-ng agent --conf /usr/cygnus/conf/ -f /usr/cygnus/conf/YOURAGENT.CONF -n cygnusagent -Dflume.root.logger=INFO,console 

(take care to change "YOURAGENT.CONF" and "cygnusagent" if you changed the name of the agent)

so you could see the output in realtime.

The database tables are not created automatically in column mode. So you would have to create the tables.

The columns look like : recvTime - datetime , field1 , field2 .... field1_md - varchar , field2_md - varchar ....

If you change

cygnusagent.sinks.mysql-sink.attr_persistence = column

to

cygnusagent.sinks.mysql-sink.attr_persistence = row

tables are created automatically, but I prefer the column way to save and handle data.

I hope this helps you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM