CloudWatch Logs代理停止推送Jenkins日志数据的问题求助
解决CloudWatch Logs Agent推送失败:ImportError: No module named service
我之前也碰到过一模一样的问题!这个错误根源是CloudWatch Logs Agent(也就是awslogs)依赖的AWS CLI版本和cwlogs插件不兼容,导致找不到awscli.customizations.service模块。下面是几个经过验证的解决方法:
方法1:重装兼容版本的awslogs和AWS CLI
这是最稳妥的方案,先停掉awslogs服务:
sudo service awslogs stop
接着卸载现有版本的awscli和cwlogs:
sudo pip uninstall -y awscli cwlogs
安装经过验证的兼容版本(亲测这个组合没问题):
sudo pip install awscli==1.18.223 cwlogs==1.3.3
最后重启服务:
sudo service awslogs start
方法2:修复Python模块路径问题
有时候是awslogs自带的Python环境找不到系统里的awscli模块,你可以先验证一下:
/var/awslogs/bin/python -c "import awscli.customizations.service; print('模块找到了!')"
如果这条命令报错,说明确实是路径问题,那就把系统Python的awscli模块软链接到awslogs的Python环境里:
sudo ln -s /usr/lib/python2.7/site-packages/awscli /var/awslogs/lib/python2.7/site-packages/
⚠️ 注意:不同系统的Python路径可能不一样,你可以用find / -name "awscli" -type d找到实际路径再替换。
链接完成后重启服务试试。
方法3:升级到最新版本
如果上面的方法都不行,试试直接升级到最新版的awscli和cwlogs,新版本通常修复了兼容性问题:
sudo pip install --upgrade awscli cwlogs
升级完成后重启服务:
sudo service awslogs restart
搞定之后记得去看/var/log/awslogs.log确认有没有新报错,同时去CloudWatch Logs控制台检查jenkins.log的流是不是恢复推送了。
内容的提问来源于stack exchange,提问作者maltamash
相关产品推荐
相关产品推荐

