在OpenShift上打开Splunk转发器/接收器TCP端口

时间:2015-08-06 14:04:48

标签: openshift splunk

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

我已使用本指南设置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 }

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

2 个答案:

答案 0 :(得分:0)

您只能在端口80/443/8000/8443上公开收听,不允许使用其他tcp或udp端口(ssh / scp / sftp除外22)。您配置的专用端口仅供内部访问(在相同的齿轮上,或作为缩放应用程序的一部分安装在其自身的齿轮上)。让远程代理连接到端口9997上的应用程序只是不起作用。

答案 1 :(得分:0)

或者,您可以编写一个非常简单的splunk附加组件来监听该端口,这非常简单。 Splunk有一个SDK,您可以使用可变语言实现它。这是python的框架。有关更多信息,您可以看到UDP接收器的完整示例:link to the example,它不是英文帖子,但您可以从那里读取代码。

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))