Агент 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 совпадают с данными сервера (все указано в формате 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 ответ
Возможно, ваш файл состояния агента поврежден, потому что вы продолжали вносить изменения в конфигурацию. Есть два способа исправить это:
- Вариант 1. Используйте новое имя для заголовка вашего блока конфигурации.
- То есть изменение
[website.access.log]
в[something.else]
,
- То есть изменение
Вариант 2. Удалите файл состояния агента после остановки службы.
sudo service awslogs stop sudo rm /var/lib/awslogs/agent-state sudo service awslogs start
Обратите внимание, что вариант 2 может первоначально привести к отправке дубликатов журналов в CloudWatch при создании нового файла состояния.