Using modular inputs
Since Splunk 5.0, the ability to extend data input functionality has existed such that custom input types can be created and shared while still allowing for user customization to meet needs.
Modular inputs build further upon the scripted input model. Originally, any additional functionality required by the user had to be contained within a script. However, this presented a challenge, as no customization of this script could occur from within Splunk itself. For example, pulling data from a source for two different usernames needed two copies of a script or meant playing around with command-line arguments within your scripted input configuration.
By leveraging the modular input capabilities, developers are now able to encapsulate their code into a reusable app that exposes parameters in Splunk and allows for configuration through processes familiar to Splunk administrators.
This recipe will walk you through how to install the Command Modular Input, which allows for periodic execution of commands and subsequent indexing of the command output. You will configure the input to collect the data outputted by the vmstat
command in Linux and the systeminfo
command in Windows.
Getting ready
To step through this recipe, you will need a running Splunk server with a connection to the internet. No other prerequisites are required.
You will also need to download the Command Modular Input Add-on app from Splunkbase. This app can be found at https://splunkbase.splunk.com/app/1553/.
How to do it...
Follow the steps in this recipe to configure a modular input:
- Log in to your Splunk server.
- From the
Apps
menu in the upper left-hand corner of the home screen, click on the gear icon: - The
Apps settings
page will load. Then, click on theInstall App from file
button. - Click the
Choose File
button and select the app file that was previously downloaded from Splunkbase, then click theUpload
button: - After the app has been installed, from the menu in the top right-hand corner, click on the
Settings
menu and then click on theData inputs
link. - Click on the
Command
section: - In the
Mod Input Name
field, enter a name for the input ofSystemInfo
. If you are using Linux, enter/usr/bin/vmstat
in theCommand Name
field. If you are using Windows, enterC:\Windows\System32\systeminfo.exe
in theCommand Name
field:
Note
Usethe full path if the command to be executed cannot be found on the system PATH.
- In the
Command Arguments
field, enter any argument that needs to be passed to the command listed in theCommand Name
field. In theCommand Execution Interval
field, enter a value in seconds for how often the command should be executed (in this case, we will use 60 seconds). If the output is streamed, then leave this field empty and check theStreaming Output
field: - In the
Source type
section, you have the option to either select a predefined source type or selectManual
and enter a value. For this recipe, selectManual
as the source type and entercp01_modular_input
as the value for the source type. - Click
Next
. - If everything was successful, you should see a
Modular input has been created successfully
message:
- Click on the
Start searching
button. TheSearch & Reporting
app will open with the search already populated based on the settings supplied earlier in the recipe. Splunk is now configured to execute the modular input you provided, every 60 seconds, in accordance with the specified interval. You can search for this data returned by the scripted input using the following search over anAll time
time range:
sourcetype=cp01_modular_input
How it works...
Modular inputs are bundled as Splunk apps and, once installed, contain all the necessary configuration and code to display them in the Data inputs
section of Splunk. In this recipe, you installed a modular input application that allows for periodic execution of commands. You configured the command to execute every minute and to index the results of the command each time, giving the results a source type of cp01_modular_input
.
Modular inputs can be written in several languages and need to follow only a set of interfaces that expose the configuration options and runtime behaviors. Depending on the design of the input, they will either run persistently or run at an interval and will send data to Splunk as they receive it.
Note
You can find several other modular inputs, including REST API, SNMP, and PowerShell, on the Splunk Apps site (https://splunkbase.splunk.com).
There's more...
To learn how to create your own modular input, refer to the Modular Inputs section of the Developing Views and Apps for Splunk web manual located at https://docs.splunk.com/Documentation/Splunk/latest/AdvancedDev/ModInputsIntro.
See also
- The Indexing files and directories recipe
- The Getting data through network ports recipe
- The Using scripted inputs recipe