I'm considering to build a shared Splunk instance and offer it to our hosting customers. Each customers data goes to their own index and their search scope is limited to that index, so security/customer separation is ok.
But if a single customer suddenly generates more data, than our license permits, then he can block the other customers from searching (well - if it happens 7 times in a rolling 30 days, at least). That situation is of cause not acceptable.
Is there any way to stop incoming data or limit it to a certain amount?
Best regards, Karsten
You can edit limits.conf to set a maximum thruput variable. If applied at an indexer this will limit the indexer to a certain volume per second. You can set maxKBps to a number that will work out to your license size over 24 hours. If your license is 30 GB for example, you should set maxKBps to 364 (30*1024*1024/24/60/60): limits.conf
[thruput] maxKBps = 364
Now I am not sure how fair the indexer limiting is when you are getting data from a lot of sources. Not sure if anything may get favored treatment.
To ensure a fair distribution, you could use (lightweight) forwarders to get the data into Splunk. Theno you could edit limits.conf on each forwarder and set maxKBps to a number that will not blow your license.
For example, let's say you have a 30 GB/day license, and 10 customers. In order to not blow your license, you will allow every customer 3 GB/day of indexed volume. That works out to be about 36 KBps per customer (3*1024/24/60/60) if you have data coming in over a 24 hour period. If you have 3 forwarders per customer, you could limit each at 12 KBps in limits.conf to be guaranteed not to blow your index limit:
[thruput] maxKBps = 12
Now this is kind of a pain in the butt to do, so I would probably go with the indexer limiting at first, forwarder second. Oh, or just buy a bigger license! 😉
Can you get Splunk to divide your license into multiple smaller licenses? Then you could start a separate indexer for each customer (on the same server).
You could configure them all as search-peers for your own searching purposes.
You could also customize apps and look and feel for each of the customers if you had this configuration.
It might be better to sub-divide the licenses and use different Indexers vs. limiting the bandwidth via limits.conf.
On Splunk 4.2 you can create different licensing pools for your different Indexers without asking Splunk's Support to cut the license into smaller licenses.