Python 安装awslogs代理时遇到问题

Python 安装awslogs代理时遇到问题,python,amazon-web-services,Python,Amazon Web Services,我在ec2节点上安装awslogs代理时遇到问题。运行此命令时: sudo python ./awslogs-agent-setup.py --region us-east-1 在第2步,它似乎失败了,如下所示: Launching interactive setup of CloudWatch Logs agent ... Step 1 of 5: Installing pip ...DONE Step 2 of 5: Downloading the latest CloudWatch

我在ec2节点上安装awslogs代理时遇到问题。运行此命令时:

sudo python ./awslogs-agent-setup.py --region us-east-1
在第2步,它似乎失败了,如下所示:

Launching interactive setup of CloudWatch Logs agent ... 

Step 1 of 5: Installing pip ...DONE

Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... 
Traceback (most recent call last):
  File "./awslogs-agent-setup.py", line 1144, in <module>
    main()
  File "./awslogs-agent-setup.py", line 1140, in main
    setup.setup_artifacts()
  File "./awslogs-agent-setup.py", line 696, in setup_artifacts
    self.install_awslogs_cli()
  File "./awslogs-agent-setup.py", line 523, in install_awslogs_cli
    subprocess.call([AWSCLI_CMD, 'configure', 'set', 'plugins.cwlogs', 'cwlogs'], env=DEFAULT_ENV)
  File "/usr/lib64/python2.7/subprocess.py", line 524, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
正在启动CloudWatch日志代理的交互式设置。。。
第1步(共5步):安装pip…完成
第2步,共5步:下载最新的CloudWatch日志代理位。。。
回溯(最近一次呼叫最后一次):
文件“/awslogs agent setup.py”,第1144行,在
main()
文件“/awslogs agent setup.py”,第1140行,主目录
setup.setup\u工件()
文件“/awslogs agent setup.py”,第696行,位于setup\u工件中
self.install\u awslogs\u cli()
文件“/awslogs agent setup.py”,第523行,在install\u awslogs\u cli中
subprocess.call([AWSCLI_CMD,'configure','set','plugins.cwlogs','cwlogs'],env=DEFAULT_env)
文件“/usr/lib64/python2.7/subprocess.py”,第524行,在调用中
返回Popen(*popenargs,**kwargs)。等待()
文件“/usr/lib64/python2.7/subprocess.py”,第711行,在__
错误读取,错误写入)
文件“/usr/lib64/python2.7/subprocess.py”,第1327行,在执行子进程中
引发子对象异常
OSError:[Errno 2]没有这样的文件或目录

它缺少什么目录或文件?

虽然这个问题有点老,但我想补充一个答案,因为我最近遇到了同样的问题,但还是设法找到了解决方法。我试图在运行CentOS 7的实例中安装它

当我第一次运行安装命令时,我得到了与@user2061886报告的完全相同的错误日志。安装程序使用以下路径登录到文件:/var/log/awslogs-agent-setup.log。我跟踪该文件,发现安装程序在内部抱怨找不到文件“Python.h”:

我无法让它与Python2.7一起工作,所以我切换到Python3.5。要在CentOS 7中安装Python 3.5,请执行以下操作:

yum -y udpate

yum install -y epel-release

yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-
release-1.0-13.ius.centos7.noarch.rpm

yum -y update

yum install -y python35u*
我再次运行安装程序命令,并通过了@user2061886报告的错误。我可以安装和配置CloudWatch日志代理。然而,在我启动服务(sudo服务awslogs start)后不久,我遇到了第二个问题。这一次,我必须跟踪以下文件以发现问题:/var/log/awslogs.log。cloudwatch logs代理基本上是在抱怨找不到cwlogs包:

Traceback (most recent call last):
  File "/var/awslogs/bin/aws", line 27, in <module>
    sys.exit(main())
  File "/var/awslogs/bin/aws", line 23, in main
    return awscli.clidriver.main()
  File "/usr/lib/python3.5/site-packages/awscli/clidriver.py", line 55, in main
    driver = create_clidriver()
  File "/usr/lib/python3.5/site-packages/awscli/clidriver.py", line 64, in create_clidriver
    event_hooks=emitter)
  File "/usr/lib/python3.5/site-packages/awscli/plugin.py", line 44, in load_plugins
    modules = _import_plugins(plugin_mapping)
  File "/usr/lib/python3.5/site-packages/awscli/plugin.py", line 58, in _import_plugins
    plugins.append(__import__(path))
ImportError: No module named 'cwlogs'

这就解决了问题

是的。。我修复了一个类似的问题,在/var/log/awslogs.log中指出了一些缺少的依赖项



apt get update&&apt get install-y python pip libpython dev

我通过传递要使用的python解释器解决了这个问题:

sudo python ./awslogs-agent-setup.py --region us-east-1 --python=/usr/bin/python3.5

我尝试在centos docker上安装时遇到了同样的问题。事实证明,在安装这些包之后,我可以不更新python

python-devel libpython-dev which initscripts cronie

亚马逊Linux 2

awslogs代理现在以yum软件包的形式提供


确保更改文档中提到的AWS区域,这样大家就可以解决了

文件“/awslogs agent setup.py”,第520行,在install\u awslogs\u cli中 venv_in_path=(子进程调用([“which”,“virtualenv”],stderr=self.log_文件,stdout=self.log_文件)==0)

在上面的错误中,您可以看到正在使用“which”命令,但遗憾的是“which”没有安装。 一旦安装,一切都开始工作


干杯!!如果它对任何人都有帮助

我知道我迟到了2年多,但我找不到答案

我遇到了同样的问题,这是因为磁盘的inode用完了(我认为磁盘空间不足可能会导致同样的问题),我通过运行
sudo-apt-get-autoremove

您可以使用
df-i


我希望这可以帮助任何有此问题的人。

您在哪个平台(操作系统/版本)上运行此功能?好的,安装脚本并没有安装所有的平台。我使用的是RHEL7well,第523行是
子流程.call([AWSCLI_CMD',configure',set',plugins.cwlogs',cwlogs'],env=DEFAULT_env)
,而AWSCLI_CMD是
/var/awslogs/bin/aws
。你能确认这是否存在吗?我遇到了这个问题,可以确认/var/awslogs/bin/aws是丢失的文件。这似乎是由于脚本检测到/var/awslogs/bin/activate的存在造成的-因此它没有为awslogs创建虚拟环境,我相信这就是安装/var/awslogs/bin/aws文件的原因。python-devel为我做了这件事。
sudo python ./awslogs-agent-setup.py --region us-east-1 --python=/usr/bin/python3.5
python-devel libpython-dev which initscripts cronie
sudo yum install -y awslogs
sudo systemctl start awslogsd
sudo systemctl enable awslogsd.service