首页 > 解决方案 > 通过 API 在 Splunk 中创建搜索查询(python 代码)

问题描述

我正在尝试通过 API 在 splunk 中进行搜索查询。我在https://docs.splunk.com/Documentation/Splunk/8.0.4/RESTTUT/RESTsearches上找到了参考代码。我尝试在 jupyter notebook 上运行代码。

但它给出了连接被拒绝的错误。

代码:

    from __future__ import print_function
    from future import standard_library
    standard_library.install_aliases()
    import urllib.request, urllib.parse, urllib.error
    import httplib2
    from xml.dom import minidom

    baseurl = 'https://localhost:8089'
    userName = 'username'
    password = 'password'

    searchQuery = '| inputcsv foo.csv | where sourcetype=access_common | head 5'

    # Authenticate with server.
    # Disable SSL cert validation. Splunk certs are self-signed.
    serverContent = httplib2.Http(disable_ssl_certificate_validation=True).request(baseurl +                         '/services/auth/login','POST', headers={}, body=urllib.parse.urlencode({'username':userName,         'password':password}))[1]

    sessionKey = minidom.parseString(serverContent).getElementsByTagName('sessionKey')        [0].childNodes[0].nodeValue

    # Remove leading and trailing whitespace from the search
    searchQuery = searchQuery.strip()

    # If the query doesn't already start with the 'search' operator or another
    # generating command (e.g. "| inputcsv"), then prepend "search " to it.
    if not (searchQuery.startswith('search') or searchQuery.startswith("|")):
searchQuery = 'search ' + searchQuery

            print(searchQuery)

    # Run the search.
    # Again, disable SSL cert validation.
    print(httplib2.Http(disable_ssl_certificate_validation=True).request(baseurl +         '/services/search/jobs','POST',
        headers={'Authorization': 'Splunk %s' % sessionKey},body=urllib.parse.urlencode({'search': searchQuery}))[1]) '''

错误:

    ConnectionRefusedError: [Errno 111] Connection refused

任何帮助将不胜感激。

标签: pythonapisplunkconnection-refused

解决方案


ConnectionRefusedError: [Errno 111] Connection refused当您的脚本无法创建到服务器的 TCP 连接时抛出。您能否确认使用telnet该服务器正在运行并允许在端口上进行连接8089。这看起来不像是 HTTP 或权限问题,错误是堆栈中较低的东西。


推荐阅读