Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Cloudwatch代理不向Cloudwatch发送日志_Amazon Web Services_Amazon Cloudwatch - Fatal编程技术网

Amazon web services Cloudwatch代理不向Cloudwatch发送日志

Amazon web services Cloudwatch代理不向Cloudwatch发送日志,amazon-web-services,amazon-cloudwatch,Amazon Web Services,Amazon Cloudwatch,我正在尝试向CloudWatch发送两批日志 以下是两个日志: /var/log/apache2/access.log /var/log/apache2/error.log 我使用amazon cloudwatch代理配置向导创建配置文件,下面是一个文件片段,显示了正确的文件路径: "collect_list": [ { "file_path": "/var/log/apache2/access.log", "log_group_name": "*gr

我正在尝试向CloudWatch发送两批日志

以下是两个日志:

  • /var/log/apache2/access.log
  • /var/log/apache2/error.log
  • 我使用amazon cloudwatch代理配置向导创建配置文件,下面是一个文件片段,显示了正确的文件路径:

    "collect_list": [
        {
             "file_path": "/var/log/apache2/access.log",
             "log_group_name": "*group_name*",
             "log_stream_name": "apache-access"
        },
        {
             "file_path": "/var/log/apache2/error.log",
             "log_group_name": "group-name*",
             "log_stream_name": "apache-error"
        }
    ]
    
    我在配置中加载了以下内容:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
    
    并且在amazon-cloudwatch-agent.log中没有出现错误和错误

    检查Amazon CloudWatch代理的状态表明它正在运行并且没有错误。还声明架构有效

    所有这些的独特之处在于,我已经删除了旧的CloudWatch代理,并安装了新的CloudWatch代理。我已经在两个EC2实例上完成了这项工作,其中一个实例一切正常,另一个实例没有将日志发送到CloudWatch

    简言之,为什么日志没有上传到CloudWatch?我能做些什么来解决这个问题

    任何帮助都将不胜感激

    检查

    • CloudWatch代理日志-
      /opt/aws/amazon CloudWatch代理/logs/amazon CloudWatch代理.log
      。 在这里,对于这两个文件,您应该看到一些类似于从/var/log/apache2/access.log中读取的-
      的行

    • 代理toml文件,以确保两个文件路径都已配置,并检查区域-
      /opt/aws/amazon cloudwatch agent/etc/amazon cloudwatch agent.toml


    因此,问题原来是基于权限的。CloudWatch配置向导默认使用cwagent作为运行CloudWatch的用户,官方指南中也重申了这一点

    将running using更改为root解决了该问题,尽管在尝试运行该文件时,这些文件都具有777权限

    您编辑的配置文件是:

    sudo nano /opt/aws/amazon-cloudwatch-agent/bin/config.json
    
    在文件顶部,您将看到:

    "agent": {
        "metrics_collection_interval": 60,
        "run_as_user": "cwagent"
    },
    
    您需要将run_as_user更改为root,如:

    "agent": {
        "metrics_collection_interval": 60,
        "run_as_user": "root"
    },
    
    更改后,只需重新加载配置文件:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
    
    然后重新启动服务:

    sudo systemctl restart amazon-cloudwatch-agent.service
    

    然后,您将看到日志进入CloudWatch。需要一些回填

    谢谢你的帮助!这是一个与权限相关的问题。这里有一个关于设置带有屏幕截图和终端输出的CloudWatch的分步指南