Getting Data In
Highlighted

Environment variable in scripted input relative to App directory

Contributor

I provide an App that uses an executable on Windows systems to generate some data. This program is located in the bin directory of my App named "TA-myapp". In the inputs.conf I set a scripted input that executes the program and indexes the output.

[script://$SPLUNK_HOME/etc/apps/TA-myapp/bin/evaluator.exe]

My problem is that our customer wants to deploy different versions of our app with different settings. So he renames myapp to myapp1 and myapp2 ... and so on.

Is there a environment variable that references the App home directory so that I could use that variable to configure an input like this:

[script://$APP_HOME/bin/evaluator.exe]

I am using $APP_HOME in that example because I've found references in different splunk developer documentation pages but it doesn't work. The splunkd.log states:

ERROR FrameworkUtils - Incorrect path to script: \$APP_HOME\bin\evaluator.exe.  Script must be located inside $SPLUNK_HOME\bin\scripts.
Highlighted

Re: Environment variable in scripted input relative to App directory

Motivator

No there isn't anything like $APP_HOME.

Have you considered using modular input instead of scripted input as it provides more control with multiple configurations.

0 Karma
Highlighted

Re: Environment variable in scripted input relative to App directory

Motivator

Hi,

You can try below :

you can run below command :

C:\Program Files\Splunk\bin>splunk envvars > setSplunkEnv.bat

it will create file setSplunkEnv.bat under C:\Program Files\Splunk\bin with below content:

SET Path=C:\Program Files\Splunk\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Users\balaji\AppData\Local\Microsoft\WindowsApps
SET HOSTNAME=balu-pc
SET SPLUNKHOME=C:\Program Files\Splunk
SET SPLUNK
DB=C:\Program Files\Splunk\var\lib\splunk
SET SPLUNKETC=C:\Program Files\Splunk\etc
SET RANDFILE=C:\Program Files\Splunk\var\run.rnd
SET SPLUNK
SERVERNAME=Splunkd
SET SPLUNK
WEBNAME=splunkweb
SET PYTHONPATH=C:\Program Files\Splunk\bin;C:\Program Files\Splunk\Python-2.7\Lib\site-packages\win32;C:\Program Files\Splunk\Python-2.7\Lib\site-packages;C:\Program Files\Splunk\Python-2.7\Lib
SET PYTHONHASHSEED=random
SET NODE
PATH=C:\Program Files\Splunk\lib\nodemodules
SET OPENSSL
CONF=C:\Program Files\Splunk\openssl.cnf
SET LDAPCONF=C:\Program Files\Splunk\etc\openldap\ldap.conf

you can add new line to the content of file like below:

SET APP_HOME=C:\Program Files\Splunk\etc\apps\myapp

you need to change myapp to new name when ever you deployed new app to apps.

0 Karma
Highlighted

Re: Environment variable in scripted input relative to App directory

Explorer

Splunk does not actually make environment variables available inside .conf files, but you CAN use " . " to represent the app path like so:

[script://.\bin\evaluator.exe]
0 Karma