#amazon-web-services #amazon-ec2 #amazon-cloudwatch #aws-cloudwatch-log-insights
Вопрос:
Я новичок в aws, и мне нужно опубликовать журналы службы приложений в cloud watch. Я попробовал действия, упомянутые в документации AWS, и их работу. Я настроил те же шаги с помощью конвейера Дженкинса. Здесь я сталкиваюсь с проблемой. Журналы не публикуются, т. е. Я не мог видеть журналы с консоли AWS. Я вошел в экземпляр ec2 и проверил статус службы cloudwatch, и он показывает
{
"status": "running",
"starttime": "2021-03-25T07:40:21 0000",
"configstatus": "configured",
"cwoc_status": "stopped",
"cwoc_starttime": "",
"cwoc_configstatus": "not configured",
"version": "1.247347.3b250378"
}
Не понимаю, что здесь не так :(.
Любая помощь была бы полезна.
Заранее спасибо.
Комментарии:
1. Имеет ли ваша роль IAM, привязанная к EC2, разрешение на запись в CloudWatch?
2. Да, роль IAM, привязанная к EC2, имеет разрешение на запись в CloudWatch
3. можете ли вы поделиться дополнительной информацией о том, какой документ вы использовали для настройки. Я следовал этому быстрому началу: Установите и настройте агент журналов CloudWatch на работающем экземпляре EC2 Linux , и он работал без каких-либо проблем.
4. @samtoddler Я выполнил шаги, упомянутые здесь ссылка
Ответ №1:
Я перешел по ссылке, упомянутой вами, Установив и запустив агент CloudWatch на своих Серверах.
Ниже приведена моя конфигурация для отправки журналов и нескольких других показателей, которая генерируется этой командой
Запустите мастер настройки агента CloudWatch
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/messages",
"log_group_name": "messages",
"log_stream_name": "{instance_id}"
}
]
}
}
},
"metrics": {
... # metrics configuration here
}
}
Запустил клиент, как описано в документе
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a
fetch-config -m ec2 -s -c file:///opt/aws/amazon-cloudwatch-agent/bin/config.json
Запустите агент CloudWatch С помощью командной строки
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
{
"status": "running",
"starttime": "2021-03-26T11:46:14 0000",
"version": "1.247345.35"
}
Вы можете искать проблемы в каталоге журналов, если таковые имеются
[root@ip-xx amazon-cloudwatch-agent]# ls
amazon-cloudwatch-agent.log configuration-validation.log state
[root@ip-xx amazon-cloudwatch-agent]# pwd
/var/log/amazon/amazon-cloudwatch-agent
Кстати, если бы я просто хотел перенести журналы в cloudwatch, я бы использовал этот
Быстрый запуск: Установите и настройте агент журналов CloudWatch на работающем экземпляре EC2 Linux
Комментарии:
1. Моя конфигурация и шаги одинаковы. Единственная разница, которую я мог видеть, — это пользователь. «run_as_user»: «cwagent»
2. может ли это быть причиной??
3. @Priyanka да, если у пользователя
cwagent
нет прав на чтение журналов, которые вы пытаетесь протолкнуть, то это создает проблемы. Запуск агента CloudWatch от имени другого пользователя . Попробуйте настроить пользователя наroot
. Должно сработать, если нет, вы можете следовать руководству, связанному с запуском агента от имени другого пользователя.4. в этом и заключалась проблема.. run_as_user : у cwagent не было разрешений. Изменил его на корневой.. и теперь он работает нормально.. Спасибо 🙂