跳转至

Cacti集成

Cacti是一个完整的网络图形解决方案,旨在利用RRDTool的数据存储和图形功能。Cacti提供了一个快速轮询器,高级图表模板,多种数据采集方法和用户管理功能。所有这一切都被包装在一个直观的,易于使用的界面中,这对于局域网以及成千上万个设备的复杂网络来说是有意义的。


Cacti集成CA步骤

  1. 创建应用

    睿象云Cloud Alert界面创建Cacti应用,并获取 appkey

  2. 安装并配置thold插件,配置邮件告警

  3. 修改thold插件,支持CloudAlert告警接入

    1. 打开 {cacti_home}/plugins/thold/thold_functions.php 例如:

      vim /var/www/html/cacti/plugins/thold/thold_functions.php
      

      定位到function thold_mail函数:

      /* Sends a group of graphs to a user */
          function thold_mail($to, $from, $subject, $message, $filename, $headers = '') {
              global $config;
              thold_debug('Preparing to send email');
              include_once($config['base_path'] . '/plugins/settings/include/mailer.php');
              include_once($config['base_path'] . '/plugins/thold/setup.php');
              onealert_for_cacti($message,$subject);
              $subject = trim($subject);
      
              $message = str_replace('', $subject, $message);
              ...... //此处省略
                       }
          }
      

      在 function thold_mail函数后添加如下代码并替换app参数:

      function onealert_for_cacti($msg, $subject) {
                          $fields = array(
                             "app"  =>  "{appKey}",//your appkey
                             "subject"  =>  $subject,
                             "msg"  =>   $msg
                          );
                          $fieldsdate = json_encode($fields);
                          $ch = curl_init("http://api.aiops.com/alert/api/event/cacti/new");
                          curl_setopt($ch, CURLOPT_HEADER, "Content-type: application/json");
                          curl_setopt($ch, CURLOPT_POST, 1);
                          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                          curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsdate);
                          $output = curl_exec($ch);
                          if(curl_errno($ch)){
                             print curl_error($ch);
                          }
      
                          curl_close($ch);
                          echo $output;
                        }
      
    2. 重启SNMP

      service snmpd restart
      
    3. 重启httpd

      service httpd restart
      
    4. 配置Cacti使之触发告警,查看Cloud Alert告警和邮件告警是否正常


Cacti与CA告警级别映射关系

睿象云 cacti
致命 --
严重 默认
警告 --
提醒 --
通知 --
睿象云 CACTI
事件ID (eventId) MD5(app+subject(截取第一个:到最后一个]之间的内容id))

以上是Cacti 告警设置中集成的步骤。