diff --git a/src/opnsense/scripts/netflow/dump_log.py b/src/opnsense/scripts/netflow/dump_log.py new file mode 100755 index 000000000..dfac2e41e --- /dev/null +++ b/src/opnsense/scripts/netflow/dump_log.py @@ -0,0 +1,41 @@ +#!/usr/local/bin/python2.7 +""" + Copyright (c) 2019 Ad Schellevis + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +""" +import argparse +import ujson +from lib.parse import parse_flow + + +if __name__ == '__main__': + # parse arguments and load config + parser = argparse.ArgumentParser() + parser.add_argument('--log', help='flowd log file', default='/var/log/flowd.log') + parser.add_argument('--timestamp', help='start timestamp (epoch)',type=int, default=0) + cmd_args = parser.parse_args() + for flow_record in parse_flow(cmd_args.timestamp, cmd_args.log): + if flow_record is not None: + print (ujson.dumps(flow_record))