Sumo Logic日志搜索服务

一个集成Sumo Logic API的模型上下文协议(MCP)服务器,用于执行自定义日志搜索查询,适用于日志分析和监控场景。

  • by samwang0723
  • TypeScript
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 samwang0723/mcp-sumologic

使用说明

MCP求和逻辑

模型上下文协议(MCP)服务器,与Sumo Logic的API集成以执行日志搜索。

特性

  • 使用自定义查询搜索Sumo Logic日志
  • 可配置的搜索时间范围
  • 错误处理和详细日志记录
  • Docker支持,易于部署

环境变量

ENDPOINT=https://{host}/api/v1  # Sumo Logic API endpoint
SUMO_API_ID=your_api_id                       # Sumo Logic API ID
SUMO_API_KEY=your_api_key                     # Sumo Logic API Key

设置

  1. 克隆存储库
  2. 安装依赖项:
    npm install
    
  3. 创建一个 .env 包含所需环境变量的文件
  4. 构建项目:
    npm run build
    
  5. 启动服务器:
    npm start
    

Docker设置

  1. 构建Docker镜像:

    docker build -t mcp/sumologic .
    
  2. 运行容器(选择一种方法):

    a.直接使用环境变量:

    docker run -e ENDPOINT=your_endpoint -e SUMO_API_ID=your_api_id -e SUMO_API_KEY=your_api_key mcp/sumologic
    

    b.使用.env文件:

    docker run --env-file .env mcp/sumologic
    

    注意:确保.env文件包含所需的环境变量:

    ENDPOINT=your_endpoint
    SUMO_API_ID=your_api_id
    SUMO_API_KEY=your_api_key
    

用法

服务器暴露了一个 search-sumologic 接受以下参数的工具:

  • query (必填):Sumo Logic搜索查询
  • from (可选):ISO 8601格式的开始时间
  • to (可选):ISO 8601格式的结束时间

查询示例:

const query = '_index={index} | json auto | fields log_identifier';
const results = await search(sumoClient, query, {
  from: '2024-02-23T00:00:00Z',
  to: '2024-02-24T00:00:00Z',
});

错误处理

服务器包括全面的错误处理和日志记录:

  • 捕获API错误并记录详细信息
  • 监视并记录搜索作业状态
  • 网络和身份验证问题得到妥善处理

发展

要在开发模式下运行:

npm run dev

用于测试:

npm test

Makefile

常见任务可通过以下方式获得 make:

命令 描述
make install 安装依赖项
make build 构建项目
make start 启动服务器
make dev 以开发模式启动(自动重新加载)
make clean 删除 dist/ 和 node_modules/
make lint 运行ESLint
make test 运行测试
make docker-build 构建Docker镜像
make docker-run 运行容器 .env 端口3006上的文件
make docker-compose 通过Docker Compose启动服务
make docker-down 停止Docker Compose服务