zabbix监控深信服AD案例+自动发现虚拟服务和链路

文章目录

前言

深信服AD,应用交付网关,是较为常见的应用发布、负载均衡设备,常用于网络出口。

本案例是通过zabbix的snmp监控深信服AD设备,实现故障告警,后面附带本案例的模板,导入即可使用。

本案例仅包含针对深信服AD的监控项、触发器、自动发现规则等,不包括zabbix推送告警的相关配置。

监控功能

  1. CPU利用率
  2. 内存利用率
  3. 双机角色
  4. 设备运行时间
  5. 链路(自动发现):链路名称、链路状态、上下行流量
  6. 虚拟服务(自动发现):虚拟服务名称、虚拟IP、虚拟服务状态

告警功能

  1. AD状态异常时发送告警

  2. AD双机状态发生切换时告警

  3. 链路故障告警

  4. 虚拟服务故障告警

环境准备

本案例使用的版本如下,不同版本可能无法正常使用,可参考深信服对应版本的mib库自行修改。

序号 组件 版本
1 zabbix 7.0 LTS
2 深信服AD AD7.0.8R5
3 SNMP V2或V3

操作步骤

深信服AD开启SNMP

SNMP V2或SNMP V3(二选一),正常情况下V2就可以,如果有等级保护等安全需求,可以选择更安全的V3。

SNMP V2

名称:自定义

共同体:相当于密码,建议设置强一些,一定记好,之后要用

允许访问的IP来源:建议仅允许zabbix服务器访问

SNMP V3

名称:自定义

用户名:自定义,一定记好,之后要用

认证:启用,算法选择SHA

认证密码:自定义,一定记好,之后要用

加密:禁用(这个版本的AD仅支持DES加密方式,zabbix不支持,所以禁用)

Zabbix导入模版

  1. 复制代码,保存文本文档,文件名为zbx.yaml;

  2. 登录zabbix,zabbix7.0:数据采集-模版-导入;zabbix6.0:配置-模版-导入;

  3. 选择刚才保存的文件,点击导入。

代码如下:

