为任何 Splunk 的 REST 端点创建 REST 处理程序
Creating a REST Handler for any of Splunk's REST endpoints
如何为任何给定的(内置的)SPLUNK REST API 端点创建持久性(或任何与此相关的)REST HANDLER?如何使用 PersistentServerConnectionApplication class ?
我已经完成了 https://gist.github.com/LukeMurphey/238004c8976804a8e79570d22721fd99 但不知道从哪里开始以及如何制作。
几年前 James Ervin 有一个关于 REST Handlers 的很棒的 .conf 演示,https://conf.splunk.com/files/2016/slides/extending-splunks-rest-api-for-fun-and-profit.pdf
示例代码可从 https://github.com/jrervin/splunk-rest-examples
获得
James 的 echo 示例非常简单明了。确保您还注意 web.conf
和 restmap.conf
.
中必要的添加
import os
import sys
if sys.platform == "win32":
import msvcrt
# Binary mode is required for persistent mode on Windows.
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
from splunk.persistconn.application import PersistentServerConnectionApplication
class EchoHandler(PersistentServerConnectionApplication):
def __init__(self, command_line, command_arg):
PersistentServerConnectionApplication.__init__(self)
def handle(self, in_string):
return {'payload': in_string, # Payload of the request.
'status': 200 # HTTP status code
}
建议您只获取他的应用程序的副本并进行部署,确认一切正常,然后针对您的特定用例修改 if。
如何为任何给定的(内置的)SPLUNK REST API 端点创建持久性(或任何与此相关的)REST HANDLER?如何使用 PersistentServerConnectionApplication class ?
我已经完成了 https://gist.github.com/LukeMurphey/238004c8976804a8e79570d22721fd99 但不知道从哪里开始以及如何制作。
几年前 James Ervin 有一个关于 REST Handlers 的很棒的 .conf 演示,https://conf.splunk.com/files/2016/slides/extending-splunks-rest-api-for-fun-and-profit.pdf
示例代码可从 https://github.com/jrervin/splunk-rest-examples
获得James 的 echo 示例非常简单明了。确保您还注意 web.conf
和 restmap.conf
.
import os
import sys
if sys.platform == "win32":
import msvcrt
# Binary mode is required for persistent mode on Windows.
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
from splunk.persistconn.application import PersistentServerConnectionApplication
class EchoHandler(PersistentServerConnectionApplication):
def __init__(self, command_line, command_arg):
PersistentServerConnectionApplication.__init__(self)
def handle(self, in_string):
return {'payload': in_string, # Payload of the request.
'status': 200 # HTTP status code
}
建议您只获取他的应用程序的副本并进行部署,确认一切正常,然后针对您的特定用例修改 if。