AWS EC2 Session Manager报Standard_Stream not found的原因及解决方法
报错含义
Plugin with name Standard_Stream not found报错是AWS SSM Agent的数据流处理组件加载失败导致的。你运行的Kafka流任务属于高资源占用作业,大概率是任务挤占了SSM Agent的运行资源,导致SSM Agent进程崩溃、核心插件损坏无法加载,最终会话被强制终止,重启会话时也无法完成组件初始化。
解决方法
- 优先通过EC2 SSH密钥直连实例(需要你提前在安全组开放22端口入方向权限),进入系统后先排查SSM Agent状态:
执行systemctl status amazon-ssm-agent查看运行状态,如果显示异常退出、停止,先执行systemctl restart amazon-ssm-agent重启服务。 - 重启后仍然报错的话,直接升级SSM Agent到最新版本修复组件缺失问题,CentOS 7下执行如下命令:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm - 升级完成后执行
systemctl enable --now amazon-ssm-agent确保服务开机自启,此时再尝试通过Session Manager连接即可恢复正常。 - 排查实例资源占用,执行
top、free -h确认CPU、内存使用率,如果Kafka流任务占用资源过高导致SSM Agent被系统OOM机制杀掉,建议调整Kafka任务的JVM堆内存参数,或者升级实例配置避免资源抢占。 - 后续运行长时间后台任务时,不要直接在前台终端启动,可通过
nohup、screen、tmux这类工具启动任务,避免会话中断导致任务一同停止,例如用nohup启动的命令参考:nohup 你的Kafka任务启动命令 > kafka-task.log 2>&1 &,任务日志会写入kafka-task.log文件,就算终端断开也不影响任务运行。 - 如果暂时没有SSH连接权限,可以到EC2控制台选中对应实例,依次点击【操作】>【实例设置】>【编辑用户数据】,输入下方修复脚本,保存后重启实例即可自动修复SSM Agent问题:
Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash systemctl restart amazon-ssm-agent --//
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

