Splunk环境发现工具

AI驱动的Splunk环境发现工具,提供操作员工作空间、安全外部访问和MCP支持的调查功能。

  • by LeiterConsulting
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 LeiterConsulting/splunk-discovery-tool

使用说明

🔍 Splunk发现工具

人工智能支持的Splunk环境发现、操作员工作区、安全的外部访问和MCP支持的调查。

✨ 包括什么

  • 具有智能工件和稳定兼容性文件名的发现管道(v2_intelligence_blueprint_*, v2_insights_brief_*, v2_operator_runbook_*, v2_developer_handoff_*)
  • 具有任务、情报、发现、上下文、功能和重点聊天/摘要界面的统一网络工作区
  • 持久的工作支持运行时状态,用于发现和摘要,包括持久的进度和重启安全恢复
  • AI摘要端点(/summarize-session)生成上下文SPL查询、调查跟踪和管理任务
  • 管理SPL库和本地RAG上下文工作区,用于可重用的查询和面向操作员的知识资产
  • 可选的本地身份验证、OIDC登录、每个用户的MCP分配和管理员管理的外部令牌发放
  • 只读外部RAG REST API和入站MCP表面(HTTP加stdio桥)
  • 具有MCP工具别名和强大工具调用解析的确定性+代理聊天流
  • 使用Fernet加密凭证/配置存储(无明文秘密)
  • Windows通用安装程序(install.ps1)以及Unix/macOS(install.sh)

📋 先决条件

必需

  • Python 3.8+
  • 点
  • PowerShell 7+(仅限Windows,如果使用 install.ps1)

外部服务

  • Splunk MCP服务器端点+承载令牌
  • 所选后端(OpenAI、Azure OpenAI、Anthropic、Gemini或自定义端点)的LLM提供者密钥

🚀 快速开始

视窗

.\install.ps1

Unix/macOS

chmod +x install.sh
./install.sh

