librenms/librenms

View on GitHub
mibs/vmware/VMWARE-VCHA-MIB

Summary

Maintainability
Test Coverage
-- **********************************************************
-- Copyright 2015-2016 VMware, Inc.  All rights reserved.
-- **********************************************************

VMWARE-VCHA-MIB DEFINITIONS::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
        InetAddress, InetAddressType
        FROM INET-ADDRESS-MIB
        vmwVCHA
        FROM VMWARE-ROOT-MIB
        TEXTUAL-CONVENTION, TruthValue
        FROM SNMPv2-TC;

    vmwVchaMIB MODULE-IDENTITY
    LAST-UPDATED "201607190000Z"
    ORGANIZATION "VMware, Inc"
    CONTACT-INFO
    "VMware, Inc
    3401 Hillview Ave
    Palo Alto, CA 94304
    Tel: 1-877-486-9273 or 650-427-5000
    Fax: 650-427-5001
    Web: http://communities.vmware.com/community/developer/forums/managementapi
    "
DESCRIPTION
     "This MIB module describes the vCenter High Availability Service (VCHA).
     A VCHA cluster consists of three VMs identified by a single instance UUID.
     One is the Active vCenter VM that serves client requests. Second is the
     Passive VM that is identical to the Active vCenter VM in terms of database
     and filesystem state. Passive VM constantly receives updates from Active
     VM and takes over the role of Active vCenter VM in the event of a
     failover. Third is the Witness VM that acts as a quorum VM in a VCHA
     cluster. The sole purpose of Witness VM is to avoid classic split-brain
     problem in a VCHA cluster.

                             client
                                +
                                |
                                |
               +----------------v---+       +--------------------+
               |            Public IP       |                    |
               |                    |       |                    |
               |   Active vCenter   |       |  Passive vCenter   |
               |                    |       |                    |
               +---Private-IP+------+       +------+Private-IP---+
                        ^ <--------------------------> ^
                        |    DB & File replication     |
                         +                            +
                          +                          +
                           +                        +
                            +------>    <----------+
                              +----Private-IP----+
                              |                  |
                              |  Witness vCenter |
                              |     (Quorum)     |
                              |                  |
                              +------------------+

    All events will not be repeated for the duration of a given state entered.

    It is highly recommended that the administrator links the SNMP trap receiver
    to both public network and vCenter HA cluster network, so that the
    monitoring system is able to get notified as long as one of the
    networks is up.
    "
REVISION      "201607190000Z"
DESCRIPTION
     "Removed vmwVchaFileReplicationEventQueueOverflowed and cleaned up a few
     descriptions. Fixed vCenter HA related terminologies and typos."
REVISION      "201604060000Z"
DESCRIPTION
     "Aggregate vmwVchaFileWatchFailed, vmwVchaFileReplicationFailed and
     vmwVchaFileResyncSucceeded into vmwVchaFileReplicationStateChanged
     notification. Add three more notification for failover failure cases.
     Combine syncPeerStarted and syncPeerCompleted into a single state: sync."
REVISION      "201602030000Z"
DESCRIPTION
     "Add two more notifications vmwVchaFailoverSucceeded and
     vmwVchaContinueAsActive to indicate whether a failover succeeds. Also add
     one more parameter to vmwVchaNodeJoined and vmwVchaNodeLeft to distinguish
     between the role of sender node and target node."
REVISION      "201601270000Z"
DESCRIPTION
     "Change the terminology from DB replication mode to DB replication state
     and add one more state to it. Also use past tense for all notification
     names."
REVISION      "201601150000Z"
DESCRIPTION
     "Add two more notifications vmwVchaClusterStateChange and
     vmwVchaFileReplicationEventQueueOverflowed."
REVISION      "201601040000Z"
DESCRIPTION
     "This is the first version of this MIB module."
::= { vmwVCHA 1 }


vmwVCHANotifications OBJECT IDENTIFIER ::= { vmwVCHA 0 }

-- Definition of roles for VCHA, see RFC 4133 entLogicalType
vmwVchaActive OBJECT IDENTIFIER ::= { vmwVCHA 250 }
vmwVchaPassive OBJECT IDENTIFIER ::= { vmwVCHA 255 }
vmwVchaWitness OBJECT IDENTIFIER ::= { vmwVCHA 260 }

-- **********************************************************
-- Enumerations for notification parameters
-- **********************************************************

