在 OpenShift 上打开 Splunk forwarder/receiver TCP 端口

Open Splunk forwarder/receiver TCP port on OpenShift

我需要在 OpenShift 上打开 TCP 端口 9997,以便 Splunk 能够侦听来自其他服务器上转发器的传入数据。

我已经使用本指南设置了 Splunk:http://www.kelvinism.com/2013/11/free-splunk-hosting.html 但我不知道如何将另一个 TCP 端口添加到 manifest.yml 文件。我为新的 OpenShift 实例尝试了以下操作,但没有成功。

  - Private-IP-Name:   IP
    Private-Port-Name: PORT_FORWARDER
    Private-Port:      9997
    Public-Port-Name:  PROXY_PORT_FORWARDER
    Options:           { "ssl_to_gear": true }

我是否需要配置盒式磁带的其他部分来读取我的新端口并在其他地方设置一些配置?

您将只能在端口 80/443/8000/8443 上公开侦听,不允许进入其他 tcp 或 udp 端口​​(ssh/scp/sftp 的 22 端口除外)。您配置的专用端口仅供内部访问(在同一设备上,或作为扩展应用程序的一部分安装在自己的设备上)。让远程代理连接到端口 9997 上的应用程序是行不通的。

或者,您可以编写一个非常简单的 splunk 插件来侦听该端口,这非常简单。 Splunk 有一个 SDK,您可以使用可变语言来实现它。这是 python 的框架。有关详细信息,您可以查看 UDP 接收器的完整示例:link to the example,它不是英语 post,但您可以从那里阅读代码。

import sys

from splunklib.modularinput import *

class MyScript(Script):

    def get_scheme(self):
        # Returns scheme.

    def validate_input(self, validation_definition):
        # Validates input.

    def stream_events(self, inputs, ew):
        # Splunk Enterprise calls the modular input, 
        # streams XML describing the inputs to stdin,
        # and waits for XML on stdout describing events.

        # TODO: implement a socket to listen and receive the 
        # message then send by Event()

if __name__ == "__main__":
    sys.exit(MyScript().run(sys.argv))