I have a Splunk heavy forwarder collecting data from various endpoints, which then passes up to the Indexers. We recently had a config error that disconnected the HF from the IDX for a few hours. Some data was lost, some was not.
We have PLENTY of disk space on Heavy Forwarders and our understanding was the HF would buffer/cache until the indexers came online. This does not seem to be true. Or was there a setting I simply missed?
There are settings in outputs.conf for buffers and persistent queues. You need to set them on your heavy forwarder.
However, a more fundamental question is - why are you using a heavy forwarder as a collection point? There are good reasons to do that, but it also creates a possible single point of failure. Unless you have a compelling reason, perhaps you can ditch the heavy forwarder altogether and go straight to the indexers.
Or perhaps you should consider having multiple heavy forwarders, to eliminate the single point of failure problem...