无法在Cloudwatch for AWS MQ下查看日志

时间:2019-09-24 15:47:52

标签: terraform amazon-cloudwatch amazon-cloudwatchlogs amazon-mq

下面的TF代码执行没有问题,并且还创建了MQ代理,但是我无法在默认创建的CloudWatch日志流组下看到MQ的日志。有人可以建议我失踪的地方,以便在main.tf下添加cloudwatch enable吗?

resource "aws_mq_broker" "broker" {
  broker_name = "example-mq"

  tags = merge(
    var.common_tags,
    map("Classification", "private"),
    map("Name", "example-mq")
  )

  configuration {
    id       = "${aws_mq_configuration.mq-config.id}"
    revision = "${aws_mq_configuration.mq-config.latest_revision}"
  }

  apply_immediately = true

  engine_type                = "ActiveMQ"
  engine_version             = "5.15.9"
  auto_minor_version_upgrade = true
  deployment_mode            = "ACTIVE_STANDBY_MULTI_AZ"
  subnet_ids                 = "subnet-12341234123"
  security_groups            = "sg-123123123"
  host_instance_type         = "mq.m5.large"
  publicly_accessible        = false

  user {
    username       = "mq_username"
    password       = "mq_password"
    groups         = "admin_group"
    console_access = true
  }

  logs {
    general = true
    audit   = false
  }

  depends_on = ["aws_mq_configuration.mq-config"]
}


resource "aws_mq_configuration" "mq-config" {
  name           = "mq-config"
  engine_type    = "ActiveMQ"
  engine_version = "5.15.9"
  data           = "${data.template_file.mq_configuration_data.rendered}"

  tags = merge(
    var.common_tags,
    map("Classification", "private"),
    map("Name", "mq-config")
  )

  depends_on = ["data.template_file.mq_configuration_data"]
}

# data for MQ broker configuration
data "template_file" "mq_configuration_data" {
  template = "${file("files/data.xml.tpl")}"

  vars = {
    upload                   = upload
    processing               = processing
  }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

根据Amazon MQ documentation,您需要创建一个基于资源的策略以允许Amazon MQ将日志发布到CloudWatch:

data "aws_iam_policy_document" "mq_logs" {
  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_logs" {
  policy_document = data.aws_iam_policy_document.mq_logs.json
  policy_name     = "mq-logs"
}