Назад | Перейти на главную страницу

Агент AWS Cloudwatch не принимает изменения

Я в тупике. У меня есть два файла журнала, за которыми следит агент AWS CloudWatch. Первый, /var/log/nginx/access.log, отлично работает. Второй, /var/log/otherserver/access.log, не получил никаких изменений. Не в конце концов, никогда ЕСЛИ Я перезапускаю агент, после чего он принимает изменения и отправляет их в CloudWatch, как ожидалось.

/var/log/otherserver/access.log - это файл журнала, который периодически синхронизируется с другого сервера, на котором не может быть установлен агент. Команда выглядит так:

rsync -av user@host:/var/log/access.log /var/log/otherserver/access.log

Агент определенно жестяная банка прочтите его, потому что он считывает изменения после перезапуска.

Положение записи в файле конфигурации не имеет значения.

Даты в записях журнала для файла журнала rsync'ed такие же, как у сервера (все указано в формате UTC).

Если я перемещаю файл журнала, агент начинает жаловаться:

2015-12-14 16:02:26,158 - cwlogs.push.stream - WARNING - 3344 - Thread-1 - No file is found with given path '/var/log/otherserver/access.log'.

Конфигурация этого второго файла журнала почти идентична первому (см. Ниже).

[website.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/otherserver/access.log
log_stream_name = master-platform.sh
initial_position = start_of_file
log_group_name = web-access

[app.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/nginx/lax.access.log
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = web-access

Есть ли у кого-нибудь любой подскажите, что здесь происходит? Или можете предложить альтернативный агент, менее ... дурацкий?

Возможно, ваш файл состояния агента поврежден из-за того, что вы продолжали вносить изменения в конфигурацию. Есть два способа исправить это:

  • Опция 1: Используйте новое имя для заголовка блока конфигурации.
    • То есть изменить [website.access.log] к [something.else].
  • Вариант 2: Удалите файл состояния агента после остановки службы.

    sudo service awslogs stop
    sudo rm /var/lib/awslogs/agent-state
    sudo service awslogs start
    

Обратите внимание, что вариант 2 может изначально привести к тому, что дублирующиеся журналы будут отправлены в CloudWatch при создании нового файла состояния.