yaml 复制代码
zabbix_export:
  version: '7.0'
  template_groups:
    - uuid: 36bff6c29af64692839d077febfc7079
      name: 'Templates/Network devices'
  templates:
    - uuid: 182ef33aec51420dba30b561b4e4a998
      template: SangforAD
      name: SangforAD
      groups:
        - name: 'Templates/Network devices'
      items:
        - uuid: e65c037f9f34444fb642ee9acf74ffe7
          name: CPU使用率
          type: SNMP_AGENT
          snmp_oid: .1.3.6.1.4.1.35047.2.2.20.0
          key: adCpuCostRate
          history: 90d
          units: '%'
        - uuid: 6893590bddee4c4f85ff813a25929bbd
          name: 内存使用率
          type: SNMP_AGENT
          snmp_oid: .1.3.6.1.4.1.35047.2.2.19.0
          key: adMemCostRate
          history: 90d
          units: '%'
        - uuid: 78ce1e978f9d46509757ebe454b40efc
          name: 双机角色
          type: SNMP_AGENT
          snmp_oid: .1.3.6.1.4.1.35047.2.2.56.0
          key: adStandByState
          history: 90d
          valuemap:
            name: AD双机状态
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 30m
          triggers:
            - uuid: 0c1196aba97947f69d8b4db29a5881a8
              expression: 'last(/SangforAD/adStandByState,#1)<>last(/SangforAD/adStandByState,#2)'
              name: 双机角色发生切换
              priority: AVERAGE
        - uuid: 02084ae1ff9442f89a33cbf55500f476
          name: 设备运行时间
          type: SNMP_AGENT
          snmp_oid: .1.3.6.1.4.1.35047.2.2.46.0
          key: adUptime
          history: 90d
          units: s
          triggers:
            - uuid: 351770d1f0574cb1b98e5fbc57ebc5da
              expression: 'last(/SangforAD/adUptime)<10m or nodata(/SangforAD/adUptime,65s)=1'
              name: AD运行时间小于10分钟或AD状态异常
              priority: HIGH
        - uuid: 9a7dde052d034a4993891a53a255e952
          name: 'Generic SNMP: ICMP ping'
          type: SIMPLE
          key: icmpping
          history: 7d
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: bffd76d5fc16406b86c58664f821cae8
              expression: 'max(/SangforAD/icmpping,#3)=0'
              name: 'Generic SNMP: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout.  Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: cde4b61719b7440baa47c0970c2eded5
          name: 'Generic SNMP: SNMP agent availability'
          type: INTERNAL
          key: 'zabbix[host,snmp,available]'
          history: 7d
          description: |
            Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.
            Possible value:
            0 - not available
            1 - available
            2 - unknown
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 6f1191cf24bf462dbddd75a7f2962a11
              expression: 'max(/SangforAD/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
              name: 'Generic SNMP: No SNMP data collection'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.'
              dependencies:
                - name: 'Generic SNMP: Unavailable by ICMP ping'
                  expression: 'max(/SangforAD/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 127b422d4e744e6aafcd5d54e2827287
          name: 网络链路发现
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#LINKNAME},1.3.6.1.4.1.35047.2.2.41.1.2]'
          key: adLinkDiscover
          delay: 1h
          lifetime: 30d
          enabled_lifetime_type: DISABLE_NEVER
          item_prototypes:
            - uuid: c31536f39177485cb8adec38634aa86c
              name: '链路: {#LINKNAME}: 入方向流量'
              type: SNMP_AGENT
              snmp_oid: '1.3.6.1.4.1.35047.2.2.41.1.6.{#SNMPINDEX}'
              key: 'adLinkBitIn[adLinkBitIn.{#SNMPINDEX}]'
              history: 180d
              units: bps
            - uuid: d8f76a466c5d4842a69e3f03492742b9
              name: '链路: {#LINKNAME}: 出方向流量'
              type: SNMP_AGENT
              snmp_oid: '1.3.6.1.4.1.35047.2.2.41.1.7.{#SNMPINDEX}'
              key: 'adLinkBitOut[adLinkBitOut.{#SNMPINDEX}]'
              history: 180d
              units: bps
            - uuid: 33854a3b380a405ab34b40d3bab3f7e1
              name: '链路: {#LINKNAME}: 状态'
              type: SNMP_AGENT
              snmp_oid: '1.3.6.1.4.1.35047.2.2.41.1.5.{#SNMPINDEX}'
              key: 'Link.Status[LinkStatus.{#SNMPINDEX}]'
              history: 180d
              valuemap:
                name: AD链路状态
          trigger_prototypes:
            - uuid: 709db6f419bc453eb7d0ead143e6e1d9
              expression: 'last(/SangforAD/adStandByState)=1 and last(/SangforAD/Link.Status[LinkStatus.{#SNMPINDEX}])=0'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'last(/SangforAD/adStandByState)=1 and last(/SangforAD/Link.Status[LinkStatus.{#SNMPINDEX}])=1'
              name: '{#LINKNAME}: 链路状态异常'
              priority: HIGH
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  function hex2a(hexx) {
                      var jsonArray = JSON.parse(hexx);
                      for (var j = 0; j < jsonArray.length; j++) {
                          var ascstr = jsonArray[j]['{#LINKNAME}'];
                          var isHex = /^[0-9a-fA-F\s]+$/.test(ascstr);
                          if (!isHex) {
                              continue; // 如果LINKNAME不是十六进制字符串,则跳过
                          }
                          else {
                              var ascstrnew = ascstr.replace(/\s*/g, "").toString();
                              var str = '';
                              for (var i = 0; i < ascstrnew.length && ascstrnew.substr(i, 2) !== '00'; i += 2)
                              str += '%' + ascstrnew.substr(i, 2);
                              jsonArray[j]['{#LINKNAME}'] = decodeURIComponent(str); // 将处理后的UTF-8字符串替换回原始数据结构中的LINKNAME属性
                          }
                      };
                      return JSON.stringify(jsonArray); // 返回修改后的原始数据结构
                  }
                  return hex2a(value);
        - uuid: a113107b7ae943558a9592bb5e5a514e
          name: 虚拟服务发现
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#VNAME},1.3.6.1.4.1.35047.2.2.11.1.2,{#VIP},1.3.6.1.4.1.35047.2.2.11.1.16]'
          key: adVsDiscover
          delay: 1h
          lifetime: 30d
          enabled_lifetime_type: DISABLE_NEVER
          item_prototypes:
            - uuid: 29044bbc762b4a879bda055bde9672b0
              name: '虚拟服务: {#VNAME}-{#VIP}: 状态'
              type: SNMP_AGENT
              snmp_oid: '1.3.6.1.4.1.35047.2.2.11.1.17.{#SNMPINDEX}'
              key: 'vService.status[vServiceStatus.{#SNMPINDEX}]'
              history: 365d
              trends: '0'
              value_type: TEXT
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 30m
          trigger_prototypes:
            - uuid: 73dd8b3dcf5243c89c7a2c30390696fb
              expression: 'last(/SangforAD/adStandByState)=1 and last(/SangforAD/vService.status[vServiceStatus.{#SNMPINDEX}])="DOWN"'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'last(/SangforAD/adStandByState)=1 and last(/SangforAD/vService.status[vServiceStatus.{#SNMPINDEX}])="UP"'
              name: '{#VNAME}-{#VIP}: 故障告警'
              priority: HIGH
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  function hex2a(hexx) {
                      var jsonArray = JSON.parse(hexx);
                      for (var j = 0; j < jsonArray.length; j++) {
                          var ascstr = jsonArray[j]['{#VNAME}'];
                          var isHex = /^[0-9a-fA-F\s]+$/.test(ascstr);
                          if (!isHex) {
                              continue; // 如果VNAME不是十六进制字符串,则跳过
                          }
                          else {
                              var ascstrnew = ascstr.replace(/\s*/g, "").toString();
                              var str = '';
                              for (var i = 0; i < ascstrnew.length && ascstrnew.substr(i, 2) !== '00'; i += 2)
                              str += '%' + ascstrnew.substr(i, 2);
                              jsonArray[j]['{#VNAME}'] = decodeURIComponent(str); // 将处理后的UTF-8字符串替换回原始数据结构中的VNAME属性
                          }
                      };
                      return JSON.stringify(jsonArray); // 返回修改后的原始数据结构
                  }
                  return hex2a(value);
      tags:
        - tag: 品牌
          value: 深信服
        - tag: 类型
          value: 负载均衡
      valuemaps:
        - uuid: 6d8c480207584a7da68f856b9669c361
          name: AD双机状态
          mappings:
            - value: '1'
              newvalue: Master
            - value: '0'
              newvalue: Slave
        - uuid: 8255f78946db4af9a7acfa166b6442cb
          name: AD链路状态
          mappings:
            - value: '1'
              newvalue: UP
            - value: '0'
              newvalue: DOWN

Zabbix中添加深信服AD

  1. zabbix7.0:数据采集-主机-创建主机;zabbix6.0:配置-主机-创建主机;

  2. 主机名称:建议填写IP地址;

  3. 可见名称:显示的名称,自定义;

  4. 模版:选择刚才导入的SangforAD;

  5. 接口:添加-SNMP;

  6. IP地址填写AD的IP;

  7. SNMP版本:根据AD上配置的选择;

  8. 安全名称和认证口令:根据AD上配置的填写;

  9. 其他保持默认,点击添加。

相关推荐
远游客07132 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
LIKEYYLL4 小时前
GNU Octave:特性、使用案例、工具箱、环境与界面
服务器·gnu
云云3215 小时前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云3215 小时前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵
CircleMouse5 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux6 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
不惑_6 小时前
小白入门 · 腾讯云轻量服务器部署 Hadoop 3.3.6
服务器·hadoop·腾讯云
阿甘知识库6 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
zhou周大哥8 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
loong_XL9 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx