Wazuh excels at collecting security events, yet locating meaningful answers demands familiarity with query syntax and numerous index fields. Experienced SOC engineers can craft queries quickly, but colleagues unfamiliar with Wazuh or SIEM systems face significant barriers.
The Wazuh dashboard is built on OpenSearch Dashboards, which includes a ready-made OpenSearch Assistant. Although this assistant is not part of the standard Wazuh distribution, it can be added through official plugins of matching versions without modifying core Wazuh components.
Andrey, head of cloud security at Selectel, explains the complete setup process. The guide covers installing Wazuh, connecting a custom model, and adding an interface button that explains any document. Instructions were validated on Wazuh 4.14.7 running OpenSearch 2.19.5. Any model exposing an OpenAI-compatible API is supported.
Three new tools appear after configuration
- Chat window – analysts ask questions in plain language and receive responses from the LLM.
- Query Assist in Discover – converts spoken questions into PPL (Piped Processing Language) queries and displays results in standard tables.
- Explain Document button – the model analyzes alerts or vulnerability records, explaining what happened, severity, and recommended checks.
The architecture routes analyst questions through dashboard plugins to the indexer. The ml-commons plugin manages model connections and agents. The primary tool, PPLTool, requests the model to generate a PPL query and then executes it. Models run externally; the indexer communicates via HTTPS using a connector object that defines endpoint, request format, and response parsing.
Requirements include root access to the server, an OpenAI-compatible API endpoint with key, and a Linux machine with Docker for building the Explain Document plugin. Plugin versions must exactly match OpenSearch 2.19.5.
The article walks through plugin installation from official OpenSearch bundles, enabling agent framework settings, registering connectors and models, creating specialized agents with custom prompts, and finally adding the Explain Document button. Detailed configuration examples cover both Docker and package deployments, including volume mappings and service restarts.
After setup, the assistant supports Russian-language responses, preserves query traceability for verification, and handles follow-up questions by maintaining conversation memory. Limitations around model behavior, index schema accuracy, and the need for precise prompt engineering are also discussed.

