Figure 1: ICMP unreachable |
Figure 2: Components of sFlow-RT |
var server = '10.0.0.152'; var port = 514; var facility = 16; // local0 var severity = 5; // notice var flowkeys = ['ipsource','ipdestination','icmpunreachableport']; setFlow('uport', { keys: flowkeys, value:'frames', log:true, flowStart:true }); setFlowHandler(function(rec) { var keys = rec.flowKeys.split(','); var msg = {}; for(var i = 0; i < flowkeys.length; i++) msg[flowkeys[i]] = keys[i]; syslog(server,port,facility,severity,msg); },['uport']);The following command line argument loads the script on startup:
-Dscript.file=syslog.jsThe following screen capture shows the events collected by the Splunk SIEM tool:
While Splunk was used in this example, there are a wide variety of open source and commercial tools that can be used to collect and analyze syslog events. For example, the following screen capture shows events in the open source Logstash tool:
Splunk, Logstash and other SIEM tools don't natively understand sFlow records and require a tool like sFlow-RT to extract information and convert it into a text format that can be processed. Using sFlow-RT to selectively forward high value data reduces the load on the SIEM system and in the case of commercial software like Splunk significantly lowers the expense of monitoring since licensing costs are typically based on the volume of data collected and indexed.
ICMP unreachable messages are only one example of the kinds of events that can be generated from sFlow data. The sFlow standard provides a scaleable method of monitoring all the network, server and application resources in the data center, see Visibility and the software defined data center.
Figure 3: Visibility and the software defined data center |
Finally, log export is only one of many applications for sFlow data, some of which have been described on this blog. The data center wide visibility provided by sFlow-RT supports orchestration tools and allows them to automatically optimize the allocation of compute, storage and application resources and the placement of loads on these resources.
What isnt clear to me is how the API will collect the ICMP packets. Does the switch have to send them to a collection point or is there some feature that lets the API collect them in flow?
ReplyDeletesFlow is enabled on the switches and they continuously stream a random sample of all the packets traversing the network to the sFlow-RT analyzer. Defining a flow that includes the icmpunreachable port key creates a flow cache in sFlow-RT that tracks the ICMP traffic. A more detailed explanation of the mechanism is included in RESTflow.
Delete