awslogs代理无法跟上

时间:2016-06-14 05:07:25

标签: amazon-web-services logging amazon-cloudwatch amazon-cloudwatchlogs

我在服务器上运行awslogs agent,当我在AWS控制台中查看CloudWatch日志时,日志大约落后60分钟。我们的服务器每小时产生大约650MB的数据,似乎代理无法跟上。

这是我们的缩写配置文件:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(),"FAB button clicked",Toast.LENGTH_LONG).show();
            }
        });

是否有一种通用的方法来加速awslogs代理?

2 个答案:

答案 0 :(得分:5)

数据量(> 0.2MB / s)对于代理来说不是问题。该代理的每个日志文件的容量约为3MB / s。但是,如果您对多个日志文件使用相同的日志流,则代理会写入相同的流,并最终相互阻塞。在日志文件之间共享流时,吞吐量会减半。

此外,还可以配置可能会对性能产生影响的a few properties

[application.log]
datetime_format = %Y-%m-%d %H:%M:%S
time_zone = UTC
file = var/output/logs/application.json.log*
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = ApplicationLog

[service_log]
datetime_format = %Y-%m-%dT%H:%M:%S
time_zone = UTC
file = var/output/logs/service.json.log*
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = ServiceLog

为了解决我的问题,我做了两件事:

  1. 大幅增加批量大小(默认为32768字节)
  2. 为每个日志文件使用不同的日志流
  3. 代理人没有跟上问题。这是我的最终配置文件:

    buffer_duration = <integer>
    batch_count = <integer>
    batch_size = <integer>
    

答案 1 :(得分:0)

awslogs代理支持日志轮换 所以这个:

file = var/output/logs/application.json.log*

会收到太多文件吗?

尝试:

file = var/output/logs/application.json.log

加快这个过程。