故障排除
能够在开发插件时调试和排除排除并排除故障是很重要的。
ui
通过查看错误和日志选项卡,可以在“作业”页面上的UI中找到错误和调试信息。
日志
引擎和Web服务包含可能有助于诊断问题的日志。
启用调试日志记录以通过添加以下行来充分利用它们/pt/komand/etc/web.conf.和/pt/komand/etc/engine.conf.:
komand_log_level = debug.
然后重新启动服务:
1
SystemCtl重启Komand-Engine
2
systemctl重新启动komand-web
现在,调查日志:
1
tail - f /var/log/komand/web.log
2
tail -f /var/log/komand/engine.log.
容器
您可以通过与Docker进行交互来查看运行容器的日志。如果在UI中的触发器未创建作业的情况下,这是有帮助的。为此,您需要在InsightConnect Orchestrator上或具有root等特权帐户的Komand主机上。
获取容器ID:
1
root @ localhost〜]#docker ps
2
容器ID图像命令创建状态端口
3.
名称
4.
Ba7CDCD752FB Komand / Twitter:1.0.0“/ usr / local / bin / koman”12分钟前12分钟
查看日志实时从运行容器按ID运行:
1
[root @ localhost〜]#docker logs -f ba7cdcd752fb
2
信息:root:使用Dispatcher Config:{U'URL':
3.
U'HTTP://127.0.0.1:8000 / v2 / workflows / 0a64d852-8384-43f3-b29e-1be835b3b018 /事件?内部= 1&api_key = 2981d3fb-d7ca-47d7-9a05-ceb2123271d2'}
4.
信息:root:Connect:创建Twitter客户端。
5.
info:root:关于创建API客户端的权利
6.
信息:root:创建API客户端
7.
信息:Requests.Packages.URLLIB3.CONNECTIONPOOL:启动新的HTTPS连接(1):API.Twitter.com
8.
信息:Requests.Packages.URLLIB3.CONNECTIONPOOL:启动新的HTTPS连接(1):API.Twitter.com
9.
信息:root:连接:连接!ID:778783652834582529,用户名:Rusty Shackleford,ScreenName:DoctorPeepers12
10.
info:root:opencachefile:/ var / cache / triggers_twitter_messages,返回它
11.
info:root:运行:迭代主循环
12.
info:root:opencachefile:/ var / cache / triggers_twitter_messages,返回它
13.
信息:root:运行:缓存ID为787384615166152708。
14.
信息:Requests.Packages.URLLIB3.CONNECTIONPOOL:启动新的HTTPS连接(1):API.Twitter.com
15.
信息:root:获取消息:有0条消息。
16.
信息:root:获取消息:下一个睡眠持续时间设置为360秒。
17.
信息:root:运行:没有新消息。睡觉360秒。
您还可以使用侧车容器方法调试运行的插件容器实时。我们准备了一个带有基本工具的调试容器,您可以使用
#docker拉komand / python-debug-slim-plugin
有调试图像后,找到要调试的运行插件容器的容器ID或名称:
1
#docker ps.
2
E0A52E7DA434 Rapid7 / Kafka:1.0.2“/ Komand / Plugins / Bin ......”4周前Up 4周0.0.0.0:10002-> 1000001/tcp Rapid7_kafka_1.0.2_action
接下来,我们使用设置的调试容器运行,将其附加到运行插件容器的进程和网络命名空间。最后,我们开始在插件过程上调用调试工具:
1
#docker运行--rm-it - privileged --pid =容器:Rapid7_kafka_1.0.2_Action -Net =容器:Rapid7_kafka_1.0.2_Action Komand / Python-Debug-Plugin Bash
2
bash-4.4#ps
3.
PID用户时间命令
4.
1根1:03 / Komand /插件/ Bin / Kafka HTTP
5.
13根0:00 Bash
6.
19 root 0:00 ps
7.
Bash-4.4#strace -p 1
8.
区:加工1附件
9.
Futex(0xB39F18,Futex_Wait,0,Null
10.
......
11.
bash-4.4#netstat -plunt
12.
活跃的Internet连接(仅服务器)
13.
proto recv-q send-q本地地址外地地址状态PID /程序名称
14.
TCP 0 0 ::: 10001 ::: *听1 / Kafka
您可以看到我们能够访问附加插件容器的进程和网络。
ui
错误可能发生在UI中并导致意外结果或阻止您的工作。要检查错误,请打开浏览器的开发人员工具以查找错误。如果发现,将它们报告给Slack中的InsightConnect团队。
文件上传
通过API触发器测试文件上传可以使用以下shell函数完成:
1
$ consion -f postfile
2
Postfile()
3.
{
4.
local var =“$ 1”;
5.
本地文件=“$ 2”;
6.
本地URL =“$ 3”;
7.
本地令牌=“4美元”;
8.
本地argc =“$#”;
9.
[[$ argc-ne 4]] && {
10.
printf“postfile \ n”&&返回0
11.
};
12.
b64 = $(base64 $ {file});
13.
json = $(echo -n'{'\“'$ {var}”\“'':'\”“$ {b64}”\“'}');
14.
echo $ json |eval curl-h \“授权:$ token \”-h \“content-type:application / json \”-d @ - $ url
15.
}
用法,其中是文件为值的API触发变量的名称(脚本仅支持当前支持一个):
1
$ Postfile.
2
Postfile
例子:$ postfile pcap ~/google-http。pcap http://127.0.0.1:8888 / v2 /工作流/ 6535 b9ba - 1930 - 4 - c56 a5e2 - 1904 - b048a4ee /事件bae09ddd a593 - 4113 - 96 - a6 cedb816cf1a——7


