On 25/08/2021 09:44, Peter Haag wrote:
On 18.08.21 11:49, Brian Candler wrote:
On 18/08/2021 09:45, Peter Haag wrote:
nfsen is *very* old code, and actually I wanted to rewrite a new version, which 
got delayed and finally aborted for a number of reasons.
I could consider to give it a go again, but I am still uncertain if it would 
still be used these days. Feedback would be appreciated.
If there would be a new NfSen incarnation, I would write it in Golang as it 
provides far more flexibility and speed. I am not a exceptionally gifted
GUI/Web developer - maybe someone would be willing to support. However, also 
for a new NfSen, I could prefer KISS
- easy of use and - hopefully - fast.
A maintained replacement for NFSen would be extremely welcome!
I think a careful design can help to prevent making the new interface unusable 
and integrate
those assets, which users on a large scale would like.

Actually I like the idea using Prometheus, as a lot of things are already 
integrated.
Using Prometheus would naturally result in using Grafana as frontend. The drill
down and listing flows needs to be implemented somehow. Up to now I have no 
experience in
developing grafana apps - I need to study this first.

Would you be comfortable with Grafana graphs and the way to zoom in to spot the 
points of
interest?

Yes I think so.  Selecting time ranges in Grafana is OK, although zooming out once you've already selected a range is a bit painful.  The key thing of course would be mapping the time range to the nfdump command line.  Checking how grafana deals with loki logs may be helpful here.  Maybe it's even possible to integrate with the "Explore" functionality. (*)

I would still ideally like to be able to select a single point of interest and get the netflow logs from that "bucket" - i.e. the "select single" function in nfsen.  It makes it easy to move back and forth around a point of interest.

(*) Aside: a completely different approach would be to convert netflow records into JSON and write them to loki, with certain fields extracted as labels.  This would then use loki's query language for analyzing netflow, and make most of nfdump redundant.  I don't think loki's query engine is featureful enough to do this (e.g. grouping by subnet); I also suspect that even compressed JSON would be less efficient storage-wise than nfdump's format.




Creating profile as possible so far in NfSen could be a challenge for 
Prometheus, as importing
historical data ( which filtering for a profile is nothing else ) seems not 
what Prometheus was
intended for.

Prometheus has fairly recently (v2.24.0) gained the ability to backfill historical data:

https://github.com/prometheus/prometheus/releases/tag/v2.24.0

https://github.com/prometheus/prometheus/pull/8230/files


Any remarks opinions and ideas are welcome in order to draft ideas for a modern 
interface and
workflow with netflow data.

Meanwhile I try to write a nfdump netflow_exporter for Prometheus to play and 
experiment with.
It's almost done.

I would put the exporter on a new repo on Github, so discussion could continue 
there as an issue,
or here on the ML.

Sounds excellent, I look forward to playing with this!

Regards,

Brian.



Regards

        - Peter

I see two aspects to this:

1. the web UI for selecting time ranges and drilling down to netflow queries
2. the creation and storage of graphs of flow data (i.e. summaries by protocol, 
and user-defined channels)

As regards (1): whilst the UI of NFSen is very much web-1.0, it is 
straightforward, practical and usable in real world scenarios.

Attempts to "modernise" the UI, as in nfsen-ng, have made it unusable.  Just 
try selecting time ranges: things zoom horizontally, making it very
difficult to change to a wider time range.  In my opinion, it's a complete 
fail.  Selecting time ranges is the main /raison d'être/ of NFSen.

As regards (2): I would be very happy to see rrdtool dropped entirely and 
replaced by something modern, like Prometheus.  This could be very simple to
implement: the nfsen backend simply filters and counts flow records, and 
exposes the counters as prometheus metrics.  Then prometheus scrapes them.
This could be done at a finer granularity than today, e.g. 1 minute or better. (In fact, 
since prometheus considers timeseries "stale" after 5 minutes
of no data, it's recommended that you scrape *at least* every 2 minutes.  And 
the cost of doing so is much lower than rrdtool).  Apart from being
efficient and scalable, the Prometheus ecosystem opens up a whole range of 
possibilities around dashboards and alerting - and it means there's no need
to re-implement alerts in NFSen.

nfsen-ng missed this opportunity too.

Regards,

Brian.




_______________________________________________
Nfsen-discuss mailing list
Nfsen-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfsen-discuss





_______________________________________________
Nfsen-discuss mailing list
Nfsen-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfsen-discuss

Reply via email to