710661809 发表于 2015-10-13 14:16:08

cloudstack中snmp处理分析

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

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

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


  

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: cloudstack中snmp处理分析