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

使用POSIX正则配置monit时出现.*相关语法错误该如何解决

问题原因

你遇到的报错和.*本身无关,POSIX正则里.*的写法没有特殊要求,报错来自两个语法错误:

  1. POSIX字符类必须嵌套两层方括号使用,比如匹配数字要写[[:digit:]]、匹配空白要写[[:space:]],你原配置中所有字符类都少了外层方括号,不符合语法规范。
  2. 正则内部的双引号没有按照monit的要求正确转义,导致配置解析失败。

解决方法

将所有POSIX字符类补充外层方括号,检查转义规则即可,修改后的完整配置如下:

check file access_log_1 with path /app/DNIF_logs/access_log_1
        ignore content = ".*favicon.*"
        if content = "^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}[[:space:]]((((([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3})|\-)[[:space:]]([[:digit:]]{6,7}|\-)[[:space:]][-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&=]*)[[:space:]])|)-[[:space:]]-[[:space:]]\[[[:digit:]]{2}\/([A-Z]|[a-z]){3}\/[[:digit:]]{4}\:[[:digit:]]{2}\:[[:digit:]]{2}\:[[:digit:]]{2}[[:space:]]\+[[:digit:]]{4}\][[:space:]]\"(.*)\"[[:space:]](500|502|503)([[:digit:]]|[[:space:]])*\"https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)\"(.*)" then alert

额外建议

  • 低版本monit支持用单引号包裹正则,不需要转义内部的双引号,写法更简洁,你可以根据你的monit版本选择。
  • 调试长正则时可以先拆分小段测试,确认每段没有语法错误后再拼接,更方便定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:02