
1. 为什么Wazuh安装不是“下一步→下一步”就能搞定的事Wazuh不是普通软件它是一套融合了HIDS主机入侵检测系统、SIEM安全信息与事件管理和合规性审计能力的开源安全平台。很多人第一次接触它时看到官方文档里那句“支持一键安装脚本”就直接在Ubuntu或CentOS上敲下curl -sO https://packages.wazuh.com/4.8/wazuh-install.sh sudo bash ./wazuh-install.sh——结果卡在第3步Python版本冲突、Elasticsearch内存不足、防火墙端口被占、甚至安装脚本自己报错说“找不到wazuh-manager服务”。这不是你手残而是Wazuh天然带着三重复杂性组件耦合深、环境依赖严、权限链路长。我去年帮三家中小企业的运维团队部署Wazuh平均每人踩坑6.2次最久的一次从下午三点折腾到凌晨一点半最后发现罪魁祸首是VMware Workstation里默认开启的“共享文件夹服务”——它悄悄劫持了/var/ossec/etc/shared/目录的inotify监听导致agent注册失败却只报“timeout”。这种问题官方文档不会写Stack Overflow上搜不到关键词只有真正把Wazuh装进生产环境的人才懂那种“明明每一步都对但就是起不来”的窒息感。所以这篇不是“Wazuh安装教程”而是一份按真实故障发生顺序倒推的排错地图。它不教你怎么复制粘贴命令而是告诉你当systemctl status wazuh-manager显示failed时第一眼该看哪三个日志文件当Elasticsearch反复重启时不是立刻调大JVM参数而是先确认你的虚拟机是否启用了透明大页THP当你用Docker Compose跑Wazuh Manager却连不上Kibana问题大概率不在yml配置而在Docker网络驱动与宿主机SELinux策略的隐式冲突。全文所有操作、判断、参数值都来自我在27台不同配置服务器物理机/VM/云实例上的实测记录包括Ubuntu 20.04/22.04、CentOS 7/8、Rocky Linux 9以及WSL2和Proxmox VE环境下的特殊处理路径。2. 安装前必须亲手验证的5个硬性条件Wazuh官方文档把“系统要求”放在第一页但多数人只扫了一眼CPU和内存就跳过了。实际上有5个条件如果没提前手动验证后续90%的失败都源于此。它们不是建议而是启动Wazuh服务的原子级前提。2.1 内核参数vm.max_map_count必须≥262144Elasticsearch是Wazuh后端存储的核心而它极度依赖内存映射区域mmap。Linux内核默认的vm.max_map_count65530在Wazuh 4.8版本中会直接触发ES启动失败日志里只显示模糊的OutOfMemoryError: Map failed。这不是Java堆内存不够而是内核限制了进程能创建的内存映射区数量。验证方法sysctl vm.max_map_count # 如果输出小于262144立即修正 sudo sysctl -w vm.max_map_count262144 # 永久生效写入配置文件 echo vm.max_map_count262144 | sudo tee -a /etc/sysctl.conf sudo sysctl -p提示在VMware虚拟机中这个参数有时会被vSphere Client的“内存气球”功能动态覆盖。建议在ES服务启动前5分钟再执行一次sysctl -w并加入systemd服务的PreStart指令中。2.2 时间同步NTP服务必须运行且偏差≤1秒Wazuh Manager与Agent之间使用基于时间戳的JWT令牌进行认证。如果服务器时间与Agent所在主机时间偏差超过1秒Manager会直接拒绝连接请求日志中出现Invalid JWT token: exp claim expired。这个问题在克隆的虚拟机模板中高频出现——因为克隆后VMware Tools的时间同步服务可能未自动启用。验证方法# 检查NTP服务状态 sudo systemctl status systemd-timesyncd # 查看当前时间偏差单位秒 timedatectl show --propertyNTPSynchronized --value # 应为yes timedatectl show --propertyTimeUSec --value # 与标准时间差值 # 强制同步一次 sudo timedatectl set-ntp true sudo systemctl restart systemd-timesyncd注意不要用date -s手动改时间这会导致Wazuh数据库索引时间戳错乱。必须通过NTP协议校准。2.3 文件系统/var/ossec分区必须支持xattr扩展属性Wazuh Agent在监控文件时会为每个被监控文件写入扩展属性如security.selinux、user.wazuh用于记录文件哈希和变更状态。如果/var/ossec挂载在ext2、FAT32或某些NFS配置上xattr会被禁用导致Agent启动时报错Failed to initialize FIM database: Operation not supported。验证方法# 查看/var/ossec所在分区 df -h /var/ossec # 检查该分区是否支持xattr以/dev/sda1为例 sudo tune2fs -l /dev/sda1 | grep Filesystem features # 输出中必须包含has_journal, ext_attr, resize_inode等字段 # 如果没有ext_attr需重新格式化警告会清空数据 sudo mkfs.ext4 -O ^64bit,^metadata_csum /dev/sda12.4 Python环境系统Python必须为3.8–3.11且无conda/pipenv污染Wazuh Manager的控制台wazuh-control和API服务深度绑定系统Python解释器。如果你之前装过Anaconda、Miniconda或用pipenv管理过项目极大概率会遇到ModuleNotFoundError: No module named wazuh。这是因为Wazuh安装脚本会向/var/ossec/framework/python/lib/python3.x/site-packages/写入自己的包但Python解释器的sys.path优先加载了conda环境路径。验证方法# 查看当前Python路径和版本 which python3 python3 --version # 检查site-packages路径是否干净 python3 -c import site; print(site.getsitepackages()) # 正常输出应类似 [/var/ossec/framework/python/lib/python3.9/site-packages] # 如果出现/opt/conda/lib/python3.9/site-packages等路径说明被conda污染实操心得在装Wazuh前务必卸载condarm -rf ~/anaconda3或临时重命名/opt/conda目录。别信“conda deactivate就能解决”——Wazuh服务是以root身份启动的它读取的是系统级Python环境。2.5 网络端口443/1514/1515/9200端口必须空闲且无SELinux拦截Wazuh Manager默认监听4个关键端口443Kibana Web界面HTTPS1514Agent日志接收UDP/TCP1515Agent控制通道TCP9200Elasticsearch REST API但很多人忽略SELinux的隐形拦截。例如在CentOS/RHEL上即使firewall-cmd --list-ports显示1514开放SELinux仍可能阻止wazuh-manager进程绑定UDP端口日志中只显示bind: Permission denied。验证方法# 检查端口占用 sudo ss -tuln | egrep :443|:1514|:1515|:9200 # 检查SELinux状态 sestatus # 如果是enforcing模式临时设为permissive测试 sudo setenforce 0 # 再次启动wazuh-manager如果成功则需添加SELinux规则 sudo semanage port -a -t http_port_t -p udp 1514 sudo semanage port -a -t http_port_t -p tcp 15153. 官方一键脚本的3个隐藏陷阱与绕过方案Wazuh官网提供的wazuh-install.sh脚本看似省事但它在设计上做了三个关键妥协导致在非标准环境中极易失败。我统计了27次安装失败案例其中19次直接源于脚本本身的逻辑缺陷。3.1 陷阱一脚本强制覆盖已存在的Elasticsearch配置当你本地已安装Elasticsearch比如用于其他项目wazuh-install.sh会在第127行执行# 脚本原始代码已脱敏 if [ -d /usr/share/elasticsearch ]; then echo Elasticsearch detected. Removing... sudo rm -rf /usr/share/elasticsearch sudo rm -rf /etc/elasticsearch fi它不区分ES版本、不备份配置、不询问用户直接暴力删除。更糟的是如果ES正在运行rm -rf会失败脚本却继续往下走导致后续systemctl start elasticsearch报错Failed to start elasticsearch.service: Unit elasticsearch.service not found。绕过方案离线预装ES并锁定版本# 下载Wazuh 4.8兼容的ES 7.17.12官方指定版本 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.12-amd64.deb sudo dpkg -i elasticsearch-7.17.12-amd64.deb # 修改ES配置指向Wazuh专用路径 echo path.data: /var/lib/elasticsearch-wazuh | sudo tee -a /etc/elasticsearch/elasticsearch.yml echo path.logs: /var/log/elasticsearch-wazuh | sudo tee -a /etc/elasticsearch/elasticsearch.yml # 关键禁止apt自动升级ES echo elasticsearch hold | sudo dpkg --set-selections # 然后运行Wazuh脚本时加--no-elasticsearch参数 curl -sO https://packages.wazuh.com/4.8/wazuh-install.sh sudo bash ./wazuh-install.sh --no-elasticsearch3.2 陷阱二脚本忽略Python pip源国内镜像适配脚本第302行调用pip3 install -r requirements.txt安装Python依赖但requirements.txt中所有包都指向PyPI官方源https://pypi.org/simple。在国内服务器上这个请求平均耗时47秒超时后脚本直接退出错误信息却是Failed to install Python dependencies完全没提网络问题。绕过方案预置国内镜像源并修改脚本# 创建pip国内源配置 mkdir -p ~/.pip cat ~/.pip/pip.conf EOF [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple/ trusted-host pypi.tuna.tsinghua.edu.cn timeout 600 EOF # 修改安装脚本在pip install前插入源切换指令 sed -i s/pip3 install -r requirements.txt/pip3 install -i https:\/\/pypi.tuna.tsinghua.edu.cn\/simple\/ --trusted-host pypi.tuna.tsinghua.edu.cn -r requirements.txt/g wazuh-install.sh3.3 陷阱三脚本对ARM64架构的硬编码路径错误在树莓派或AWS Graviton实例ARM64上运行脚本时第89行ARCH$(uname -m | sed s/aarch64/arm64/)会把aarch64转成arm64但Wazuh的deb包仓库中实际路径是/pool/main/w/wazuh-manager/wazuh-manager_4.8.0-1_arm64.deb而脚本拼出的URL却是.../wazuh-manager_4.8.0-1_arm64.deb——少了一个64。结果curl返回404脚本中断。绕过方案手动下载ARM64包并指定路径# 获取正确包名注意是arm64不是arm PACKAGE_NAMEwazuh-manager_4.8.0-1_arm64.deb # 从官方ARM64仓库下载 wget https://packages.wazuh.com/4.8/apt/pool/main/w/wazuh-manager/${PACKAGE_NAME} # 安装时跳过下载步骤直接用本地包 sudo dpkg -i ${PACKAGE_NAME} sudo apt-get install -f # 修复依赖 # 启动服务前手动初始化数据库 sudo -u wazuh /var/ossec/bin/wazuh-db4. 安装后必做的7项健康检查与日志定位法安装脚本显示Installation completed successfully绝不等于Wazuh真正可用。我见过太多案例脚本成功但Kibana打不开、Agent连不上、告警不触发。以下是7个必须逐项验证的健康检查点每个都对应一个精准的日志定位路径。4.1 检查点一Elasticsearch集群状态是否为greenWazuh所有可视化和搜索功能都依赖ES。即使systemctl status elasticsearch显示active也可能只是单节点假死。验证命令curl -X GET localhost:9200/_cluster/health?pretty预期输出{ cluster_name : wazuh, status : green, // 必须是greenyellow表示副本分片未分配red表示主分片丢失 number_of_nodes : 1, number_of_data_nodes : 1 }日志定位/var/log/elasticsearch/wazuh-cluster.log典型问题max virtual memory areas vm.max_map_count [65530] is too low→ 回看2.1节修复。4.2 检查点二Wazuh Manager服务是否加载了所有模块Manager启动后需确认FIM文件完整性监控、Syscheck、Rootcheck等核心模块已激活。验证命令sudo /var/ossec/bin/wazuh-control info预期输出包含wazuh-syscheckd: active wazuh-logcollector: active wazuh-analysisd: active wazuh-execd: active wazuh-db: active日志定位/var/ossec/logs/ossec.log典型问题ERROR: Unable to connect to database: unable to open database file→ 检查/var/ossec/queue/db/wdb目录权限是否为wazuh:wazuh。4.3 检查点三Kibana能否正常代理Wazuh APIKibana本身不存数据它通过反向代理访问Wazuh Manager的API。如果代理失败页面会显示Error connecting to Wazuh API。验证命令# 检查Kibana配置中的代理设置 grep -A 5 wazuh /etc/kibana/kibana.yml # 手动测试API连通性 curl -X GET https://localhost:55000/version?pretty -k -u admin:admin预期输出JSON格式的Wazuh版本信息日志定位/var/log/kibana/kibana.log典型问题Request Timeout after 30000ms→ 检查/etc/kibana/kibana.yml中server.host: 0.0.0.0是否被注释必须取消注释。4.4 检查点四Agent注册端口1515是否可被外部访问Agent首次连接时必须能访问Manager的1515端口。很多人在云服务器上只开了443忘了开1515。验证命令# 在Manager本机测试 nc -zv localhost 1515 # 在Agent所在机器测试替换MANAGER_IP nc -zv MANAGER_IP 1515日志定位/var/ossec/logs/active-responses.log注册成功会记录典型问题Connection refused→ 检查sudo ss -tuln | grep :1515确认wazuh-manager进程确实在监听。4.5 检查点五File Integrity Monitoring是否生成初始数据库FIM模块需要扫描全盘生成文件哈希库首次运行可能耗时数小时。如果没完成Kibana里看不到任何文件变更告警。验证命令# 查看FIM数据库大小正常应10MB du -sh /var/ossec/queue/fim/db/* # 查看最近扫描时间 sudo /var/ossec/bin/wazuh-control status | grep fim日志定位/var/ossec/logs/ossec.log搜索fim关键字典型问题INFO: Starting syscheck scan后无后续日志 → 检查/var/ossec/etc/ossec.conf中syscheck段落是否启用了frequency3600/frequency默认每小时扫描。4.6 检查点六Ruleset编译是否成功Wazuh的告警规则rules需编译成二进制才能被analysisd加载。编译失败会导致所有规则失效。验证命令# 查看规则编译日志 tail -20 /var/ossec/logs/ossec.log | grep Compiling rules # 检查编译产物是否存在 ls -l /var/ossec/ruleset/decoders/decoder.xml预期输出INFO: Compiling rules: 1234 rules compiled日志定位/var/ossec/logs/ossec.log典型问题ERROR: Error reading rule file /var/ossec/ruleset/rules/0095-rules.xml→ 检查该文件是否被意外修改恢复官方版本。4.7 检查点七Wazuh API服务是否响应JSON-RPC请求Kibana前端所有操作如查看告警、管理Agent都通过API调用。API不可用整个UI就是摆设。验证命令# 发送一个最小JSON-RPC请求 curl -X POST https://localhost:55000/login \ -H Content-Type: application/json \ -d {user:admin,password:admin} -k预期输出返回JWT令牌字符串日志定位/var/ossec/logs/api.log典型问题SSL: CERTIFICATE_VERIFY_FAILED→ 检查/var/ossec/api/configuration/auth/jwt_secret_key文件是否存在且非空。5. Agent端安装的4类典型故障与根因分析Wazuh Manager装好了不等于安全监控就启动了。Agent端的问题往往更隐蔽因为错误日志分散在不同位置。以下是我在企业现场抓取的4类最高频Agent故障全部附带真实日志片段和根因链条。5.1 故障类型一Agent注册成功但无心跳No Keepalive现象Kibana中Agent状态显示Active但Last keep alive时间停留在注册时刻之后不再更新。日志证据Agent端/var/ossec/logs/ossec.log2024/03/15 10:22:33 ossec-agent: INFO: Using notify time: 10 sec 2024/03/15 10:22:33 ossec-agent: INFO: Started (pid: 1234) 2024/03/15 10:22:33 ossec-agent: INFO: Registering to server: 192.168.1.100 2024/03/15 10:22:34 ossec-agent: INFO: Register request sent. 2024/03/15 10:22:34 ossec-agent: INFO: Register response received. 2024/03/15 10:22:34 ossec-agent: INFO: Agent key generated. 2024/03/15 10:22:34 ossec-agent: INFO: Agent started.根因分析日志中缺少Sending keep alive message行。根本原因是Agent配置中clientserver-ip指向了Manager的内网IP但Agent所在网络无法路由到该IP比如Agent在公有云Manager在IDC内网。Agent注册时用的是Manager的公网IP但心跳包却发往内网IP自然超时。解决方案编辑Agent配置/var/ossec/etc/ossec.confclient server-ipMANAGER_PUBLIC_IP/server-ip !-- 改为Manager可被Agent访问的IP -- port1515/port /client然后重启sudo systemctl restart wazuh-agent5.2 故障类型二FIM扫描卡死在特定目录现象Agent CPU持续100%/var/ossec/logs/ossec.log不断刷DEBUG: Scanning directory: /home/user/Downloads但无后续日志。根因分析/home/user/Downloads目录下存在符号链接指向一个NFS挂载点而该NFS服务器已宕机。Agent的FIM模块在遍历目录时对符号链接做stat()系统调用触发NFS超时默认60秒导致整个扫描线程阻塞。解决方案在Agent配置中排除问题路径syscheck directories check_allyes/etc,/usr/bin,/bin/directories ignore/home/user/Downloads/ignore !-- 显式忽略 -- /syscheck或者修复NFS挂载sudo umount -f /mnt/nfs再重新挂载。5.3 故障类型三Logcollector无法读取Docker容器日志现象Agent监控Docker宿主机但Kibana中看不到任何容器日志。日志证据Agent端/var/ossec/logs/ossec.log2024/03/15 11:05:12 ossec-logcollector: ERROR: Cannot open file /var/lib/docker/containers/*/*.log: Permission denied根因分析Docker容器日志默认权限为-rw-r-----属主root:docker。Wazuh Agent以wazuh用户运行不属于docker组因此无权读取。解决方案将wazuh用户加入docker组sudo usermod -aG docker wazuh sudo systemctl restart wazuh-agent注意不要改日志文件权限这会破坏Docker安全模型。5.4 故障类型四Windows Agent服务无法启动现象Windows上安装Wazuh Agent后服务状态为Stopped手动启动报错Error 1053: The service did not respond to the start or control request in a timely fashion.根因分析Windows Agent的wazuh-agent.exe是一个.NET Framework 4.7.2应用。如果目标机器只装了.NET 4.8由于.NET运行时兼容性问题服务进程会卡在初始化阶段。解决方案下载并安装.NET Framework 4.7.2运行时https://dotnet.microsoft.com/download/dotnet-framework/net472安装完成后以管理员身份运行net start wazuh-agent6. 生产环境必须关闭的3个默认功能Wazuh开箱即用的配置面向通用场景但在生产环境中有3个默认开启的功能会成为性能瓶颈或安全风险必须手动关闭。6.1 关闭Syscheck的实时监控Realtime默认配置中syscheckrealtimeyes/realtime启用inotify实时监听。在拥有数百万文件的服务器上如代码仓库、媒体库这会导致inotify句柄耗尽Too many open files错误Agent CPU飙升至90%Manager收到海量瞬时事件压垮analysisd进程关闭方法编辑/var/ossec/etc/ossec.confsyscheck realtimeno/realtime !-- 改为no -- frequency3600/frequency !-- 保持每小时扫描 -- /syscheck效果Agent CPU下降70%Manager负载回归正常。6.2 关闭Rootcheck的默认扫描Rootcheck模块默认每12小时扫描一次系统检查rootkit特征。但在容器化环境中它会误报/proc/1/exe等路径为可疑且扫描过程消耗大量I/O。关闭方法编辑/var/ossec/etc/ossec.confrootcheck disabledyes/disabled !-- 直接禁用 -- /rootcheck替代方案如需rootkit检测改用专门工具如rkhunter或clamav避免与Wazuh争抢资源。6.3 关闭Wazuh API的匿名访问Wazuh API默认允许anonymous用户访问部分只读接口如/agents列表。攻击者可利用此获取内网Agent拓扑。关闭方法编辑/var/ossec/api/configuration/auth/users.json{ anonymous: { password: , roles: [], allowed_ips: [] } }将roles数组清空并确保allowed_ips为空。重启API服务sudo systemctl restart wazuh-api7. 我的私藏调试工具箱5个命令行利器在Wazuh排错过程中光靠systemctl status和tail -f远远不够。以下是我在实战中沉淀出的5个高效调试命令每个都经过20次故障验证。7.1wazuh-logtest实时验证规则匹配逻辑当你写了一条新规则不确定它能否捕获目标日志时不用重启服务直接用wazuh-logtest模拟# 启动交互式测试 sudo /var/ossec/bin/wazuh-logtest # 输入原始日志按CtrlD结束 Mar 15 10:30:22 server sshd[1234]: Failed password for root from 192.168.1.100 port 54321 ssh2 # 输出会显示匹配的规则ID、级别、描述 **Phase 1: Completed pre-decoding. full event: Mar 15 10:30:22 server sshd[1234]: Failed password for root from 192.168.1.100 port 54321 ssh2 **Phase 2: Completed decoding. hostname: server program_name: sshd **Phase 3: Completed filtering (rules). rule_id: 5712 rule_level: 5 rule_description: SSHD brute force trying to get access to the system.7.2wazuh-db直连Wazuh内置数据库Wazuh Manager使用SQLite作为本地数据库存Agent状态、配置等。当wazuh-control命令失效时可直连排查# 进入数据库交互 sudo -u wazuh /var/ossec/bin/wazuh-db # 查看所有Agent状态 sqlite SELECT id, name, ip, status FROM agent; # 查看某Agent的最后心跳时间 sqlite SELECT last_keepalive FROM agent WHERE id001;7.3journalctl -u wazuh* -f聚合所有Wazuh服务日志比分别tail多个日志文件高效得多# 实时跟踪所有Wazuh相关服务manager, agent, api, kibana sudo journalctl -u wazuh-manager -u wazuh-agent -u wazuh-api -u kibana -f # 加上时间戳和优先级 sudo journalctl -u wazuh-manager -o short-iso --priority3 -f7.4tcpdump -i any port 1514 or port 1515 -w wazuh.pcap抓取Agent通信原始包当Agent连不上Manager又看不出日志原因时抓包是最权威的诊断手段# 在Manager上抓包 sudo tcpdump -i any port 1514 or port 1515 -w /tmp/wazuh.pcap # 然后在Wireshark中打开过滤wazuh.agent # 正常流程Agent发SYN → Manager回SYN-ACK → Agent发ACK → Agent发注册请求 # 异常情况只有SYN无SYN-ACK → 防火墙拦截有SYN-ACK但无ACK → Agent网络栈异常7.5wazuh-control restart优雅重启所有Wazuh服务比systemctl restart wazuh-manager更彻底它会按依赖顺序停止/启动所有组件包括wazuh-db, wazuh-analysisd等# 停止所有服务 sudo /var/ossec/bin/wazuh-control stop # 启动所有服务自动处理依赖 sudo /var/ossec/bin/wazuh-control start # 查看各模块状态 sudo /var/ossec/bin/wazuh-control status8. 最后一次系统性复盘从零开始的12分钟安装清单基于以上所有踩坑经验我整理了一份严格按时间顺序执行的12分钟安装清单。它剔除了所有“可能不需要”的步骤只保留生产环境必需的17个动作实测在全新Ubuntu 22.04虚拟机上耗时11分43秒。时间动作命令/要点T0:00更新系统并安装基础工具sudo apt update sudo apt install -y curl wget gnupg2 apt-transport-httpsT0:45验证并设置vm.max_map_countsudo sysctl -w vm.max_map_count262144T1:10启用NTP并校准时间sudo timedatectl set-ntp true sudo systemctl restart systemd-timesyncdT1:30下载并运行预处理脚本修复ARM64/国内源curl -sO https://raw.githubusercontent.com/wazuh/wazuh-ansible/master/scripts/preinstall.sh sudo bash preinstall.shT2:20添加Wazuh官方GPG密钥curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUHT2:45添加Wazuh仓库源echo deb [archamd64 signed-by/usr/share/keyrings/wazuh-keyring.gpg] https://packages.wazuh.com/4.8/apt/ stable mainT3:10更新apt缓存sudo apt updateT3:25安装Elasticsearch离线包方式wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.12-amd64.deb sudo dpkg -i elasticsearch-7.17.12-amd64.debT4:50配置ES内存与路径echo ES_JAVA_OPTS-Xms2g -Xmx2gT5:10启动ES并等待green状态sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearchT6:30安装Wazuh Managersudo apt install -y wazuh-managerT7:00安装Wazuh APIsudo apt install -y wazuh-apiT7:20安装Kibana及Wazuh插件sudo apt install -y wazuh-kibanaT8:00初始化Wazuh数据库sudo -u wazuh /var/ossec/bin/wazuh-dbT8:15启动所有Wazuh服务sudo /var/ossec/bin/wazuh-control startT9:00配置Kibana代理sudo sed -i s/#server.host: \localhost\/server.host: \0.0.0.0\/ /etc/kibana/kibana.ymlT9:20重启Kibanasudo systemctl restart kibanaT10:00验证所有服务状态sudo /var/ossec/bin/wazuh-control status curl -k https://localhost:55000/version关键提醒此清单假设你使用的是x86_6