Splunk Indexer Cluster Deployment
Environment Setup
·        
Download Ubuntu Linux 12.04.3 LTS or CentOS 6.7 (Any linux
flavor) 
·        
Download Latest Splunk Enterprise tar ball ( For simplicity) 
·        
Download latest Universal Splunk Forwarder tar ball.
Pre-requisites
·        
Do the necessary network settings and assign static IP if
preferred.
·        
Assign the hostname in network and hosts files.
Overview
1.      Identify requirement
Index cluster, with RF 2 and SF 2
For this number of nodes required will be RF +2 
2indexer, 1 master node and 1 search head.
2.      Install the Splunk Enterprise cluster instances on your
network
Install Splunk Enterprise on 4 nodes that is 2RF so two
search peer nodes(indexers) and 1 master and 1search head.
 You need at least the replication factor number
of peer
nodes, but you
might want to add more peers to boost indexing capacity, as mentioned in step
1d.
3.      Enable clustering on the instances:
Important: When the master starts up for the first time, it will
block indexing on the peers until you have enabled and restarted the replication
factor number of peers.
c. Enable the cluster search head. It's easier to set up a
search head for a cluster than for a non-clustered group of indexers. See "Enable
the search head".
Step 1> Identify
the nodes with their roles and assign hostname and name for simplicity and easy
management. In the below scenario I’m setting up 1 Search Head, 2 Indexers, 1
Master Node and 1 forwarder node.
Step 2>
Install Splunk Enterprise binaries on the Search Head, Indexer_01 and
Indexer_02 assigned machines. (Extract the Splunk tar ball to the /opt folder
as explained in the single node installation)
[root@splunk_standalone
sbk_files]# tar -zxvf splunk-6.3.1-f3e41e4b37b2-Linux-x86_64.tgz -C /opt
Search
Head Machine
[root@search_head
splunk]# pwd
/opt/splunk
[root@search_head
splunk]# ll
total 1800
drwxr-xr-x.  4 
506  506    4096 Oct 30 
2015 bin
-r--r--r--.  1 
506  506      57 Oct 30 
2015 copyright.txt
drwxr-xr-x.
16  506 
506    4096 May  6 04:36 etc
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 include
drwxr-xr-x.  6 
506  506    4096 Oct 30 
2015 lib
-r--r--r--.  1 
506  506   62027 Oct 30 
2015 license-eula.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 openssl
-r--r--r--.  1 
506  506     509 Oct 30 
2015 README-splunk.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 share
-r--r--r--.  1 
506  506 1737206 Oct 30  2015
splunk-6.3.1-f3e41e4b37b2-linux-2.6-x86_64-manifest
drwx--x--x.  6 root root   
4096 May  6 04:06 var
[root@search_head
splunk]#
Indexer_01
Machine
[root@indexer_01
splunk]# pwd
/opt/splunk
[root@indexer_01
splunk]# ll
total 1800
drwxr-xr-x.  4 
506  506    4096 Oct 30 
2015 bin
-r--r--r--.  1 
506  506      57 Oct 30 
2015 copyright.txt
drwxr-xr-x.
16  506 
506    4096 May  6 04:35 etc
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 include
drwxr-xr-x.  6 
506  506    4096 Oct 30 
2015 lib
-r--r--r--.  1 
506  506   62027 Oct 30 
2015 license-eula.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 openssl
-r--r--r--.  1 
506  506     509 Oct 30 
2015 README-splunk.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 share
-r--r--r--.  1 
506  506 1737206 Oct 30  2015
splunk-6.3.1-f3e41e4b37b2-linux-2.6-x86_64-manifest
drwx--x--x.  6 root root   
4096 May  6 04:07 var
[root@indexer_01
splunk]#
Indexer_02
Machine
[root@indexer_02
splunk]# pwd
/opt/splunk
[root@indexer_02
splunk]# ll
total 1800
drwxr-xr-x.  4 
506  506    4096 Oct 30 
2015 bin
-r--r--r--.  1 
506  506      57 Oct 30 
2015 copyright.txt
drwxr-xr-x.
16  506 
506    4096 May  8 22:15 etc
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 include
drwxr-xr-x.  6 
506  506    4096 Oct 30 
2015 lib
-r--r--r--.  1 
506  506   62027 Oct 30 
2015 license-eula.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 openssl
-r--r--r--.  1 
506  506     509 Oct 30 
2015 README-splunk.txt
drwxr-xr-x.  3  506  506   
4096 Oct 30  2015 share
-r--r--r--.  1 
506  506 1737206 Oct 30  2015
splunk-6.3.1-f3e41e4b37b2-linux-2.6-x86_64-manifest
drwx--x--x.  6 root root   
4096 May  8 22:08 var
[root@indexer_02
splunk]#
Master
Node Machine 
[root@c_master_node
splunk]# pwd
/opt/splunk
[root@c_master_node
splunk]# ll
total 1800
drwxr-xr-x.  4 
506  506    4096 Oct 30 
2015 bin
-r--r--r--.  1 
506  506      57 Oct 30 
2015 copyright.txt
drwxr-xr-x.
16  506 
506    4096 May  9 01:53 etc
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 include
drwxr-xr-x.  6 
506  506    4096 Oct 30 
2015 lib
-r--r--r--.  1 
506  506   62027 Oct 30 
2015 license-eula.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 openssl
-r--r--r--.  1 
506  506     509 Oct 30 
2015 README-splunk.txt
drwxr-xr-x.  3 
506  506    4096 Oct 30 
2015 share
-r--r--r--.  1 
506  506 1737206 Oct 30  2015
splunk-6.3.1-f3e41e4b37b2-linux-2.6-x86_64-manifest
drwx--x--x.  6 root root   
4096 May  9 01:49 var
[root@c_master_node
splunk]#
Step 3>
Install Universal Forwarder binaries into c_u_fwd_01 name assigned machine. (Extract
the Splunk tar ball to the /opt folder as explained in the single node
installation)
[root@splunk_standalone
sbk_files]# tar -zxvf splunk-6.3.1-f3e41e4b37b2-Linux-x86_64.tgz -C /opt
C_U_Fwd_01
Machine
[root@u_fwd_01
splunkforwarder]# pwd
/opt/splunkforwarder
[root@u_fwd_01
splunkforwarder]# ll
total 132
drwxr-xr-x.  3 
506  506  4096 Oct 30 
2015 bin
-r--r--r--.  1 
506  506    57 Oct 30 
2015 copyright.txt
drwxr-xr-x. 13  506 
506  4096 May  6 04:08 etc
drwxr-xr-x.  2 
506  506  4096 Oct 30 
2015 include
drwxr-xr-x.  4 
506  506  4096 Oct 30 
2015 lib
-r--r--r--.  1 
506  506 62027 Oct 30  2015 license-eula.txt
drwxr-xr-x.  3 
506  506  4096 Oct 30 
2015 openssl
-r--r--r--.  1 
506  506   509 Oct 30 
2015 README-splunk.txt
drwxr-xr-x.  3 
506  506  4096 Oct 30 
2015 share
-r--r--r--.  1 
506  506 31876 Oct 30  2015
splunkforwarder-6.3.1-f3e41e4b37b2-linux-2.6-x86_64-manifest
drwx--x--x.  6 root root 
4096 May  6 04:08 var
[root@u_fwd_01
splunkforwarder]#
Configuring
the instances into distributed deployment
Enable the master
To enable an indexer as the master node:
1. Click Settings in the upper
right corner of Splunk Web.
2. In the Distributed environment group,
click Clustering.
3. Select Enable clustering.
4. Select Master node and
click Next.
5. There are a few fields to fill out:
-  Replication
     Factor.The replication
     factor determines how many copies of data the cluster
     maintains. The default is 3. For more information on the replication
     factor, see "Replication
     factor". Choose the right replication factor now. It is
     inadvisable to increase the replication factor later, once the cluster has
     significant amounts of data.
-  Search
     Factor. The search factor determines
     how many immediately searchable copies of data the cluster maintains. The
     default is 2. For more information on the search factor, see "Search
     factor". Choose the right search factor now. It is highly
     inadvisable to increase the search factor later, once the cluster has
     significant amounts of data.
-  Security
     Key. This is the key that authenticates communication between the
     master and the peers and search heads. The key must be
     the same across all cluster instances. If you leave the field empty here,
     leave it empty on the peers and search heads as well.
6. Click Enable master node.
7. The message appears, "You must restart
Splunk for the master node to become active. You can restart Splunk from Server
Controls." Click Go to Server Controls to go to the
Settings page where you can initiate the restart.
Enable the peer
To enable an indexer as a peer node:
1. Click Settings in the upper
right corner of Splunk Web.
2. In the Distributed environment group,
click Clustering.
3. Select Enable clustering.
4. Select Peer node and
click Next.
5. There are a few fields to fill out:
-  Master
     IP address or Hostname. Enter the master's IP address or hostname. For
     example: https://10.152.31.202.
-  Master
     port. Enter the master's management port. For example: 8089.
-  Peer
     replication port. This is the port on which the peer receives
     replicated data streamed from the other peers. You can specify any
     available, unused port for this purpose. This port must be different from
     the management port and receiving port.
