Skip to content

Support syslog related resources (DCNE-65) #1258

@bardahlm

Description

@bardahlm

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Description

To configure syslog a couple of new resources are needed.

Here is a aci_rest_managed configuration example that sets up syslog for tn common, fab common and fab default, mapping audit, events, faults and session to different facilities.

locals {
  syslog_server = "syslog.example.com"
  facility_mapping = {
    "audit"   = "local6"
    "events"  = "local5"
    "faults"  = "local4"
    "session" = "local3"
  }
}

resource "aci_rest_managed" "syslog_group" {
  for_each   = local.facility_mapping
  dn         = format("uni/fabric/slgroup-syslog_%s", each.value)
  class_name = "syslogGroup"
  content = {
    name                = format("syslog_%s", each.value)
    includeMilliSeconds = "yes"
    includeTimeZone     = "yes"
  }

  child {
    rn         = "console"
    class_name = "syslogConsole"
    content = {
      adminState = "disabled"
    }
  }

  child {
    rn         = "file"
    class_name = "syslogFile"
    content = {
      adminState = "disabled"
    }
  }

  child {
    rn         = "prof"
    class_name = "syslogProf"
  }
}

resource "aci_rest_managed" "syslog_remote_dest" {
  for_each   = local.facility_mapping
  dn         = format("%s/rdst-%s", resource.aci_rest_managed.syslog_group[each.key].dn, local.syslog_server)
  class_name = "syslogRemoteDest"
  content = {
    adminState         = "enabled"
    format             = "aci"
    forwardingFacility = each.value
    host               = local.syslog_server
    name               = format("syslog_%s", each.value)
    port               = "514"
    protocol           = "udp"
    severity           = "information"
  }

  child {
    rn         = "rsARemoteHostToEpg"
    class_name = "fileRsARemoteHostToEpg"
    content = {
      tDn = "uni/tn-mgmt/mgmtp-default/oob-default"
    }
  }
}

resource "aci_rest_managed" "tn_common_syslogsrc" {
  for_each   = local.facility_mapping
  dn         = format("uni/tn-common/monepg-default/slsrc-tn_common_%s", each.value)
  class_name = "syslogSrc"
  content = {
    name   = format("tn_common_%s", each.value)
    minSev = "information"
    incl   = each.key
  }
  child {
    rn         = "rsdestGroup"
    class_name = "syslogRsDestGroup"
    content = {
      tDn = resource.aci_rest_managed.syslog_group[each.key].id
    }
  }
}

resource "aci_rest_managed" "fab_common_syslog_src" {
  for_each   = local.facility_mapping
  dn         = format("uni/fabric/moncommon/slsrc-fab_common_%s", each.value)
  class_name = "syslogSrc"
  content = {
    name   = format("fab_common_%s", each.value)
    minSev = "information"
    incl   = each.key
  }

  child {
    rn         = "rsdestGroup"
    class_name = "syslogRsDestGroup"
    content = {
      tDn = resource.aci_rest_managed.syslog_group[each.key].id
    }
  }
}

resource "aci_rest_managed" "fab_default_syslog_src" {
  for_each   = local.facility_mapping
  dn         = format("uni/fabric/monfab-default/slsrc-fab_default_%s", each.value)
  class_name = "syslogSrc"
  content = {
    name   = format("fab_default_%s", each.value)
    minSev = "information"
    incl   = each.key
  }

  child {
    rn         = "rsdestGroup"
    class_name = "syslogRsDestGroup"
    content = {
      tDn = resource.aci_rest_managed.syslog_group[each.key].id
    }
  }
}

New or Affected Resource(s) + ACI Class(es):

Classes:

  • syslogGroup
  • syslogConsole
  • syslogFile
  • syslogProf
  • syslogRemoteDest
  • fileRsARemoteHostToEpg
  • syslogSrc
  • syslogRsDestGroup

APIC version and APIC Platform

  • V x.x.x and on-prem/cloud-aws/cloud-azure/all.

Potential Terraform Configuration

TBD

References

  • #0000

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions