This is possible now with straight SPL using the REST API. The below solution is based on SA-rest_get_lookup but with some fixes for escaping special CSV characters. Create a macro called remotelookup (Settings -> Advanced search -> Search macros). Destination app: Wherever you want it Name: remotelookup(2) Definition: rest splunk_server=$server$ /services/search/jobs/export search="| inputlookup $lookup$ | foreach * [eval <<FIELD>> = replace(replace(replace(replace(<<FIELD>>, \"\\n\", \"@@NewLine@@\"), \"\\r\", \"@@CarriageReturn@@\"), \"\\\"\", \"@@DoubleQuote@@\"), \"NULL\", \"@@NULL@@\")] | fillnull value=NULL | rename _* AS tmp_*" output_mode=csv
| fields value
| rex max_match=0 field=value "(?P<value>^.+)\s"
| eval header=mvindex(value,0), value=mvindex(value,1,mvcount(value))
| rex max_match=0 field=header "(?P<header>\"[^\"]+\"|[^,]+)"
| mvexpand value
| rex max_match=0 field=value "(?P<value>\"[^\"]+\"|[^,]+)"
| eval tuple=mvzip(header,value,"#####")
| fields tuple
| eval primarykey=md5(tostring(tuple))
| mvexpand tuple
| rex field=tuple "^(?P<field>.*)#{5}(?P<value>.*)$"
| eval field=trim(field,"\""), value=if(value=="NULL","",trim(value,"\""))
| fields primarykey field value
| eval {field}=value
| fields - name, field, value
| stats values(*) as * by primarykey
| fields - primarykey
| rename tmp_* AS _*
| fieldformat _time=if(isint(_time),strftime(_time, "%s"),_time)
| foreach * [
eval <<FIELD>> = replace(replace(replace(replace(<<FIELD>>, "@@NewLine@@", "
"), "@@CarriageReturn@@", ""), "@@DoubleQuote@@", "\""), "@@NULL@@", "NULL")
] Arguments: server,lookup Validation Expression: $server$!="" AND $lookup$!="" Validation Error Message: You must provide a server and a lookup. You can then call it this way. | `remotelookup("server name", "lookup.csv")` If you want to sync a local lookup to match the lookup on another server you can do this in a report and set it to run on a schedule. | `remotelookup("server name", "lookup.csv")`
| outputlookup lookup.csv One thing to note is that the server where the macro exists needs to have the remote server as a search peer so that it can access that server's REST API (Settings -> Distributed search -> Search peers).
... View more