{"id":19585924,"url":"https://github.com/cacti/plugin_flowview","last_synced_at":"2026-02-27T09:16:26.886Z","repository":{"id":36154130,"uuid":"40458168","full_name":"Cacti/plugin_flowview","owner":"Cacti","description":"FlowView Plugin for Cacti","archived":false,"fork":false,"pushed_at":"2024-04-18T11:20:14.000Z","size":4572,"stargazers_count":17,"open_issues_count":14,"forks_count":8,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2024-05-01T11:00:31.039Z","etag":null,"topics":["cacti","cacti-plugin","flow","flow-capture","flowview","flowview-plugin"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cacti.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-10T02:00:22.000Z","updated_at":"2024-05-18T01:38:44.291Z","dependencies_parsed_at":"2023-12-07T05:25:59.083Z","dependency_job_id":"93c46822-1169-4f34-a08c-ecf748c5f584","html_url":"https://github.com/Cacti/plugin_flowview","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cacti%2Fplugin_flowview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cacti%2Fplugin_flowview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cacti%2Fplugin_flowview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cacti%2Fplugin_flowview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cacti","download_url":"https://codeload.github.com/Cacti/plugin_flowview/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224069493,"owners_count":17250456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cacti","cacti-plugin","flow","flow-capture","flowview","flowview-plugin"],"created_at":"2024-11-11T07:57:47.939Z","updated_at":"2026-02-27T09:16:26.880Z","avatar_url":"https://github.com/Cacti.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flowview\n\nThis plugin allows you to view NetFlow data from inside of Cacti and \nto generate Email based reports of the data.\n\n# Features\n\n* Ability to view Flow Data in Table Form or three Chart Forms.\n* Parallel Query Execution to increase the speed of report generation.\n* Support for Shard Query and Horizontal Scaling through use of technologies \n  such as MariaDB MaxScale.\n* Tracking of IP addresses that do not resolve through DNS by using ARIN's\n  whois service.\n* Customizable Scheduled Reports.\n* Starting with the 4.x version, the ARIA database format will be the default\n  for historical raw tables.  The ARIA format is crash safe, and almost\n  5x faster than InnoDB.  The live raw table will always be InnoDB to support\n  multiple concurrent inserts, but once that table ages out, it will be\n  converted to the ARIA engine by default.\n* Starting with the 4.x version, the DNS cache will be manageable.  Therefore,\n  if you have intermittent DNS resolution issues, you will be able to view \n  and manage those entries in the cache.\n* Starting with the 4.x version, you will be able to define a custom unregistered\n  domain for local network IP addresses.  This is intended for home users who\n  are just trying to see what type of activity is going on on their home\n  network.\n* Two partitioning methods for raw tables including Hourly and Daily partitioning.\n  For larger commercial type deployments, using Hourly partitioning is going\n  to be recommended.\n* Starting with the 4.x version, sharding results will be cache to increase\n  subsequent queries by various users under various conditions.\n\n\n# Watch our video on YouTube!\n\n[![Video ](http://img.youtube.com/vi/Kic-nY-RThA/0.jpg)](https://youtu.be/Kic-nY-RThA \"Flowview Video\")\n\n\n\n# Installation\n\nTo install the plugin, simply copy the plugin_flowview directory to Cacti's plugins\ndirectory and rename it to simply 'flowview'.\n\nCopy config.php.dist to config.php and set the correct db connection.  The\nFlowview plugin supports using the Cacti database or a third party database\nas the Flowview database can becomee very large over time and may have\ndiffering scalability requirements.\n\nOnce this is complete, go to Cacti's Plugin Management section, and Install \nand Enable the plugin.\n\nThere are a number of settings that are important that you can find under\nConsole \u003e Configuration \u003e Settings \u003e Flowview.\n\nThe minimum version of Cacti required for this plugin will be Cacti 1.2.27.\nHowever, you will have to install the patch to Cacti's database API in this\ncommit: c11405e584c012f675fb420acf78bcecc7d02d9f.\n\nIf you are running an older version of Cacti, you may run Flowview, but you\nwill not be able to leverage the MaxScale Shard Query feature.\n\nIf you are wanting to take advantage of the Shard Query implementation of \nFlowview, you must setup your Database so that it replicates itself to\nfrom one to many slave servers.  Then,  you must setup MaxScale.  Note that\nMaxScale is under a BSL license.  Therefore, if you wish to scale beyond\ntwo servers, in a commercial setting, you will need to reach out to MariaDB.com\nto obtain a license.\n\nYou can find real good tutorials at the following links.  Some of the information\nmay be out-dated in these links.  For example, the backup is super fast when\nusing the --parallel=X option, but the location of the file with the GTID of\nthe master has changed, and the format has changed slightly in the 11.x version\nof MariaDB.  Additionally, you have to add additional grants for both MaxScale\nand MaxScale Monitoring that the tutorials do not fully call out.\n\nIf found that the best way to setup a replica was to use mariabackup using the\noptions that they called out in the documentation.  It really simplifies the\nsetup.\n\n* MariaDB Replication Setup:\nhttps://mariadb.com/kb/en/setting-up-a-replica-with-mariabackup/\n* MariaDB Backup and Restore for Replication Setup:\nhttps://mariadb.com/kb/en/full-backup-and-restore-with-mariabackup/\n* MaxScale Setup:\nhttps://mariadb.com/kb/en/maxscale-24-02tutorials/\n* MariaDB SSL Setup: (No longer required as of MariaDB 11.3)\nhttps://mariadb.com/resources/blog/mariadb-maxscale-2-1-and-ssl-certificates/\n\n## Required:\n\nBefore you start, with this version of Flowview, you have to ensure that you are\nat MariaDB 10.5 or above.  Cacti has been shown to support MariaDB upto 11.4.x. \nMySQL 8.0+ is required. Unfortunately, MySQL does not support Aria Tables and will\ntherefore have lower performance than MariaDB for scanning data.\n\nThen, Install flowview just like any other plugin, just copy it into the plugin\ndirectory, and Use Console \u003e Plugin Management to Install and Enable.\n\nThis version of the flowview plugin no longer requires flowtools or\nOpenFlashCharts.  In fact the entire import and reporting process is handled\nthrough php and uses JavaScript based charting already available in Cacti.\n\nNote that additionally, you must install the Linux utility `ss` if it is\nnot already installed.  Netstat will help Cacti determine if the `flow-capture`\nservice in question is actually running.\n\nAfter installing, you should set your partitioning and retention settings from\nConsole \u003e Configuration \u003e Settings \u003e Flowview.  There is a flowview section there\nthat you can customize.\n\nNext you have to setup your Cacti server as a Flowview sink from your various\nsources.  Then, from Flowview \u003e Listeners, you must add the various listeners\nfor all your flow-capture sources.  It's critical that you specify the correct\nport, and if there is to be any filtering, having a value other than 0 for the\nallowed devices.\n\nYou must then setup the init.d or systemd service to receive captured data and\ntransfer into the Cacti database.  Check the README.md in the service folder to\ndescribe this process.  Any time you add a new listener, you must restart this\nservice.\n\n## System Tuning\n\nYou may be required to increase some system defaults such a max connections\nand UDP buffering to achieve high performance.  See your operating systems\ndocumentation on the use of the sysctl to increase somaxconn and your \nmax udp buffer space.  You can store your changes in /etc/sysctl.d/cacti.conf. \n\n## Automatic Flow Version Detection:\n\nThe new Cacti based flow-capture script will auto-detect either V5, V9 or IPFIX\nflows automatically.  So, can dynamically switch these streams versions without\nissue and you can have multiple streams coming into the same port at the same\ntime.  However, we recommend you have you watch the CPU utilization of the \nflow collector processes, and if they start consuming near 100% utilization,\nyou should add more listeners to spread the load.\n\n## Automatic Domain Resolution:\n\nThe flow-capture script will receive the flow data, and attempt to resolve the\ndomain names of the flows.  In the case that an IP Address does not properly\nresolve to a domain, Cacti automatically queries IANA to find the owner and\nassigned as 'assumed' domain for those flows.  If your Cacti server can not\nreach IANA, then those IP's will simply not be resolved.\n\n## Upgrading from Prior Versions\n\nSince the current release does not leverage flow-capture, you will need to\nmigrate your existing flow data into the Cacti database.  Before you perform\nthis migration, ensure that your Cacti system, has enough space to handle all\nthe flow data.  You should check the size of your existing flows, and then\nverify that you have enough space to handle the data inside of a MySQL database.\n\nOnce you have done this, simply run the 'import_flows.php' script and all your\nlegacy flow data will be imported.  Remember, it's important that you define\nyour partitioning scheme ahead of time, especially if you have large quantities\nof flow data streaming into the Cacti server.\n\n# Possible Bugs?\n\nIf you figure out this problem, goto GitHub and create a pulls request or open\nan issue.\n\n# Future Changes\n\nGot any ideas or complaints, please see the Cacti forums or GitHub for a\nresolution.\n\n-----------------------------------------------\nCopyright (c) 2004-2026 - The Cacti Group, Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcacti%2Fplugin_flowview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcacti%2Fplugin_flowview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcacti%2Fplugin_flowview/lists"}