MaximeWewer/wazuh-operator

GitHub: MaximeWewer/wazuh-operator

Wazuh Kubernetes Operator 提供了一种声明式、自动化的方式,在 Kubernetes 上部署、配置和运维 Wazuh 安全监控集群及其全部相关资源。

Stars: 8 | Forks: 2

# Wazuh Kubernetes Operator 一个用于管理 Wazuh 集群的 Kubernetes operator,提供了一种声明式的方法来部署和配置 Wazuh 安全监控平台。 ## 功能 - **声明式集群管理** - 使用 Kubernetes 自定义资源定义您的整个 Wazuh 集群 - **自动化部署** - 自动配置 Manager、Indexer 和 Dashboard 组件 - **规则与 Decoder 管理** - 将 Wazuh 检测规则和日志 decoder 作为 CRD 进行管理 - **集成与 Agent 组** - 声明式配置外部集成(Slack、VirusTotal 等)以及共享的 agent 组配置 - **OpenSearch 安全 CRD** - 声明式管理用户、角色、角色映射和租户 - **Wazuh API RBAC CRD** - 管理 Manager API 角色、策略、规则和用户;通过 run_as 限制每个用户的 dashboard 菜单 - **索引生命周期管理** - 配置 ISM 策略、索引模板和快照策略 - **备份与恢复** - 将 OpenSearch 快照和 Wazuh Manager 备份至 S3、GCS、Azure、HDFS - **TLS 自动化** - 自动生成证书并支持热重载 (Wazuh 4.9+) - **高可用性** - 具有 Pod 干扰预算的多节点部署 - **安全上线** - 具有重试和回滚功能的受控 indexer/manager 排空 - **网络** - 使用 Gateway API 和 Ingress 暴露 dashboard/manager - **存储运维** - 在线 PVC 卷扩容和日志轮转 - **监控与追踪** - Prometheus 指标、ServiceMonitor 和 OpenTelemetry 分布式追踪 ## 架构 该 operator 监听 `resources.wazuh.com` 自定义资源,并对 Wazuh 技术栈进行调谐:它部署并配置 Manager、Indexer 和 Dashboard,并 将 RBAC / 规则 / 索引配置推送到它们的 API。 ``` graph LR crs["Custom Resources
WazuhCluster, Wazuh*, OpenSearch*"] operator["Wazuh Operator
(controllers)"] crs -->|watch / reconcile| operator agents["Wazuh agents"] subgraph cluster["WazuhCluster (managed)"] manager["Manager
Master + Workers"] indexer["Indexer
(modified OpenSearch)"] dashboard["Dashboard
(modified OpenSearch Dashboards)"] end operator -->|deploy + configure| manager operator -->|deploy + configure| indexer operator -->|deploy + configure| dashboard agents -->|events| manager manager -->|alerts via Filebeat| indexer dashboard -->|query / search| indexer dashboard -->|Manager API :55000| manager ``` ## 快速开始 ### 前置条件 - Kubernetes 1.25+ - 已配置 kubectl - 建议 16GB+ RAM ### 使用 Helm 安装 由于 CRD 体积较大,请使用 `helm template` + `kubectl apply` 而不是 `helm install`: ``` # 安装 operator helm template wazuh-operator oci://ghcr.io/maximewewer/charts/wazuh-operator \ --namespace wazuh-operator --create-namespace | kubectl apply -f - # 部署 Wazuh 集群 helm template wazuh-cluster oci://ghcr.io/maximewewer/charts/wazuh-cluster \ --namespace wazuh | kubectl apply -f - # 检查状态 kubectl get wazuhcluster -n wazuh ``` ### 访问 Dashboard ``` kubectl port-forward svc/wazuh-cluster-dashboard -n wazuh 5601:5601 ``` 打开 - 凭证已自动生成在 secrets 中。 ## 支持的 Wazuh 版本 | Wazuh | OpenSearch | 备注 | | --------------- | ------------------ | ----------------------------------------------------------------------------------- | | 4.12.x - 4.14.x | 2.19.0+ | 自动 TLS 证书热重载 (file-watch)。 | | 4.10.x - 4.11.x | 2.16.0 | | | 4.9.x | 2.13.0 | 通过 API 调用进行 TLS 证书热重载。该 operator 支持的最低版本。 | | < 4.9.0 | 不支持 | 可能可以运行,但未经测试。 | ## 自定义资源定义 **API 组**: `resources.wazuh.com/v1` | 类别 | CRD | 简称 | | ----------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | | **Wazuh Core** | WazuhCluster | wc | | **Wazuh Config** | WazuhRule, WazuhDecoder, WazuhIntegration, WazuhCertificate, WazuhFilebeat, WazuhAgentGroup | wrule, wdecoder, wintegration, wzcert, wfb, wagentgroup | | **Wazuh API RBAC** | WazuhRole, WazuhUser | wrole, wuser | | **Wazuh Backup** | WazuhBackup, WazuhRestore | wbak, wrest | | **OpenSearch Security** | OpenSearchUser, OpenSearchRole, OpenSearchRoleMapping, OpenSearchActionGroup, OpenSearchTenant, OpenSearchAuthConfig | osuser, osrole, osrmap, osag, ostenant, osauth | | **OpenSearch Index** | OpenSearchIndex, OpenSearchIndexTemplate, OpenSearchComponentTemplate, OpenSearchISMPolicy, OpenSearchSnapshotPolicy | osidx, osidxt, osctpl, osism, ossnap | | **OpenSearch Backup** | OpenSearchSnapshotRepository, OpenSearchSnapshot, OpenSearchRestore | osrepo, ossnapshot, osrestore | ## 文档 ### 用户指南 | 主题 | 描述 | | --------------------------------------------------------------------- | --------------------------------- | | [安装](docs/usage/getting-started/installation.md) | 如何安装 operator | | [快速开始](docs/usage/getting-started/quick-start.md) | 部署您的第一个集群 | | [凭证](docs/usage/features/credentials.md) | 自动生成的密码、secrets | | [TLS 配置](docs/usage/features/tls.md) | 证书管理 | | [Wazuh API RBAC](docs/usage/features/wazuh-api-rbac.md) | Manager API 角色/用户、run_as 限制 | | [监控](docs/usage/features/monitoring.md) | Prometheus 集成 | | [备份与恢复](docs/usage/features/backup-restore.md) | 数据保护 (S3、GCS、Azure、HDFS) | | [仓库插件](docs/usage/features/repository-plugins.md) | 自动插件安装与 keystore | | [OpenSearch 安全](docs/usage/features/opensearch-security.md) | Indexer 用户、角色、租户 | | [Gateway API 与 Ingress](docs/usage/features/gateway-api.md) | 暴露 dashboard/manager | | [排空策略](docs/usage/features/drain-strategy.md) | 安全的节点排空、重试、回滚 | | [日志轮转](docs/usage/features/log-rotation.md) | 组件日志轮转 | | [卷扩容](docs/usage/features/volume-expansion.md) | 在线 PVC 增长 | | [Filebeat](docs/usage/features/filebeat-configuration.md) | Manager→indexer 传输配置 | | [高级拓扑](docs/usage/features/advanced-indexer-topology.md) | NodePools、专用角色 | | [规格配置](docs/usage/features/sizing.md) | 资源规格指南 | | [示例](docs/usage/examples/) | 配置示例 | | [故障排除](docs/usage/troubleshooting/) | 常见问题与调试 | ### 开发者指南 | 主题 | 描述 | | -------------------------------------------------------- | -------------------------- | | [架构](docs/dev/architecture/operator-design.md) | 整体设计 | | [测试指南](docs/dev/testing/testing-guide.md) | 如何运行和编写测试 | | [贡献](docs/dev/contributing/CONTRIBUTING.md) | 如何贡献 | ## 开发 ``` # 生成 manifests 和代码 make manifests generate # 构建和测试 make build test # 构建 Docker 镜像 make docker-build IMG=myregistry/wazuh-operator:dev # 本地运行 make install run ``` ## 许可证 该项目采用 Apache License 2.0 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - 使用 [Kubebuilder](https://book.kubebuilder.io/) 构建 - 灵感来源于 [opensearch-k8s-operator](https://github.com/opensearch-project/opensearch-k8s-operator) - 基于 [Wazuh](https://wazuh.com/) 安全平台
标签:EVTX分析, Kubernetes Operator, Wazuh, 云原生运维, 子域名突变, 日志审计, 特权提升, 用户代理, 自动化部署, 自定义请求头, 请求拦截