连接到您自己的本地 LLM
Elastic Stack 无服务器安全
本页提供有关使用 LM Studio 设置到您选择的大型语言模型 (LLM) 的连接器的说明。这允许您在 Elastic Security 中使用您选择的模型。您首先需要设置一个反向代理与 Elastic Security 进行通信,然后在服务器上设置 LM Studio,最后在您的 Elastic 部署中配置连接器。 了解更多关于使用本地 LLM 的好处。
此示例使用托管在 GCP 中的单个服务器来运行以下组件
- 带有 Mistral-Nemo-Instruct-2407 模型的 LM Studio
- 使用 Nginx 的反向代理,用于向 Elastic Cloud 进行身份验证

对于测试,您可以使用 Nginx 的替代方案,例如 Azure Dev Tunnels 或 Ngrok,但使用 Nginx 可以通过使用 Elastic 的原生 Nginx 集成轻松收集其他遥测数据并监控其状态。虽然此示例使用云基础设施,但也可以在没有互联网连接的情况下在本地复制它。
有关开源模型在 Elastic Security 中的任务的性能信息,请参阅 LLM 性能矩阵。
如果您的 Elastic 实例与 LM Studio 在同一主机上,则可以跳过此步骤。 此外,请查看我们的 博客文章,其中介绍了设置单主机实现的整个过程。
您需要设置一个反向代理,以启用 LM Studio 和 Elastic 之间的通信。 有关更完整的说明,请参阅类似 这样的指南。
以下是 Nginx 配置文件的示例
server {
listen 80;
listen [::]:80;
server_name <yourdomainname.com>;
server_tokens off;
add_header x-xss-protection "1; mode=block" always;
add_header x-frame-options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <yourdomainname.com>;
server_tokens off;
ssl_certificate /etc/letsencrypt/live/<yourdomainname.com>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<yourdomainname.com>/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header x-xss-protection "1; mode=block" always;
add_header x-frame-options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/<yourdomainname.com>/fullchain.pem;
resolver 1.1.1.1;
location / {
if ($http_authorization != "Bearer <secret token>") {
return 401;
}
proxy_pass http://localhost:1234/;
}
}
如果使用上述示例配置文件,则必须替换几个值
- 将
<secret token>
替换为您的实际令牌,并妥善保管,因为您需要它来设置 Elastic Security 连接器。 - 将
<yourdomainname.com>
替换为您的实际域名。 - 如果您决定将 LM Studio 中的端口号更改为 1234 以外的其他值,请更新配置底部的
proxy_pass
值。
您可以使用 Elastic 的 Nginx 集成来监控性能并在 Elastic Security 应用程序中填充监控仪表板。
首先,安装 LM Studio。 LM Studio 支持 OpenAI SDK,这使其与 Elastic 的 OpenAI 连接器兼容,从而允许您连接到 LM Studio 市场中可用的任何模型。
您必须先使用其 GUI 启动该应用程序,然后再使用 CLI 执行此操作。 例如,将 Chrome RDP 与 X Window System 一起使用。 首次使用 GUI 打开应用程序后,您可以使用 CLI 中的 sudo lms server start
启动它。
启动 LM Studio 后
- 转到 LM Studio 的“搜索”窗口。
- 搜索 LLM(例如,
Mistral-Nemo-Instruct-2407
)。 您选择的模型必须在其名称中包含instruct
才能与 Elastic 一起使用。 - 找到模型后,查看下载选项并选择推荐版本(绿色)。 为了获得最佳性能,请选择一个带有大拇指向上图标的版本,该图标指示在您的硬件上表现良好。
- 下载一个或多个模型。
出于安全原因,在下载模型之前,请验证它是否来自受信任的来源。 审查社区对该模型的反馈可能会有所帮助(例如,使用像 Hugging Face 这样的网站)。

在此示例中,我们使用了 mistralai/Mistral-Nemo-Instruct-2407
。 它具有 12B 个总参数、一个 128,000 个令牌的上下文窗口,并使用 GGUF 量化。 有关模型名称和格式信息的更多信息,请参阅下表。
模型名称 | 参数大小 | 令牌/上下文窗口 | 量化格式 |
---|---|---|---|
模型名称,有时带有版本号。 | LLM 通常通过其参数数量进行比较 - 数字越高意味着模型越强大。 | 令牌是输入信息的小块。 令牌不一定对应于字符。 您可以使用 Tokenizer 来查看给定提示可能包含多少个令牌。 | 量化减少了总体参数,并有助于模型运行得更快,但会降低准确性。 |
示例:Llama、Mistral、Phi-3、Falcon。 | 参数数量是衡量模型大小和复杂性的指标。 模型拥有的参数越多,它可以处理、学习、生成和预测的数据就越多。 | 上下文窗口定义了模型一次可以处理多少信息。 如果输入令牌的数量超过此限制,则输入将被截断。 | 量化的特定格式各不相同,现在大多数模型都支持 GPU 而不是 CPU 卸载。 |
下载模型后,使用 GUI 或 LM Studio 的 CLI 工具在 LM Studio 中加载它。
最佳实践是使用 GUI 从市场下载模型,然后使用 CLI 加载或卸载它们。 GUI 允许您搜索模型,而 CLI 允许您使用 lms get
搜索模型。 CLI 提供了一个用于加载和卸载的良好界面。
下载模型后,在 CLI 中使用以下命令
- 验证是否已安装 LM Studio:
lms
- 检查 LM Studio 的状态:
lms status
- 列出所有已下载的模型:
lms ls
- 加载模型:
lms load
。

模型加载后,您应该在 CLI 中看到一条 Model loaded successfully
消息。 使用箭头键和 Enter 键选择一个模型。

要验证加载了哪个模型,请使用 lms ps
命令。

如果您的模型使用 NVIDIA 驱动程序,您可以使用 sudo nvidia-smi
命令检查 GPU 性能。
请参阅以下视频,了解如何使用 LM Studio 的 GUI 加载模型。 您可以更改 Nginx 配置文件中引用的 port 设置。 请注意,GPU offload 设置为 Max。 以下视频演示了此过程(点击观看)。
您可以使用 Elastic 的 自定义日志集成来监控运行 LM Studio 的主机的性能。 这也有助于进行故障排除。 请注意,LM Studio 日志的默认路径是 /tmp/lmstudio-server-log.txt
,如以下屏幕截图所示

最后,配置连接器
- 登录到您的 Elastic 部署。
- 在导航菜单中找到 Connectors 页面,或使用 全局搜索字段。 然后单击 Create Connector,并选择 OpenAI。 OpenAI 连接器启用了此用例,因为 LM Studio 使用了 OpenAI SDK。
- 命名您的连接器,以帮助跟踪您正在使用的模型版本。
- 在 Select an OpenAI provider 下,选择 Other (OpenAI Compatible Service)。
- 在 URL 下,输入您的 Nginx 配置文件中指定的域名,后跟
/v1/chat/completions
。 - 在 Default model 下,输入
local-model
。 - 在 API key 下,输入您的 Nginx 配置文件中指定的密钥令牌。
- 单击 Save。

现在设置已完成。您可以使用在 LM Studio 中加载的模型来支持 Elastic 的生成式 AI 功能。 您可以在与 AI 助手交互时测试各种模型,看看哪种效果最佳,而无需更新连接器。