启动后,打开控制台中打印的URL(通常 http://localhost:8003).

⚙️ 首次配置

  1. 在控制台中显示的启动URL打开应用程序(默认 http://localhost:8003)
  2. 点击设置(齿轮图标)
  3. 配置:
    • MCP URL/令牌/SSL设置
    • LLM提供程序/API密钥/端点URL(如果需要)/模型/令牌限制
    • Web服务器选项(端口、调试模式)
  • 可选的安全/身份验证设置、外部API暴露和OIDC提供程序详细信息
  1. 保存设置并重新启动服务

LLM设置说明

  • 支持的提供商: openai, azure, anthropic, gemini, custom
  • 以下项需要终结点URL: azure, custom
  • 终结点URL可选覆盖: anthropic, gemini
  • 对于 custom,您可以使用基本URL(例如 http://host:port/v1);该应用程序自动解析常见的完成路径。
  • 使用 测试连接和自动配置 在要运行的设置中:
    • 连接探针,
    • 模型生成测试,
    • 提供者安全令牌推荐。

🧠 工作区概述

  • 使命:当前发现切换、快照增量、管理员下一步操作、分析师跟踪和执行框架
  • 智能:蓝图简报、优先级板、覆盖差距和角色适应的操作员读数
  • 发现:实时运行时监视器、阶段分类账、持久会话输出和摘要启动/恢复控制
  • 上下文:托管知识资产、SPL库、可重用查询证据和面向操作员的上下文预览
  • 能力:RAG、导出、可视化和Splunk深度链接工作流的可选包
  • 聊天和总结:当操作员需要深入时,全屏调查聊天加上生成的runbook/摘要界面

📸 当前工作区快照

首次运行splash和工作区shell

任务工作区

情报工作区

📸 SPL库工作流

SPL库将可重用的SPL保存在托管上下文工作区中,因此操作员可以保存聊天中的良好查询,检查存储的上下文,并在不离开工具的情况下重用保存的SPL。

保存聊天中的查询

浏览SPL库

检查存储资产详细信息

在聊天中重用库上下文

🔐 安全

  • 可选的本地用户名/密码身份验证,具有首次登录密码重置流程
  • OIDC登录,提供提供商元数据、声明映射和本地用户链接支持
  • 每个用户的MCP分配以及管理员管理的连接、用户和令牌控制
  • 带有作用域令牌和速率限制的只读外部RAG REST API和入站MCP访问
  • 静态加密凭据(config.encrypted, .config.key)
  • 无明文秘密持久性
  • 可配置的SSL验证和CA捆绑包支持
  • 通过服务器设置提供主机/CORS保护

📁 关键路径

install.ps1 / install.sh       Installer + service control
src/main.py                    Runtime entrypoint
src/web_app.py                 FastAPI API + frontend delivery/runtime orchestration
src/frontend_legacy_template.html Source-of-truth frontend template
src/frontend_legacy.py         Frontend template loader for runtime and build tooling
src/static/                    Shipped local frontend bundle
src/discovery/v2_pipeline.py   Discovery pipeline + artifact packaging
src/config_manager.py          Encrypted config manager
src/security_manager.py        Local auth, OIDC, sessions, roles, and token management
src/runtime_job_worker.py      Detached worker entrypoint for durable discovery/summary jobs
tools/build_frontend.mjs       Rebuild shipped frontend assets from src/frontend_legacy_template.html
tools/check_frontend_sync.py   Validate frontend bundle sync before release
tools/test_auth_browser.mjs    Browser auth/OIDC regression harness
tools/run_account_function_tests.mjs Account/auth regression entrypoint
.github/workflows/repo-validation.yml  GitHub Actions validation workflow for repo quality gates
output/                        Discovery and summary artifacts

📚 文档

此存储库中面向公众的文档:

  • README.md --安装、配置、运行
  • CHANGELOG.md --发布历史和显著变化
  • CONFIGURATION_VARIABLES.md --配置参考
  • docs/DEVELOPER_REFERENCE.md --开发人员扩展/参考指南
  • docs/AUTH_TESTING.md --本地密码、OIDC和帐户功能测试指南
  • docs/EXTERNAL_RAG_API_QUICKSTART.md -只读外部RAG API设置和示例
  • docs/EXTERNAL_MCP_QUICKSTART.md --入站MCP设置、辅助客户端和stdio网桥使用
  • docs/SECURITY_ACCESS_ROADMAP.md --已发布的国家安全模型及其扩展说明
  • docs/DISCOVERY_ARCHITECTURE_GUIDE.md --发现架构和迁移指导

✅ 验证

在激活的虚拟环境中,主要的本地版本检查包括:

npm run build:frontend
python tools/check_frontend_sync.py
npm run test:browser
npm run test:auth-browser
npm run test:account-functions
python -m ruff check src tests
python -W error::SyntaxWarning -m compileall -q src tests
python -m unittest discover -v

🛠️ 安装程序命令

命令 描述
(no arguments) 安装依赖项并启动服务
--public_only / -PublicOnly 仅使用公共PyPI安装(跳过私有/本地索引)
--start / -Start 启动服务
--stop / -Stop 停止服务
--restart / -Restart 重新启动服务
--status / -Status 显示状态
--uninstall / -Uninstall 卸载
--help / -Help 显示帮助

🐛 故障排除

端口8003已在使用中

该应用程序现在会自动尝试安全端口回收/回退。如果需要,请使用安装程序命令重新启动:

.\install.ps1 -Restart

Windows脚本执行被阻止

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

MCP连接错误

  • 在设置中验证URL/令牌
  • 切换SSL验证或为私有证书链设置CA捆绑包

pip安装超时/ repo.splunkdev.net 不可达

  • 一些系统配置了全局/私有pip索引;如果该索引不可用,依赖项安装可能会超时。
  • 安装程序现在会自动重试公共PyPI(https://pypi.org/simple).
  • 要立即绕过私有/本地索引,请使用安装程序的仅限公共标志:
./install.sh --public_only
.\install.ps1 -PublicOnly
  • 如果需要,在重新安装之前,强制当前shell会话使用PyPI:
export PIP_INDEX_URL=https://pypi.org/simple
./install.sh
$env:PIP_INDEX_URL = "https://pypi.org/simple"
.\install.ps1

前端更改未显示或启动程序警告过时资产

  • 已发货的UI由以下签入文件提供 src/static/.
  • 在中编辑前端源模板后 src/frontend_legacy_template.html,重建并验证已发货的捆绑包:
npm run build:frontend
python tools/check_frontend_sync.py
  • 要运行可视化预览的确定性浏览器回归,请安装Chromium测试浏览器一次并运行:
npx playwright install chromium
npm run test:browser
  • 要验证启用身份验证的流和帐户函数矩阵,请运行:
npm run test:auth-browser
npm run test:account-functions

🤝 贡献

欢迎通过pull请求进行贡献。回购验证也反映在 .github/workflows/repo-validation.yml,它在GitHub托管的运行器上运行记录在案的前端构建、同步、浏览器回归、身份验证/帐户检查、lint、编译和单元测试门。

📄 许可证

MIT。看 许可证.