Hello && Welcome @occamschainsaw
I did this upgrade process 3+ years ago. I might be able to give you some insight on what I did.
Checked a checkpoint on all my VM’s (Safety first)
That is correct.
Before upgrading Insure you have the latest version of Graylog 2.x
Yes , this is correct.
Before upgrading Insure you have the latest version of MongoDb 3.x
NOTE: I found this out when upgrade Mongodb version.
mongo >> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
Executing that command once the new version of MongoDb is installed should show the same version that is installed.
Lets say you installed MongoDb 4.0. When you execute that command above it shows MongoDb 3.6
The next command would be is which enable the new features.
mongo >> db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
You may want to read about it here
Before upgrading Insure you have the latest version of Elasticsearch 6.x
I personal would upgrade Elasticsearch to 7.0 , then to 7.10.
I would highly suggest when you upgrade a major versions, check the status of that service out to insure it all running as expected before upgrading further.
Your steps seam correct. Graylog to version 3.3 upgrade MongoDb next to 4.0 then I would upgrade Elasticsearch to 7.0 . wait and check it out. Then full upgrade every to the compatible versions.
EDIT: Special Note, be aware there are Graylog configuration that are no longer in the newer versions. This will create errors stating it cant find packages or settings. You either have to remove old plugins that are no longer needed and/or configurations that might not be valid. Specially notifications template, alert settings, and Content Packs.