CESNET / ipfixcol

IPFIXcol is an implementation of an IPFIX (RFC 7011) collector
Other
64 stars 37 forks source link

SIGUSR1 doesn't seem to reload configuration #157

Closed jepries closed 8 years ago

jepries commented 8 years ago

Hi all. First, let me congratulate you guys on such a nice piece of work. IPFIXcol is really flexible and working nicely for me. I'm in testing of it now and noticed that when I add entries to ipfix-elements.xml and issue a SIGUSR1 to the process, it doesn't seem to accept it. Watching the /var/log/messages doesn't indicate any logs of reloading the configs and my test indicate that it didn't happen.

I have a test v5 stream incoming that converts to this JSON: {"@type": "ipfix.entry", "ipfix.sourceIPv4Address": "10.0.0.2", "ipfix.destinationIPv4Address": "10.0.0.3", "ipfix.ipNextHopIPv4Address": "0.0.0.0", "ipfix.ingressInterface": 3, "ipfix.egressInterface": 5, "ipfix.packetDeltaCount": 1, "ipfix.octetDeltaCount": 64, "ipfix.flowStartMilliseconds": 12748589591756800, "ipfix.flowEndMilliseconds": 6924086267256832000, "ipfix.sourceTransportPort": 4242, "ipfix.destinationTransportPort": 80, "ipfix.paddingOctets": "0", "ipfix.tcpControlBits": "......", "ipfix.protocolIdentifier": "UDP", "ipfix.ipClassOfService": 1, "ipfix.bgpSourceAsNumber": 2, "ipfix.bgpDestinationAsNumber": 3}

If I take a random ID above and comment it out of the ipfix-elements.xml, and restart ipfixcol, I see that the id I commented out is in fact replaced (example) ipfix.e0id14 instead of ipfix.egressInterface. So far so good.

Now if I add that element back in to the ipfix-elements.xml and issue a SIGUSR1 to the running process, it doesn't pick it up or throw any additional messages to /var/log messages that indicates it received the signal.

Just wondering if I am doing something wrong, would love for this to work.

I'm starting the process with the ipfixcol start script, but have modified it to give it more parameters. here is my running view: ipfixcol -v 2 -M -S 30 -s -d -e/mydir/ipfixcol-ipfix-elements.xml -i/mydir/ipfixcol-internalcfg.xml -c /mydir/ipfixcol-startup.xml -d

ipfixcol-internalcfg.xml is unchanged from original ipfixcol-ipfix-elements.xml is unchanged with the exception of commenting out or adding back in a single element ipfixcol-startup.xml has been modified to use the JSON output, this works wonderfully!

Thanks guys, again, thanks for this awesome piece of work!!!!

Lukas955 commented 8 years ago

Hi, I'm sorry for the delayed response. Thank you for spotting this. It is caused by a part of the code that prints statistics about flow processing. I will fix it tommorow, but temporary workaround is to not use the option "-S 30".

Lukas955 commented 8 years ago

I've just fixed it in devel branch. Give it a try, please.

jepries commented 8 years ago

@Lukas955 Thanks! I will rebuild and try it out asap.