ADC

学习

以下是遇到学习功能问题时推荐的一些最佳实践:

Aslearn 流程

  • 验证 aslearn 进程是否正在运行。
  • 查看顶部命令输出
  • 通过执行以下命令检查 ps 命令的输出:

    ps -ax | grep aslearn | grep -v "grep"

    示例:

     root@ns# ps -ax | grep aslearn | grep -v "grep"
     1439  ??  Ss     0:03.86 /netscaler/aslearn -start -f /netscaler/aslearn.conf
     <!--NeedCopy-->
    
  • 通过验证 ns.log 文件,识别在观察到的问题出现之前最近运行的配置命令:

    /var/log/ns.log

  • 查看 aslearn 日志以检查 aslearn 消息:

    /var/log/aslearn.log

  • 隔离已生效的配置文件和安全检查

  • 执行以下命令,找出失败的 GUI 和 CLI 命令:

    show appfw learningdata <profileName> <securityCheck>

    示例:

    • show learningdata test_profile starturl
    • show learningdata test_profile crosssiteScripting
    • show learningdata test_profile sqLInjection
    • show learningdata test_profile csRFtag
    • show learningdata test_profile fieldformat
    • show learningdata test_profile fieldconsistency
  • 从 bsd shell 提示符处执行 sqlite 的完整性检查:

    nsshell # sqlite3 /var/nslog/asl/<profile_name_in_lowercase>.db 'pragma integrity_check;

    示例:

     root@ns# sqlite3 /var/nslog/asl/tsk0247284.db 'pragma integrity_check;'
     ok
     <!--NeedCopy-->
    
  • 部署或移除规则以重新开始学习:

    • 如果达到了 2000 个学习项目(每项防护),您就无法再开始学习该保护了
    • 如果数据库的大小已达到 20 MB,则停止学习所有保护措施
    • 重新启动 aslearn 进程

    */netscaler/aslearn -start -f/netscaler/aslearn.conf*

  • 通过执行以下命令检查 /var 文件夹中的空间:

    du -h /var

  • 通过执行以下命令检查学习阈值限制:

    show appfwlearningsettings <profile_name> <securityCheck>

  • 通过执行以下命令收集学习到的数据:

    export appfwlearningdata <profile_name> <securityCheck>

  • 确定学习到的数据已上传到收集器中。
学习