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. 其他保持默认,点击添加。

相关推荐
卷卷的小趴菜学编程35 分钟前
c++之List容器的模拟实现
服务器·c语言·开发语言·数据结构·c++·算法·list
艾杰Hydra37 分钟前
LInux配置PXE 服务器
linux·运维·服务器
多恩Stone41 分钟前
【ubuntu 连接显示器无法显示】可以通过 ssh 连接 ubuntu 服务器正常使用,但服务器连接显示器没有输出
服务器·ubuntu·计算机外设
牙牙7051 小时前
ansible一键安装nginx二进制版本
服务器·nginx·ansible
AGI学习社3 小时前
2024中国排名前十AI大模型进展、应用案例与发展趋势
linux·服务器·人工智能·华为·llama
加油,旭杏3 小时前
【go语言】变量和常量
服务器·开发语言·golang
wanhengidc3 小时前
网站服务器中的文件被自动删除的原因
运维·服务器
9毫米的幻想4 小时前
【Linux系统】—— 编译器 gcc/g++ 的使用
linux·运维·服务器·c语言·c++
小深ai硬件分享5 小时前
Keras、TensorFlow、PyTorch框架对比及服务器配置揭秘
服务器·人工智能·深度学习
我科绝伦(Huanhuan Zhou)6 小时前
Linux 系统服务开机自启动指导手册
java·linux·服务器