0

如何为任何给定的(内置)SPLUNK REST API 端点创建一个持久的(或任何相关的)REST HANDLER?如何使用PersistentServerConnectionApplication类?

我已经浏览了https://gist.github.com/LukeMurphey/238004c8976804a8e79570d22721fd99但不知道从哪里开始以及如何制作一个。

4

1 回答 1

1

几年前,James Ervin 有一个关于 REST 处理程序的精彩 .conf 演示,https://conf.splunk.com/files/2016/slides/extending-splunks-rest-api-for-fun-and-profit .pdf

示例代码可从https://github.com/jrervin/splunk-rest-examples获得

詹姆斯的回声示例非常直接。确保您还注意 和 中必要的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
        }

建议您获取他的应用程序的副本并进行部署,确认一切正常,然后根据您的特定用例进行修改。

于 2020-02-13T23:04:45.643 回答