opFlow 2.5 no longer uses the age of the records to determine when to delete them. Records are now limited by the size of the collection, flows and conversations are stored separately so they can have different sizes. This guarantees that you will never run out of space because a large number of flows came in a short amount of time.
Upgrading your existing collections can take up to 3 times the current space they are using and so upgrading can take a long time and will use a lot of space. All of the extra space can be reclaimed in the end but is needed to upgrade, if the space cannot be found the setup tool will not continue as it can easily get into the situation where your data is unusable and you are out of space. If you really need to keep your existing data please contact Opmantek support and we can guide you through your upgrade.
This documentation assumes you are upgrading from 2.4.X and currently have opFlow reports running.
Decide how big you would like your opFlow data to be (and please read the introduction). Your best option is to drop the existing database and start fresh. If you have other Opmantek applications using the existing database, change the db_name in your existing configuration to 'opflow' and remove the opFlow specific collections from the current database (probably 'nmis'). Then run repairDatabase on the existing database to reclaim the space.
Backup your existing installation
cd /usr/local cp -r opmantek opmantek_backup_`date +%F-%T`
service opflowd stop
cd /usr/local tar -zxvf /tmp/opFlow-Linux-x86_64-2.5.X-release.tar.gz
Update config files
cd /usr/local/opmantek ./bin/opupdateconfig.pl install/opFlow.nmis conf/opFlow.nmis ./bin/opupdateconfig.pl install/opCommon.nmis conf/opCommon.nmis
opFlow database now uses capped sizes, please adjust the following config settings to make sure they fit on your partition and are the size you want (the defaults are listed):
# /usr/local/opmantek/conf/opFlow.nmis: 'opflow_db_conversation_collection_size' => 16106127360, #15G 'opflow_db_flow_collection_size' => 5368709120 # 5G
To see the current sizes or check what the current config will do run the setup tool:
If you do not want to keep existing data, drop your current database, which will free all space and then skip the next step (7).
When you are happy with the configuration, run the setup tool again with force, this will upgrade your existing collections to capped collections, expanding/shrinking based on the requested size. Expect this to take a while.
/usr/local/opmantek/bin/opflow_setup.pl setup=db_config force=1
Optional: running the setup tool with force, run repairDatabase on mongo to reclaim space, as it will likely be 2x larger than it was previously. You must have free space = current size of DB to perform this operation. Expect this to take a while.
mongo use nmis; // (replace with custom db name if you changed from defaults, might be opflow) db.auth('opUserRW','op42flow42'); // again, replace with custom credentials if you have changed them from defaults db.repairDatabase();
cd /usr/local/opmantek/bin ./opfixperms.pl
Make sure everything is setup:
Double check script output for any errors or activities you may need to perform, also double check that the existing cron entries match up with the ones listed by the setup tool.
service opflowd start
Verify/Edit /etc/init.d/flowd, /etc/init.d/mongod and /etc/init.d/opflowd
#change this line: . /etc/init.d/functions #to this: . /lib/lsb/init-functions