VmwVchaNodeRoleType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "Represent the role each node in the cluster is running as.
            active (1)      Active vCenter serves client requests.

            passive (2)     Passive node is identical to the Active node in
                            terms of database and filesystem state. Passive
                            node constantly receives updates from the Active
                            node and takes over the role of Active node in the
                            event of a failover.

            witness (3)     Witness node acts as a quorum node in a vCenter HA
                            cluster. Sole purpose of Witness VM is to avoid
                            the classic split-brain problem in a VCHA cluster.

            unknown (4)     Node without any role assigned."
    SYNTAX   INTEGER { active(1), passive(2), witness(3), unknown(4) }

VmwVchaClusterModeType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "Represent VCHA cluster modes: enabled, disabled or maintenance:

            enabled (1)     State replication between Active and Passive nodes
                            is enabled and automatic failover happens if the
                            Active node fails while the VCHA cluster is healthy.

            disabled (2)    All three nodes are part of VCHA cluster but the
                            state replication and automatic failover are
                            disabled.

            maintenance (3) All three nodes are part of VCHA cluster but
                            automatic failover is disabled while state
                            replication continues. The Active node continues to
                            serve client requests even if Passive and Witness
                            nodes are lost."
    SYNTAX   INTEGER { enabled(1), disabled(2), maintenance(3) }

VmwVchaClusterStateType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "Represent the health state of the vCenter HA cluster.

            healthy (1)     All three nodes in a VCHA cluster are healthy and
                            connected. State replication between the Active and
                            Passive nodes is working and both nodes are in-sync.

            degraded (2)    A VCHA cluster is said to be in degraded state when
                            it has lost one of the three nodes. Node loss can
                            be due to various reasons and as a result, the lost
                            node is not visible to other two nodes. If the
                            Active node is lost, the Passive node will take the
                            role of the Active node. If the Passive or Witness
                            node is lost, the Active node will continue to serve
                            requests. A VCHA cluster can also be in degraded
                            state if state replication fails between the Active
                            and Passive nodes.

            isolated (3)    All three nodes are isolated from each other. If
                            this happens when VCHA cluster is in enabled mode,
                            the Active node stops serving client requests. If
                            nodes are isolated in a disabled VCHA cluster mode,
                            the Active node continues to serve client requests."
    SYNTAX   INTEGER { healthy(1), degraded(2), isolated(3) }

VmwVchaDbReplicationStateType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "Represent DB replication states: sync, async or no replication.

            noReplication (1)   There is no DB replication between the Active
                                and Passive nodes. This could happen when
                                vPostgres is not running on the Passive node.

            sync (3)            In sync state, the Passive vCenter keeps the
                                up-to-date state with the Active vCenter.

            async (4)           Async state replication makes the state of
                                Passive node fall behind the Active vCenter.
                                This causes a data loss when an automatic
                                failover happens."
    SYNTAX   INTEGER { noReplication(1), sync(3), async(4) }

VmwVchaFileReplicationProviderType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "Represent the file replication providers.

            serviceConfig (1)   This provider maintains the replication of
                                service configuration files, which are small in
                                size.

            serviceState (2)    This provider maintains the replication of
                                service state files, which are large in size."
    SYNTAX   INTEGER { serviceConfig(1), serviceState(2) }

-- **********************************************************
-- Notifications by an agent that implements this MIB module
-- **********************************************************

vmwVchaNodeJoined NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaPrivateAddressType,
                vmwVchaPrivateAddressAddr,
                vmwVchaTargetNodeRole
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent from the Active node when it
        notices a peer node rejoin the cluster. It is sent only once."
    ::= { vmwVCHANotifications 100 }

vmwVchaNodeLeft NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaPrivateAddressType,
                vmwVchaPrivateAddressAddr,
                vmwVchaTargetNodeRole
            }
    STATUS      current
    DESCRIPTION
        "This warning notification is sent from the Active node when it notices
        a peer node has left the cluster. This is sent only once. Operator
        should check the liveness and connectivity of the departed node and try
        to bring it back by either rebooting the appliance or resolving the
        network problem."
    ::= { vmwVCHANotifications 105 }

vmwVchaNodeIsolated NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaPrivateAddressType,
                vmwVchaPrivateAddressAddr,
                vmwVchaTargetNodeRole
            }
    STATUS      current
    DESCRIPTION
        "This warning notification is sent when a node is network isolated from
        the cluster. This notification can only be sent from the isolated node,
        not by other nodes in the cluster. After being isolated, the node will
        reboot itself trigging coldStart notification. In case of Active node
        failure, the cluster will trigger a reelection and every slave node will
        be declared as isolated temporarily before the cluster re-election
        completes."
    ::= { vmwVCHANotifications 110 }