-  Security
     key. This is the key that authenticates communication between the
     master and the peers and search heads. The key must be
     the same across all cluster instances. If the master has a security key,
     you must enter it here.
6. Click Enable peer node.
7. The message appears, "You must restart
Splunk for the peer node to become active." Click Go to Server
Controls to go to the Settings page where you can initiate the
restart.
8. Repeat this process for all the cluster's
peer nodes.
Enable the search head
To enable a Splunk instance as a cluster search head:
1. Click Settings in the upper
right corner of Splunk Web.
2. In the Distributed environment group,
click Clustering.
3. Select Enable clustering.
4. Select Search head node and
click Next.
5. There are a few fields to fill out:
-  Master
     IP address or Hostname. Enter the master's IP address or hostname. For
     example: https://10.152.31.202.
-  Master
     port. Enter the master's management port. For example: 8089.
-  Security
     key. This is the key that authenticates communication between the
     master and the peers and search heads. The key must be
     the same across all cluster instances. If the master has a security key,
     you must enter it here.
6. Click Enable search head node.
7. The message appears, "You must restart
Splunk for the search node to become active. You can restart Splunk from Server
Controls" ClickGo to Server Controls to go to the Settings
page where you can initiate the restart.
Use forwarders to get your data into the
indexer cluster
Configure
the connection from forwarder to peer node
There are three
steps to setting up connections between forwarders and peer nodes:
1. Configure the peer nodes to receive
data from forwarders.
2. Configure the forwarders to send data
to the peer nodes.
3. Enable indexer acknowledgment for each
forwarder. This step is required to ensure end-to-end data fidelity. If that is
not a requirement for your deployment, you can skip this step
Example: A load-balancing forwarder with indexer
acknowledgment
Here's a sample outputs.conf configuration for a
forwarder that's using load balancing to send data in sequence to three peers
in a cluster. It assumes that each of the peers has previously been configured
to use 9997 for its receiving port:
[tcpout]
defaultGroup=my_LB_peers
defaultGroup=my_LB_peers
[tcpout:my_LB_peers]
autoLBFrequency=40
server=10.10.10.1:9997,10.10.10.2:9997,10.10.10.3:9997
useACK=true
autoLBFrequency=40
server=10.10.10.1:9997,10.10.10.2:9997,10.10.10.3:9997
useACK=true


 




