为什么部分Webshell文件HSS不告警?
问题现象
用户部分Webshell文件,HSS未告警上报。
可能原因
HSS默认句柄占用量为服务器最大句柄数*30%,当用户文件数量大于HSS扫描句柄上限时,会有部分Webshell文件HSS无法检测,因此未进行告警上报。
排查办法
- 登录服务器
- 新建check_inotify.sh文件,并将以下内容复制并保存至check_inotify.sh文件中。
#!/bin/bash # 启用 Bash 的浮点数比较模式 shopt -s globstar nullglob # 获取sysctl fs.inotify.max_user_watches的值 max_user_watches=$(sysctl -n fs.inotify.max_user_watches) # 计算30%的值 threshold=$(echo "$max_user_watches * 0.3" | awk '{print int($1)}') # 计算/opt/app目录下的文件数 app_files_count=$(find /opt/app -type f | wc -l) # 比较并输出结果 if [[ "$app_files_count" -gt "$threshold" ]]; then echo "当前fs.inotify.max_user_watches的值为: $max_user_watches" echo "/opt/app目录下的文件数为: $app_files_count" echo "存在句柄占用问题!" else echo "当前fs.inotify.max_user_watches的值为: $max_user_watches" echo "/opt/app目录下的文件数为: $app_files_count" echo "不存在句柄占用问题。" fi
- 通过以下命令,执行check_inotify.sh文件。
chmod +x check_inotify.sh./check_inotify.sh
如果输出结果显示“存在句柄占用问题!”,请您在华为云管理控制台的右上角,单击“工单 > 新建工单”,通过工单向技术人员寻求帮助。