You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

McAfee ESM 11.5.X告警触发时Python脚本无法执行

问题环境与现象
  • 部署环境:McAfee ESM 虚拟机,软件版本 ESM 11.5.4 20220106
  • 需求:实现告警触发时自动运行指定Python脚本
  • 故障现象:告警规则已开启Execute remote command配置项,告警本身可以正常触发,但绑定的Python脚本始终无法执行,已参考如下配置调整仍未解决问题:
    McAfee ESM告警触发脚本配置界面
故障排查与解决方法

ESM 11.5.4版本的Execute remote command模块对执行上下文有严格限制,脚本无法运行基本都是权限、路径、环境变量配置不符合要求导致,按以下步骤逐一排查:

  • 权限配置校验
    ESM触发命令时默认使用nobody低权限用户运行,无root权限、不加载任何用户环境变量:
    1. 脚本不要存放在/root、/home/个人用户目录这类权限隔离路径,统一放到/opt/scripts/这类全局可访问的公共目录
    2. 给脚本及所有上层目录配置全局可执行、可读权限:
      chmod -R 755 /opt/scripts/
      chmod 755 /opt/scripts/your_alarm_script.py
      
  • 命令配置校验
    配置框内必须写全路径调用,禁止使用相对路径、省略解释器路径:
    1. 先在ESM后台查询Python解释器绝对路径:
      which python3
      # 版本默认路径一般为 /usr/bin/python3
      
    2. 命令配置框直接填写完整执行指令,不要加sudo、多余的管道/重定向符号,示例:
      /usr/bin/python3 /opt/scripts/your_alarm_script.py
      
    3. Python脚本首行必须添加对应解释器的shebang头,脚本内所有文件、模块引用全部使用绝对路径,禁止使用相对路径:
      #!/usr/bin/python3
      # 业务代码从第二行开始编写
      
  • 系统限制校验
    ESM虚拟机默认开启SELinux,会拦截低权限用户的自定义脚本执行:
    1. 执行setenforce 0临时关闭SELinux测试,如果脚本恢复执行,修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive,重启设备后永久生效。
  • 链路连通性验证
    先不要直接调Python脚本,在命令配置框写入简单测试指令验证执行链路是否正常:
    /usr/bin/touch /tmp/esm_alarm_test.log
    
    手动触发告警后检查/tmp目录下是否生成对应测试文件:
    • 能生成:说明命令执行链路正常,问题出在Python脚本本身的路径、依赖配置上
    • 不能生成:直接查看/var/log/mfe/alarm.log日志,根据报错定位具体拦截原因

已知问题提示:ESM 11.5.4 20220106初始版本存在Execute Command模块的bug,低权限用户无法触发自定义脚本,以上配置全部校验后仍无法执行的,安装2022年3月及之后发布的ESM累积补丁即可修复。

内容的提问来源于stack exchange,提问作者Praveen Deshpande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:24:21