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

Azure App Service行为异常:SSH无法连接且日志流显示异常

Azure App Service开发实例Kudu/Web SSH异常排查方案

问题背景

我在Azure App Service计划下运行两个应用已逾一年,运行状态良好:一个生产实例、一个开发实例,均通过Azure DevOps基于对应main/develop分支提交构建Docker容器。今早给开发实例启用memcached替代数据库存储会话(同时在线用户约12人,超时时间5分钟)后出现异常:

  • 日志流仅显示Kudu控制器相关信息
  • Web SSH无法连接
  • 但应用本身仍100%可用

已完成排查:

  • 确认sshd_conf配置符合微软要求,未修改要求的root密码
  • 未改动的生产实例仍正常运行且SSH可正常连接
  • 对比两个实例的Dockerfile与entry-point.sh,仅开发实例曾添加安装和启动memcached的代码行,移除这些代码后问题依旧,怀疑Kudu出现故障

排查与解决步骤

  1. 强制重启Kudu服务
    直接在Azure门户进入开发实例的「高级工具」(Kudu)页面,点击顶部的「重启」按钮。如果无法通过门户打开Kudu,可通过Azure CLI发送重启请求:

    az webapp restart --name <你的应用名> --resource-group <你的资源组名> --slot <开发实例槽名(如果用了部署槽)>
    

    或者向Kudu端点发送POST请求(需Azure账户认证):

    POST https://<你的应用名>.scm.azurewebsites.net/api/restart
    
  2. 检查资源占用情况
    进入Azure门户的「监控」面板,查看开发实例的CPU、内存使用率,确认Kudu的scm进程是否被memcached或其他进程抢占资源。如果生产实例正常,可对比两者的资源占用曲线。

  3. 重置Kudu配置
    在开发实例的「配置」>「应用设置」中,添加临时环境变量WEBSITE_RESET_KUDU=1,保存后等待应用重启,再删除该变量。此操作会重置Kudu的核心配置,解决因配置文件异常导致的问题。

  4. 排查端口冲突
    确认Docker镜像中没有端口映射冲突:

    • 检查Dockerfile的EXPOSE指令,确保未占用Kudu SSH默认的2222端口
    • 查看entry-point.sh,确认没有修改SSH端口或关闭Kudu相关进程的操作
  5. 提取Kudu后台日志
    如果日志流无法查看详细信息,可通过Azure CLI下载Kudu的SCM日志:

    az webapp log download --name <你的应用名> --resource-group <你的资源组名> --log-type scm
    

    解压后查看scm目录下的日志文件,定位Kudu进程的异常原因。

  6. 重新部署干净镜像
    若以上步骤均无效,尝试将生产实例的Docker镜像重新部署到开发实例,排除镜像层面的隐藏问题(比如构建过程中引入的依赖冲突)。


内容的提问来源于stack exchange,提问作者Tim D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:12:50