Amazon MQ не может публиковать логи в CloudWatch
Я проверил вариант с широким доступом к политике и дошел до той же точки - группы журналов созданы, а поток журналов - нет.
Затем следуйте https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-configuring-cloudwatch-logs.html и ожидаемый результат - получение этих сообщений в CloudWatch, но ничего не происходит.
Цель состоит в том, чтобы иметь аудит и общие журналы MQ в CloudWatch. Кому-нибудь удалось транслировать логи MQ в CloudWatch? Как я мог дальше отлаживать это?
2 ответа
Или, если вы используете AWS Cli, вы можете попробовать
aws --region [your-region] logs put-resource-policy --policy-name AmazonMQ-logs \
--policy-document '{
"Statement": [
{
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow",
"Principal": {
"Service": "mq.amazonaws.com"
},
"Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*"
}
],
"Version": "2012-10-17"
}'
Мне удалось создать Amazon MQ Broker с включенным ведением журналов и публикацией журнала, переданного в Cloudwatch с помощью поставщика terraform 1.43.2 - мой проект заблокирован на более старой версии поставщика tf, поэтому, если вы используете более новую версию, вы все должно быть в порядке
Это была политика, которую я не понял правильно с первого раза, и которая требовалась MQ для публикации в Cloudwatch:
data "aws_iam_policy_document" "mq-log-publishing-policy" {
statement {
actions = [
"logs:CreateLogStream",
"logs:PutLogEvents",
]
resources = ["arn:aws:logs:*:*:log-group:/aws/amazonmq/*"]
principals {
identifiers = ["mq.amazonaws.com"]
type = "Service"
}
}
}
resource "aws_cloudwatch_log_resource_policy" "mq-log-publishing-policy" {
policy_document = "${data.aws_iam_policy_document.mq-log-publishing-policy.json}"
policy_name = "mq-log-publishing-policy"
}
Убедитесь, что эта политика была применена правильно, иначе ничего не появится в Cloudwatch. Я сделал это, используя aws cli:
aws --profile my-testing-profile-name --region my-profile-region logs describe-resource-policies
и вы должны увидеть политику в выводе.
Установите агент AWS CLI для Windows и настройте свои учетные данные https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html
Создайте файл JSON в "C:\Users\YOUR-USER\", содержащий вашу политику. Например: C:\Users\YOUR-USER\policy.json. Вы можете просто скопировать его сюда и вставить в свой файл.json:
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": "mq.amazonaws.com"},"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Resource" : "arn:aws:logs:*:*:log-group:/aws/amazonmq/*"}]}
Откройте свой CMD и просто введите:
aws --region eu-central-1 logs put-resource-policy --policy-name amazonmq_to_cloudwatch --policy-document file://policy.json
Отлично сработано! В результате будет создана ПОЛИТИКА РЕСУРСОВ AWS, которую иногда невозможно создать в консоли IAM.