0

Splunk の Python SDK ( http://docs.splunk.com/Documentation/PythonSDK ) を使用して Splunk サーバーに接続しようとしていますが、ParseError が発生します。

>>> pip install splunk-sdk
>>> import splunklib.binding as binding
>>> cargs = {}
>>> cargs['host'] = 'splunk.mydomain.com'
>>> cargs['scheme'] = 'https'
>>> cargs['port'] = 443
>>> cargs['username'] = 'my_username'
>>> cargs['password'] = 'my_password'
>>> c = binding.connect(**cargs)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/myframework/lib/python2.7/site-packages/splunklib/binding.py", line 867, in connect
    c.login()
  File "/myframework/lib/python2.7/site-packages/splunklib/binding.py", line 753, in login
    session = XML(body).findtext("./sessionKey")
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1302, in XML
    return parser.close()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1655, in close
    self._raiseerror(v)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1507, in _raiseerror
    raise err
xml.etree.ElementTree.ParseError: no element found: line 1, column 0

そのため、connect() に返されるページには、期待される「./sessionKey」テキストがありません。私が見た例はすべてホストに「localhost」を使用しているため、この外部ホストの事実に問題があるかどうかはわかりません。戻ってきたページを手に入れられたらいいのにと思います。

このホストは私の会社のネット上にあるので、アクセスの問題はないはずです。

何かが返されています。ポートを除外してこれをテストしたところ、次のようになりました。

エラー: [Errno 60] 操作がタイムアウトしました

それで、私はここで何が間違っていますか?

4

1 に答える 1

1

間違ったポートを使用しているようです。デフォルトでは、Splunk の管理ポートは 8089 です。変更していない限り、443 ではなく 8089 を使用する必要があります。

URL と資格情報を確認する別の方法は、SDK を試しているのと同じマシンで、コマンド ラインから cURL を使用してテストすることです。

curl -k https://splunk.mydomain.com:8089/services/auth/login -d username=my_username -d password=my_password
于 2013-05-03T06:37:56.197 に答える