cloudstack中snmp处理分析

cloudstack中snmp中的实现是基于log4j的日志驱动的,基于log4j的基类实现了定制append方法的类,将消息包装为trap的格式,然后发送给远端的监控设备。目前cloudstack4.2支持26种AlertType,具体可以参考AlertManager文件中的定义。远端监控设备的地址可以配置在log4j-cloud-xml.in文件中,具体定义如下,其中的SnmpManagerIpAddresses和SnmpManagerPorts,则是远端监控设备的地址和端口。

   <!-- ============================== -->
   <!-- send alert warnings+ as the SNMP trap if it is configured! -->
   <!-- ============================== -->

   <appender name="SNMP" class="org.apache.cloudstack.alert.snmp.SnmpTrapAppender">
      <param name="Threshold" value="WARN"/>
      <param name="SnmpManagerIpAddresses" value=""/>
      <param name="SnmpManagerPorts" value=""/>
      <param name="SnmpManagerCommunities" value=""/>
      <layout class="org.apache.cloudstack.alert.snmp.SnmpEnhancedPatternLayout">
         <param name="PairDelimiter" value="//"/>
         <param name="KeyValueDelimiter" value="::"/>
      </layout>
   </appender>


下面是整个过程设计到的类结构图:

cloudstack中snmp处理分析_第1张图片


你可能感兴趣的:(cloudstack中snmp处理分析)