Please note that this capability is a part of partner only integration feature set and we strongly advice against using it unless you have discussed it with our engineering team.
This logic can be changed or removed without any further notices and it’s not a part of FastNetMon backward compatibility guarantee.
To enable max talkers collection logic you will need to enable these configuration options:
sudo fcli set main generate_max_talkers_report true sudo fcli set main generate_max_talkers_report_delay 60 sudo fcli commit
After that FastNetMon will calculate top talkers for each per_host hostgroup you have in configuration and will store them to MongoDB in collection: hostgroups_max_talkers. It will do it every generate_max_talkers_report_delay seconds.
To get them in MongoDB you can use following query:
db.hostgroups_max_talkers.find({})
Example output:
{ "_id" : ObjectId("65edd444cb342dccea093b66"), "hostgroups" : { "global" : { "ipv4" : { "incoming" : { "bytes_per_second" : [ { "host" : "192.168.1.108", "value" : 1631 } ], "icmp_bytes_per_second" : [ ], "icmp_packets_per_second" : [ ], "ip_fragmented_bytes_per_second" : [ ], "ip_fragmented_packets_per_second" : [ ], "packets_per_second" : [ { "host" : "192.168.1.108", "value" : 18 } ], "tcp_bytes_per_second" : [ ], "tcp_packets_per_second" : [ ], "tcp_syn_bytes_per_second" : [ ], "tcp_syn_packets_per_second" : [ ], "udp_bytes_per_second" : [ { "host" : "192.168.1.108", "value" : 1631 } ], "udp_packets_per_second" : [ { "host" : "192.168.1.108", "value" : 18 } ] }, "outgoing" : { "bytes_per_second" : [ { "host" : "192.168.1.106", "value" : 1486 } ], "icmp_bytes_per_second" : [ ], "icmp_packets_per_second" : [ ], "ip_fragmented_bytes_per_second" : [ ], "ip_fragmented_packets_per_second" : [ ], "packets_per_second" : [ { "host" : "192.168.1.106", "value" : 18 } ], "tcp_bytes_per_second" : [ ], "tcp_packets_per_second" : [ ], "tcp_syn_bytes_per_second" : [ ], "tcp_syn_packets_per_second" : [ ], "udp_bytes_per_second" : [ { "host" : "192.168.1.106", "value" : 1486 } ], "udp_packets_per_second" : [ { "host" : "192.168.1.106", "value" : 18 } ] } } } }, "period_end" : "2024-03-10T15:39:48Z", "period_start" : "2024-03-10T15:38:48Z" }
On recent versions of MongoDB you can request whole structure this way:
mongosh --username administrator --password `sudo cat /etc/fastnetmon/keychain/.mongo_admin` --eval 'use fastnetmon' --eval 'db.hostgroups_max_talkers.find()'
After that you will be able to request max talkers list via API. You can do request to retrieve all records this way:
curl -X GET -u admin:password http://127.0.0.1:10007/hostgroup_max_talkers
To retrieve records from specific date please use another query:
curl -X GET -u admin:password http://127.0.0.1:10007/hostgroup_max_talkers/2022-02-01T00:58:40Z
FastNetMon has logic to remove these entries from MongoDB automatically every 15 minutes.
If you run query and API responds error 500 like this:
[martini]2024/04/12 15:45:56 Completed GET /hostgroup_max_talkers/2023-04-12T31:44:38Z 500 Internal Server Error in 7.135398ms [martini]2024/04/12 15:45:56 Show function returned error: We do not have any samples for your query
Then it means that for some reasons FastNetMon was not able to calculate max talkers and store them to MongoDB. Very likely you will find details at /var/log/fastnetmon/fastnetmon.log.