无法安装awslogs代理

时间:2017-02-01 23:38:27

标签: python amazon-web-services

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

<asp:TemplateField HeaderText="Header">
                <ItemTemplate>
                    <asp:CheckBox ID="chk" runat="server" Checked='<%# ((string)Eval("row") == "1") %>' />
                </ItemTemplate>

            </asp:TemplateField>

它似乎在第2步失败了:

sudo python ./awslogs-agent-setup.py --region us-east-1

缺少哪个目录或文件?

7 个答案:

答案 0 :(得分:1)

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

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

    creating build/temp.linux-x86_64-2.7
    checking if libyaml is compilable
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-
D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-
size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/check_libyaml.c -o build/temp.linux-x86_64-2.7/check_libyaml.o
checking if libyaml is linkable
gcc -pthread build/temp.linux-x86_64-2.7/check_libyaml.o -L/usr/lib64 -lyaml -o build/temp.linux-x86_64-2.7/check_libyaml
building '_yaml' extension
creating build/temp.linux-x86_64-2.7/ext
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c ext/_yaml.c -o build/temp.linux-x86_64-2.7/ext/_yaml.o
ext/_yaml.c:4:20: fatal error: Python.h: No such file or directory
 #include "Python.h"
                    ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1

我无法使用Python 2.7,所以我切换到Python 3.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*

我再次运行installer命令并传递了@ user2061886报告的错误。我可以安装和配置CloudWatch Logs Agent。但是,在我启动服务(sudo service awslogs start)后不久,我遇到了第二个问题。这次我不得不拖尾以下文件来发现问题:/var/log/awslogs.log。 cloudwatch日志代理基本上抱怨无法找到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'

我通过pip手动安装软件包解决了这个问题:

pip3.5 install awscli-cwlogs. 

这解决了问题!

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我尝试在centos docker上安装时遇到同样的问题。事实证明,在安装这些软件包

之后我无需更新python
python-devel libpython-dev which initscripts cronie

答案 3 :(得分:0)

^^是的..我修复了一个类似的问题,其中包含一些在/var/log/awslogs.log中指向的缺失依赖项

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

答案 4 :(得分:0)

Amazon Linux 2

awslogs代理现在可以作为yum软件包https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

使用
sudo yum install -y awslogs
sudo systemctl start awslogsd
sudo systemctl enable awslogsd.service

确保按照文档中所述更改AWS区域

答案 5 :(得分:0)

所以大家都想通了!

  

install_awslogs_cli中的文件“ ./awslogs-agent-setup.py”,第520行       venv_in_path =(subprocess.call([“”“,” virtualenv“],stderr = self.log_file,stdout = self.log_file)== 0)

关于上述错误,您可以使用“哪个”命令,但不幸的是未安装“哪个”命令。 安装完成后,一切开始正常工作。

干杯!!如果有帮助的话。

答案 6 :(得分:0)

我知道我要晚2年以上,但是我找不到答案。

我遇到了同样的问题,这是因为磁盘的inode用尽了(我认为磁盘空间用尽会导致相同的问题),并且我解决了运行sudo apt-get autoremove

的问题。

您可以使用df -i

检查您的inode

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