0

I am trying to run an external python script "PyClient.py" on Splunk, and it requires the external gRPC module. I installed the gRPC module locally following the quickstart python guide from http://www.grpc.io/docs/quickstart/python.html . The logs generated in the splunkd file are as follows:

    06-16-2017 18:20:49.728 +0530 WARN  IntrospectionGenerator:resource_usage -   RU - Failure executing PDH query, skipping getting iostats data this collection cycle. Status code is -2147481643
    06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" Traceback (most recent call last):
    06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""   File "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py", line 2, in <module>
    06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""     import grpc
    06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""   File "C:\Program Files\Splunk\etc\apps\Test\bin\grpc\__init__.py", line 37, in <module>
    06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""     from grpc._cython import cygrpc as _cygrpc
    06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
    06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" Traceback (most recent call last):
    06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""   File "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py", line 2, in <module>
    06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""     import grpc
    06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""   File "C:\Program Files\Splunk\etc\apps\Test\bin\grpc\__init__.py", line 37, in <module>
    06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py""     from grpc._cython import cygrpc as _cygrpc
    06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.

Does anyone have any suggestions on how to clear this error? Or how to install the external gRPC module on Splunk?

Thanks in advance.

4

2 回答 2

1

这看起来像是 32/64 位 Windows 不兼容。

安装 gRPC 时,请确保您明确使用 Python 的 Splunk 发行版到pip install grpcio.

C:\Program Files\Splunk\<Python2.7 binary> -m pip install --upgrade pip

C:\Program Files\Splunk\<Python2.7 binary> -m pip install grpcio

于 2017-06-27T23:48:25.427 回答
0

我已经找到了解决方案。我必须为我的 python 脚本编写一个包装脚本,该脚本取消设置或删除(del)“LD_LIBRARY_PATH”和“PYTHONPATH”。对于基于 Linux 的系统,我还必须取消设置或删除(删除)“PATH”环境变量。完成上述步骤后,Splunk 使用了我本地版本的 Python 和已安装的模块。它奏效了。希望这对尝试在 Splunk 中使用外部模块但似乎无法弄清楚为什么它不起作用的任何人有所帮助。:)

于 2017-06-28T03:46:16.597 回答