vmwVchaClusterStateChanged NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaClusterState
            }
    STATUS      current
    DESCRIPTION
        "This notification is sent only once from the Active node when vCenter
        HA cluster state changes to either healthy, degraded or isolated. Please
        see VmwVchaClusterStateType for detailed description of each state. And
        administrator should receive another notification describing the state
        change of cluster subsystem (cluster membership, DB replication or file
        replication) which is trigger of cluster state change."
    ::= { vmwVCHANotifications 130 }

vmwVchaClusterModeChanged NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaClusterMode
            }
    STATUS      current
    DESCRIPTION
        "This notification is sent only once from the Active node when vCenter
        HA cluster mode changes to either enabled, maintenance or disabled."
    ::= { vmwVCHANotifications 150 }

vmwVchaPublicIpUp NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaPublicAddressType,
                vmwVchaPublicAddressAddr
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once when the public IP
        address is brought up on the Active node. At this time, the Active node
        is reachable from the client and will be able to serve client requests
        when services are up and running."
    ::= { vmwVCHANotifications 205 }

vmwVchaPublicIpDown NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaPublicAddressType,
                vmwVchaPublicAddressAddr
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once when the public
        network interface is brought down on the Active node. This can happen
        when InitiateFailover is invoked on the Active node or vcha process
        gracefully shuts down resulting in a reboot of the appliance (triggered
        by network isolation). During this time, clients cannot connect to
        vCenter Server and users will experience downtime until the public
        network interface is brought up. In either case, users should not
        expect more than five minutes of downtime. If VCHA cluster is still not
        connectable, the operator should verify the reachability of each node
        through the cluster network."
    ::= { vmwVCHANotifications 206 }

vmwVchaFailoverTriggered NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaIsPlannedFailover
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once when a failover is
        triggered from the Active node to Passive node. Passive node should
        take over the Active role if the cluster is in healthy state."
    ::= { vmwVCHANotifications 210 }

vmwVchaFailoverSucceeded NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once when the Passive node
        takes over the Active role and brings up the public network interface."
    ::= { vmwVCHANotifications 220 }

vmwVchaFailoverFailedDisabledMode NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid
            }
    STATUS      current
    DESCRIPTION
        "This warning notification is sent only once when the Active node fails
        to initiate a failover because the cluster is in disabled mode."
    ::= { vmwVCHANotifications 225 }

vmwVchaFailoverFailedNodeLost NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid
            }
    STATUS      current
    DESCRIPTION
        "This warning notification is sent only once when the Active node fails
        to initiate a failover because the cluster does not have all three
        nodes connected."
    ::= { vmwVCHANotifications 226 }

vmwVchaFailoverFailedPassiveNotReady NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid
            }
    STATUS      current
    DESCRIPTION
        "This warning notification is sent only once when the Active node fails
        to initiate a failover because vPostgres service on the Passive node is
        not ready to take over."
    ::= { vmwVCHANotifications 227 }

vmwVchaContinueAsActive NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once when the last Active
        node continue as the Active node to servce client's request. This can
        happen in many scenarios:
        1. After triggering a planned failover, DB or file replicator failed to
        flush data to the Passive node and failover didn't proceed because of
        data loss.
        2. After triggering a planned or forced failover, Passive node failed to
        pick up the Active role for reasons like: auto failover cannot happen in
        maintenance mode or cluster is in disabled mode."
    ::= { vmwVCHANotifications 230 }

vmwVchaDbReplicationStateChanged NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaDbReplicationState
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once from the Active node
        when database replication state changes to sync, async or no
        replication. Database replication is not healthy when it is in async or
        no replication state. Reasons include large network delays or vPostgres
        service becoming unresponsive on the Passive node."
    ::= { vmwVCHANotifications 300 }

vmwVchaFileReplicationStateChanged NOTIFICATION-TYPE
    OBJECTS {
                vmwVchaInstanceUuid,
                vmwVchaFileReplicationProvider,
                vmwVchaIsFileProviderInSync
            }
    STATUS      current
    DESCRIPTION
        "This informative notification is sent only once from the Active node
        when file replication state changes to in-sync or out-of-sync. File
        replication state is out-of-sync when VCHA fails to set a watch on a
        file at the Active node or fails to replicate a file from the Active
        node to Passive. Administrators should check the corresponding KB
        article for recovery action."
    ::= { vmwVCHANotifications 350 }

-- **********************************************************
-- Notification variables
-- **********************************************************

vmwVchaInstanceUuid OBJECT-TYPE
    SYNTAX     OCTET STRING
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
    "A string that uniquely identify the vCenter HA cluster. This is the same
    as instance UUID of the active vCenter Server."
    ::= { vmwVCHA 5 }

vmwVchaPrivateAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
    "The type of cluster network interface: ipv4 or ipv6."
    ::= { vmwVCHA 11 }

vmwVchaPublicAddressType  OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "The type of public network interface: ipv4 or ipv6."
    ::= { vmwVCHA 12 }

vmwVchaPrivateAddressAddr OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
    "This is the IP address of each node in cluster network that is used to
    communicate with other nodes in the cluster and transfer data between
    the Active node and the Passive node."
    ::= { vmwVCHA 15 }

vmwVchaPublicAddressAddr   OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "The IP address of a node in public network that serves client's request."
    ::= { vmwVCHA 16 }

vmwVchaTargetNodeRole    OBJECT-TYPE
    SYNTAX      VmwVchaNodeRoleType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "Represents the role of node being affected by the given event. See MIB
    module general description for detailed expalanation for each role."
    ::= { vmwVCHA 20 }

vmwVchaClusterState OBJECT-TYPE
    SYNTAX      VmwVchaClusterStateType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "vCenter HA cluster states: healthy, degraded or isolated."
    ::= { vmwVCHA 25 }

vmwVchaClusterMode OBJECT-TYPE
    SYNTAX      VmwVchaClusterModeType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "vCenter HA cluster modes: enabled, maintenance or disabled."
    ::= { vmwVCHA 30 }

vmwVchaIsPlannedFailover OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "For planned failover, the Active node flushes all the state to the Passive
     node, waits for the flush to complete before causing a failover.
     After the failover, the Passive node starts without any data loss.
     For unplanned failover, the failover is initiated immediately and may
     result in data loss."
    ::= { vmwVCHA 40 }

vmwVchaDbReplicationState OBJECT-TYPE
    SYNTAX      VmwVchaDbReplicationStateType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "Database replication states: sync, async or no replication."
    ::= { vmwVCHA 50 }

vmwVchaIsFileProviderInSync OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "This variable represents the file replication provider state. When it is
    false, the service configuration and state files are out of sync between
    the Passive and Active nodes. This could result from file replication
    failures."
    ::= { vmwVCHA 55 }

vmwVchaFileReplicationProvider OBJECT-TYPE
    SYNTAX      VmwVchaFileReplicationProviderType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
    "File replication providers: service-config or service-state."
    ::= { vmwVCHA 60 }

-- conformance information
vmwVchaMIBConformance OBJECT IDENTIFIER ::= { vmwVchaMIB 2 }
vmwVchaMIBCompliances OBJECT IDENTIFIER ::= { vmwVchaMIBConformance 1 }
vmwVchaMIBGroups OBJECT IDENTIFIER ::= { vmwVchaMIBConformance 2 }

vmwVchaMIBBasicComplianceRev2 MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION
    "The compliance statement for entities which implement VMWARE-VCHA-MIB."
    MODULE -- this module
    MANDATORY-GROUPS { vmwVchaNotificationInfoGroup, vmwVchaNotificationGroup }
    ::= { vmwVchaMIBCompliances 3 }

vmwVchaNotificationInfoGroup OBJECT-GROUP
    OBJECTS {
        vmwVchaInstanceUuid,
        vmwVchaPrivateAddressAddr,
        vmwVchaPrivateAddressType,
        vmwVchaPublicAddressAddr,
        vmwVchaPublicAddressType,
        vmwVchaTargetNodeRole,
        vmwVchaClusterState,
        vmwVchaClusterMode,
        vmwVchaIsPlannedFailover,
        vmwVchaDbReplicationState,
        vmwVchaIsFileProviderInSync,
        vmwVchaFileReplicationProvider
    }
    STATUS current
    DESCRIPTION
    "These objects provide notification details."
    ::= { vmwVchaMIBGroups 1 }

vmwVchaNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        vmwVchaNodeJoined,
        vmwVchaNodeLeft,
        vmwVchaNodeIsolated,
        vmwVchaClusterStateChanged,
        vmwVchaClusterModeChanged,
        vmwVchaPublicIpUp,
        vmwVchaPublicIpDown,
        vmwVchaFailoverTriggered,
        vmwVchaFailoverSucceeded,
        vmwVchaFailoverFailedDisabledMode,
        vmwVchaFailoverFailedNodeLost,
        vmwVchaFailoverFailedPassiveNotReady,
        vmwVchaContinueAsActive,
        vmwVchaDbReplicationStateChanged,
        vmwVchaFileReplicationStateChanged
    }
    STATUS current
    DESCRIPTION
    "Group of objects describing notifications (traps)."
    ::= { vmwVchaMIBGroups 2 }

END -- end of VMWARE-VCHA-MIB.