From a85a827ff03e08e6de20dc8134e3974c87a8186b Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 1 Oct 2020 10:35:02 +0200 Subject: unifi: SNMP setup. --- ansible/host_vars/birgitte/ops-server-secrets.yml | 8 + .../plays/ops-server-generate-telegraf-config.yml | 15 +- ansible/plays/ops-server.yml | 16 +- .../plays/templates/ops-server/docker-compose.yml | 3 + ansible/plays/templates/ops-server/telegraf.conf | 495 +++++++++++++---- .../plays/templates/ops-server/telegraf.conf.j2 | 96 ++-- ansible/plays/templates/ops-server/unifi/UBNT-MIB | 108 ++++ .../templates/ops-server/unifi/UBNT-UniFi-MIB | 606 +++++++++++++++++++++ 8 files changed, 1178 insertions(+), 169 deletions(-) create mode 100644 ansible/host_vars/birgitte/ops-server-secrets.yml create mode 100644 ansible/plays/templates/ops-server/unifi/UBNT-MIB create mode 100644 ansible/plays/templates/ops-server/unifi/UBNT-UniFi-MIB diff --git a/ansible/host_vars/birgitte/ops-server-secrets.yml b/ansible/host_vars/birgitte/ops-server-secrets.yml new file mode 100644 index 0000000..3a4faf3 --- /dev/null +++ b/ansible/host_vars/birgitte/ops-server-secrets.yml @@ -0,0 +1,8 @@ +$ANSIBLE_VAULT;1.1;AES256 +37396161393962653630306339333930336562346333303162303365343837383836613064366533 +3161613437376366356434616264343737613261616461610a663437613530666630323330396635 +39633932616138373231393361366463613162393561366165326465373337366335353939363561 +3539636131623930390a336639616332653634343632313534653363353332396566303835373838 +33613634626135653465323864393939363861363430663563386663323364623364653561353232 +65373364373139626462623739306462653264306464333839643866626338393038366332393266 +353661346435616532323264613465666263 diff --git a/ansible/plays/ops-server-generate-telegraf-config.yml b/ansible/plays/ops-server-generate-telegraf-config.yml index 9bafd2a..4e662c4 100644 --- a/ansible/plays/ops-server-generate-telegraf-config.yml +++ b/ansible/plays/ops-server-generate-telegraf-config.yml @@ -5,10 +5,23 @@ src: ops-server/telegraf.conf.j2 dest: templates/ops-server/telegraf.conf vars: - - aps: + - devices: + - name: SW oppe + ip: 192.168.10.10 + type: switch + - name: SW nede + ip: 192.168.10.11 + type: switch + - name: SW cloud + ip: 192.168.10.12 + type: switch + - name: Over stue ip: 192.168.10.20 + type: ap - name: Over kjøkken ip: 192.168.10.21 + type: ap - name: Kontor ip: 192.168.10.22 + type: ap diff --git a/ansible/plays/ops-server.yml b/ansible/plays/ops-server.yml index 543b547..74c0cff 100644 --- a/ansible/plays/ops-server.yml +++ b/ansible/plays/ops-server.yml @@ -1,3 +1,4 @@ +- import_playbook: ops-server-generate-telegraf-config.yml - hosts: - birgitte vars: @@ -5,13 +6,16 @@ etc_dir: /etc/docker-service/ops-server tasks: - become: yes - name: mkdir /etc/docker-service/ops-server + name: mkdirs /etc/docker-service/ops-server file: - dest: /etc/docker-service/ops-server + dest: "/etc/docker-service/ops-server/{{ item }}" state: directory owner: root group: root mode: u=rx + loop: + - "" + - unifi - become: yes template: src: "templates/ops-server/influxdb.conf" @@ -21,6 +25,13 @@ template: src: "templates/ops-server/telegraf.conf" dest: "{{ etc_dir }}/telegraf.conf" + - become: yes + template: + src: "templates/ops-server/unifi/{{ item }}" + dest: "{{ etc_dir }}/unifi/{{ item }}" + loop: + - UBNT-MIB + - UBNT-UniFi-MIB - become: yes name: permissions @@ -37,4 +48,3 @@ template: templates/ops-server/docker-compose.yml # systemd_enabled: no # systemd_state: stopped - diff --git a/ansible/plays/templates/ops-server/docker-compose.yml b/ansible/plays/templates/ops-server/docker-compose.yml index c459401..48a6e4c 100644 --- a/ansible/plays/templates/ops-server/docker-compose.yml +++ b/ansible/plays/templates/ops-server/docker-compose.yml @@ -27,6 +27,9 @@ services: - influx volumes: - {{ etc_dir }}/telegraf.conf:/etc/telegraf/telegraf.conf:ro + - {{ etc_dir }}/unifi/UBNT-MIB:/root/.snmp/mibs/UBNT-MIB:ro + - {{ etc_dir }}/unifi/UBNT-UniFi-MIB:/root/.snmp/mibs/UBNT-UniFi-MIB:ro + environment: INFLUX_URL: "http://idb:8086" command: diff --git a/ansible/plays/templates/ops-server/telegraf.conf b/ansible/plays/templates/ops-server/telegraf.conf index 18a858b..4567e34 100644 --- a/ansible/plays/templates/ops-server/telegraf.conf +++ b/ansible/plays/templates/ops-server/telegraf.conf @@ -2,237 +2,506 @@ urls = ["$INFLUX_URL"] skip_database_creation = false -# Access point: Over stue +# snmpget -v 3 -u $username -a SHA -A $password -l authPriv -x AES -X $password 192.168.10.21 RFC1213-MIB::sysName.0 + +# Device: SW oppe, type: switch [[inputs.snmp]] - agents = [ "192.168.10.20" ] + agents = [ "192.168.10.10" ] version = 2 community = "public" - interval = "60s" - timeout = "30s" -# meta information -# this will be added automatically as a tag to the next snmp.table [[inputs.snmp.field]] oid = "RFC1213-MIB::sysName.0" - name = "ap_name" + name = "name" is_tag = true [[inputs.snmp.field]] oid = "RFC1213-MIB::sysLocation.0" - name = "ap_location" + name = "location" is_tag = true -# table [[inputs.snmp.table]] -# Using the oid here will query all fields automatically! -# Be careful when using the oid on inputs.snmp.table as this will -# produce a lot of information -# oid = "IF-MIB::ifXTable" - name = "unifi_ap_if" - inherit_tags = ["ap_name", "ap_location"] + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] -# fields + +# SNMP Fields that should be tags [[inputs.snmp.table.field]] oid = "IF-MIB::ifName" - name = "name" is_tag = true - [[inputs.snmp.table.field]] - oid = "IF-MIB::ifOperStatus" - name = "status" + oid = "IF-MIB::ifLinkUpDownTrapEnable" is_tag = true - [[inputs.snmp.table.field]] - oid = "IF-MIB::ifAlias" - name = "ifAlias" + oid = "IF-MIB::ifHighSpeed" is_tag = true - [[inputs.snmp.table.field]] oid = "IF-MIB::ifPromiscuousMode" - name = "promiscuous_mode" is_tag = true - [[inputs.snmp.table.field]] oid = "IF-MIB::ifConnectorPresent" - name = "has_connector" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifAlias" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifCounterDiscontinuityTime" is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifPhysAddress" - name = "mac" - conversion = "hwaddr" + oid = "UBNT-UniFi-MIB::unifiRadioName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioOtherBss" is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInOctets" - name = "rx_bytes" + oid = "UBNT-UniFi-MIB::unifiVapBssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapCcq" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapEssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUp" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUsage" + is_tag = true + +# Device: SW nede, type: switch +[[inputs.snmp]] + agents = [ "192.168.10.11" ] + version = 2 + community = "public" + +[[inputs.snmp.field]] + oid = "RFC1213-MIB::sysName.0" + name = "name" + is_tag = true + +[[inputs.snmp.field]] + oid = "RFC1213-MIB::sysLocation.0" + name = "location" + is_tag = true + +[[inputs.snmp.table]] + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] + + +# SNMP Fields that should be tags +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifLinkUpDownTrapEnable" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifHighSpeed" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifPromiscuousMode" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifConnectorPresent" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifAlias" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInUcastPkts" - name = "rx_ucast_pkt" + oid = "IF-MIB::ifCounterDiscontinuityTime" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutOctets" - name = "tx_bytes" + oid = "UBNT-UniFi-MIB::unifiRadioName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioOtherBss" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutUcastPkts" - name = "tx_ucast_pkt" + oid = "UBNT-UniFi-MIB::unifiVapBssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapCcq" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapEssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUp" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUsage" + is_tag = true -# Access point: Over kjøkken +# Device: SW cloud, type: switch [[inputs.snmp]] - agents = [ "192.168.10.21" ] + agents = [ "192.168.10.12" ] version = 2 community = "public" - interval = "60s" - timeout = "30s" -# meta information -# this will be added automatically as a tag to the next snmp.table [[inputs.snmp.field]] oid = "RFC1213-MIB::sysName.0" - name = "ap_name" + name = "name" is_tag = true [[inputs.snmp.field]] oid = "RFC1213-MIB::sysLocation.0" - name = "ap_location" + name = "location" is_tag = true -# table [[inputs.snmp.table]] -# Using the oid here will query all fields automatically! -# Be careful when using the oid on inputs.snmp.table as this will -# produce a lot of information -# oid = "IF-MIB::ifXTable" - name = "unifi_ap_if" - inherit_tags = ["ap_name", "ap_location"] + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] -# fields + +# SNMP Fields that should be tags [[inputs.snmp.table.field]] oid = "IF-MIB::ifName" - name = "name" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifLinkUpDownTrapEnable" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifHighSpeed" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifPromiscuousMode" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifConnectorPresent" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifAlias" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifCounterDiscontinuityTime" is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifOperStatus" - name = "status" + oid = "UBNT-UniFi-MIB::unifiRadioName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioOtherBss" is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifAlias" - name = "ifAlias" + oid = "UBNT-UniFi-MIB::unifiVapBssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapCcq" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapEssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUp" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUsage" + is_tag = true + +# Device: Over stue, type: ap + +[[inputs.snmp]] + agents = [ "192.168.10.20" ] + version = 2 + community = "public" + +[[inputs.snmp.field]] + oid = "RFC1213-MIB::sysName.0" + name = "name" + is_tag = true + +[[inputs.snmp.field]] + oid = "RFC1213-MIB::sysLocation.0" + name = "location" is_tag = true +[[inputs.snmp.table]] + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] + +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiRadioTable" + name = "unifi_radio" + index_as_tag = true + inherit_tags = ["name", "location"] + +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiVapTable" + name = "unifi_vap" + index_as_tag = true + inherit_tags = ["name", "location"] + +# SNMP Fields that should be tags +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifLinkUpDownTrapEnable" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifHighSpeed" + is_tag = true [[inputs.snmp.table.field]] oid = "IF-MIB::ifPromiscuousMode" - name = "promiscuous_mode" is_tag = true - [[inputs.snmp.table.field]] oid = "IF-MIB::ifConnectorPresent" - name = "has_connector" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifAlias" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifCounterDiscontinuityTime" is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifPhysAddress" - name = "mac" - conversion = "hwaddr" + oid = "UBNT-UniFi-MIB::unifiRadioName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioOtherBss" is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInOctets" - name = "rx_bytes" + oid = "UBNT-UniFi-MIB::unifiVapBssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapCcq" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapEssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUp" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUsage" + is_tag = true + +# Device: Over kjøkken, type: ap + +[[inputs.snmp]] + agents = [ "192.168.10.21" ] + version = 2 + community = "public" + +[[inputs.snmp.field]] + oid = "RFC1213-MIB::sysName.0" + name = "name" + is_tag = true + +[[inputs.snmp.field]] + oid = "RFC1213-MIB::sysLocation.0" + name = "location" + is_tag = true + +[[inputs.snmp.table]] + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] + +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiRadioTable" + name = "unifi_radio" + index_as_tag = true + inherit_tags = ["name", "location"] + +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiVapTable" + name = "unifi_vap" + index_as_tag = true + inherit_tags = ["name", "location"] +# SNMP Fields that should be tags +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifName" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInUcastPkts" - name = "rx_ucast_pkt" + oid = "IF-MIB::ifLinkUpDownTrapEnable" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifHighSpeed" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifPromiscuousMode" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifConnectorPresent" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifAlias" + is_tag = true +[[inputs.snmp.table.field]] + oid = "IF-MIB::ifCounterDiscontinuityTime" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutOctets" - name = "tx_bytes" + oid = "UBNT-UniFi-MIB::unifiRadioName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioOtherBss" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutUcastPkts" - name = "tx_ucast_pkt" + oid = "UBNT-UniFi-MIB::unifiVapBssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapCcq" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapEssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUp" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUsage" + is_tag = true -# Access point: Kontor +# Device: Kontor, type: ap [[inputs.snmp]] agents = [ "192.168.10.22" ] version = 2 community = "public" - interval = "60s" - timeout = "30s" -# meta information -# this will be added automatically as a tag to the next snmp.table [[inputs.snmp.field]] oid = "RFC1213-MIB::sysName.0" - name = "ap_name" + name = "name" is_tag = true [[inputs.snmp.field]] oid = "RFC1213-MIB::sysLocation.0" - name = "ap_location" + name = "location" is_tag = true -# table [[inputs.snmp.table]] -# Using the oid here will query all fields automatically! -# Be careful when using the oid on inputs.snmp.table as this will -# produce a lot of information -# oid = "IF-MIB::ifXTable" - name = "unifi_ap_if" - inherit_tags = ["ap_name", "ap_location"] + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] -# fields +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiRadioTable" + name = "unifi_radio" + index_as_tag = true + inherit_tags = ["name", "location"] + +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiVapTable" + name = "unifi_vap" + index_as_tag = true + inherit_tags = ["name", "location"] + +# SNMP Fields that should be tags [[inputs.snmp.table.field]] oid = "IF-MIB::ifName" - name = "name" is_tag = true - [[inputs.snmp.table.field]] - oid = "IF-MIB::ifOperStatus" - name = "status" + oid = "IF-MIB::ifLinkUpDownTrapEnable" is_tag = true - [[inputs.snmp.table.field]] - oid = "IF-MIB::ifAlias" - name = "ifAlias" + oid = "IF-MIB::ifHighSpeed" is_tag = true - [[inputs.snmp.table.field]] oid = "IF-MIB::ifPromiscuousMode" - name = "promiscuous_mode" is_tag = true - [[inputs.snmp.table.field]] oid = "IF-MIB::ifConnectorPresent" - name = "has_connector" is_tag = true - [[inputs.snmp.table.field]] - oid = "IF-MIB::ifPhysAddress" - name = "mac" - conversion = "hwaddr" + oid = "IF-MIB::ifAlias" is_tag = true - [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInOctets" - name = "rx_bytes" + oid = "IF-MIB::ifCounterDiscontinuityTime" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInUcastPkts" - name = "rx_ucast_pkt" - + oid = "UBNT-UniFi-MIB::unifiRadioName" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutOctets" - name = "tx_bytes" + oid = "UBNT-UniFi-MIB::unifiRadioRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiRadioOtherBss" + is_tag = true [[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutUcastPkts" - name = "tx_ucast_pkt" + oid = "UBNT-UniFi-MIB::unifiVapBssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapCcq" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapEssId" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapName" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapRadio" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUp" + is_tag = true +[[inputs.snmp.table.field]] + oid = "UBNT-UniFi-MIB::unifiVapUsage" + is_tag = true diff --git a/ansible/plays/templates/ops-server/telegraf.conf.j2 b/ansible/plays/templates/ops-server/telegraf.conf.j2 index e973358..61f9279 100644 --- a/ansible/plays/templates/ops-server/telegraf.conf.j2 +++ b/ansible/plays/templates/ops-server/telegraf.conf.j2 @@ -2,83 +2,75 @@ urls = ["$INFLUX_URL"] skip_database_creation = false -{% for ap in aps %} -# Access point: {{ ap.name }} +# snmpget -v 3 -u $username -a SHA -A $password -l authPriv -x AES -X $password 192.168.10.21 RFC1213-MIB::sysName.0 + +{% for device in devices %} +# Device: {{ device.name }}, type: {{ device.type }} [[inputs.snmp]] - agents = [ "{{ ap.ip }}" ] + agents = [ "{{ device.ip }}" ] +{# Some MIBs are missing over v3 #} +{% if true %} version = 2 community = "public" +{% else %} + version = 3 + sec_name = "{{ '{{' }} unifi_snmp_username }}" + auth_protocol = "SHA" + auth_password = "{{ '{{' }} unifi_snmp_password }}" + sec_level = "authPriv" + priv_protocol = "AES" + priv_password = "{{ '{{' }} unifi_snmp_password }}" interval = "60s" timeout = "30s" +{% endif %} -# meta information -# this will be added automatically as a tag to the next snmp.table [[inputs.snmp.field]] oid = "RFC1213-MIB::sysName.0" - name = "ap_name" + name = "name" is_tag = true [[inputs.snmp.field]] oid = "RFC1213-MIB::sysLocation.0" - name = "ap_location" + name = "location" is_tag = true -# table [[inputs.snmp.table]] -# Using the oid here will query all fields automatically! -# Be careful when using the oid on inputs.snmp.table as this will -# produce a lot of information -# oid = "IF-MIB::ifXTable" - name = "unifi_ap_if" - inherit_tags = ["ap_name", "ap_location"] - -# fields -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifName" - name = "name" - is_tag = true + oid = "IF-MIB::ifXTable" + name = "snmp_if_iftable" + inherit_tags = ["name", "location"] -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifOperStatus" - name = "status" - is_tag = true - -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifAlias" - name = "ifAlias" - is_tag = true +{% if device.type == "ap" %} +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiRadioTable" + name = "unifi_radio" + index_as_tag = true + inherit_tags = ["name", "location"] +[[inputs.snmp.table]] + oid = "UBNT-UniFi-MIB::unifiVapTable" + name = "unifi_vap" + index_as_tag = true + inherit_tags = ["name", "location"] +{% endif %} + +# SNMP Fields that should be tags +{% for f in [ "ifName", "ifLinkUpDownTrapEnable", "ifHighSpeed", "ifPromiscuousMode", "ifConnectorPresent", "ifAlias", "ifCounterDiscontinuityTime" ] %} [[inputs.snmp.table.field]] - oid = "IF-MIB::ifPromiscuousMode" - name = "promiscuous_mode" + oid = "IF-MIB::{{ f }}" is_tag = true +{% endfor %} +{% for f in [ "unifiRadioName", "unifiRadioRadio", "unifiRadioOtherBss" ] %} [[inputs.snmp.table.field]] - oid = "IF-MIB::ifConnectorPresent" - name = "has_connector" + oid = "UBNT-UniFi-MIB::{{ f }}" is_tag = true +{% endfor %} +{% for f in [ "unifiVapBssId", "unifiVapCcq", "unifiVapEssId", "unifiVapName", "unifiVapRadio", "unifiVapUp", "unifiVapUsage" ] %} [[inputs.snmp.table.field]] - oid = "IF-MIB::ifPhysAddress" - name = "mac" - conversion = "hwaddr" + oid = "UBNT-UniFi-MIB::{{ f }}" is_tag = true - -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInOctets" - name = "rx_bytes" - -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCInUcastPkts" - name = "rx_ucast_pkt" - -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutOctets" - name = "tx_bytes" - -[[inputs.snmp.table.field]] - oid = "IF-MIB::ifHCOutUcastPkts" - name = "tx_ucast_pkt" +{% endfor %} {% endfor %} diff --git a/ansible/plays/templates/ops-server/unifi/UBNT-MIB b/ansible/plays/templates/ops-server/unifi/UBNT-MIB new file mode 100644 index 0000000..cebcbdd --- /dev/null +++ b/ansible/plays/templates/ops-server/unifi/UBNT-MIB @@ -0,0 +1,108 @@ +UBNT-MIB DEFINITIONS ::= BEGIN + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, enterprises FROM SNMPv2-SMI + DisplayString FROM SNMPv2-TC + OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF; + + ubntMIB MODULE-IDENTITY + LAST-UPDATED "201402270000Z" + ORGANIZATION "Ubiquiti Networks, Inc." + CONTACT-INFO "support@ubnt.com" + DESCRIPTION "The MIB module for Ubiquiti Networks, Inc. entities" + REVISION "201402270000Z" + DESCRIPTION "Split revision" + ::= { ubnt 1 } + + -- -------------------------------------------------------------------------------- + -- Ubiquiti Networks Root + -- -------------------------------------------------------------------------------- + + ubnt OBJECT IDENTIFIER ::= { enterprises 41112 } + + -- -------------------------------------------------------------------------------- + -- Ubiquiti Networks SNMP Information + -- -------------------------------------------------------------------------------- + + ubntSnmpInfo OBJECT IDENTIFIER ::= { ubntMIB 2 } + ubntSnmpGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 1} + ubntAirosGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 2} + ubntAirFiberGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 3} + ubntEdgeMaxGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 4} + ubntUniFiGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 5} + ubntAirVisionGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 6} + ubntMFiGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 7} + ubntUniTelGroups OBJECT IDENTIFIER ::= { ubntSnmpInfo 8} + + -- -------------------------------------------------------------------------------- + -- Ubiquiti Networks Products + -- -------------------------------------------------------------------------------- + + ubntAirFIBER OBJECT IDENTIFIER ::= { ubntMIB 3 } + ubntEdgeMax OBJECT IDENTIFIER ::= { ubntMIB 5 } + ubntUniFi OBJECT IDENTIFIER ::= { ubntMIB 6 } + ubntAirVision OBJECT IDENTIFIER ::= { ubntMIB 7 } + ubntMFi OBJECT IDENTIFIER ::= { ubntMIB 8 } + ubntUniTel OBJECT IDENTIFIER ::= { ubntMIB 9 } + + -- -------------------------------------------------------------------------------- + -- Ubiquiti Networks OR table + -- -------------------------------------------------------------------------------- + + ubntORTable OBJECT-TYPE + SYNTAX SEQUENCE OF UbntOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Capabilities" + ::= { ubntMIB 1 } + + ubntOREntry OBJECT-TYPE + SYNTAX UbntOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An entry in the ubntORTable" + INDEX { ubntORIndex } + ::= { ubntORTable 1 } + + UbntOREntry ::= SEQUENCE { + ubntORIndex Integer32, + ubntORID OBJECT IDENTIFIER, + ubntORDescr DisplayString + } + + ubntORIndex OBJECT-TYPE + SYNTAX Integer32 (1..255) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Index for the ubntORTable" + ::= { ubntOREntry 1 } + + ubntORID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION "OR ID" + ::= { ubntOREntry 2 } + + ubntORDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Description of idenfifier" + ::= { ubntOREntry 3 } + + ubntORInfoGroup OBJECT-GROUP + OBJECTS { ubntORID, + ubntORDescr } + STATUS current + DESCRIPTION "Collection of related objects" + ::= { ubntSnmpGroups 1 } + + ubntORCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for Ubiquiti entities." + MODULE + GROUP ubntORInfoGroup + DESCRIPTION "This group is for Ubiquiti systems." + ::= { ubntSnmpGroups 2 } + +END diff --git a/ansible/plays/templates/ops-server/unifi/UBNT-UniFi-MIB b/ansible/plays/templates/ops-server/unifi/UBNT-UniFi-MIB new file mode 100644 index 0000000..b064a77 --- /dev/null +++ b/ansible/plays/templates/ops-server/unifi/UBNT-UniFi-MIB @@ -0,0 +1,606 @@ +UBNT-UniFi-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Counter32, Gauge32, IpAddress, enterprises + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString, MacAddress, DateAndTime, TruthValue + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + ubntMIB, ubntUniFi, ubntUniFiGroups + FROM UBNT-MIB; + +ubntUniFi MODULE-IDENTITY + LAST-UPDATED "201606250000Z" + ORGANIZATION "Ubiquiti Networks, Inc." + CONTACT-INFO "support@ubnt.com" + DESCRIPTION "The UniFi MIB module for Ubiquiti Networks, Inc. entities" + REVISION "201606250000Z" + DESCRIPTION "Initial Revision." + ::= { ubntMIB 6 } + +unifiApWireless OBJECT IDENTIFIER ::= { ubntUniFi 1 } +unifiApIf OBJECT IDENTIFIER ::= { ubntUniFi 2 } +unifiApSystem OBJECT IDENTIFIER ::= { ubntUniFi 3 } + + +TableIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique value, greater than zero. It is recommended + that values are assigned contiguously starting from 1." + SYNTAX Integer32 (1..2147483647) + + +ObjectIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "x" + STATUS current + DESCRIPTION "Internal " + SYNTAX Integer32 (0..2147483647) +-- SYNTAX Integer32 (-2147483648..2147483647) +-- SYNTAX Unsigned32 (0..4294967295) + +Voltage ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d-2" + STATUS current + DESCRIPTION "" + SYNTAX Integer32 (-2147483648..2147483647) + +Temperature ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d-1" + STATUS current + DESCRIPTION "" + SYNTAX Integer32 (-2147483648..2147483647) + +unifiIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF UbntIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + ::= { unifiApIf 1 } + +unifiIfEntry OBJECT-TYPE + SYNTAX UbntIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Ethernet interface" + INDEX { unifiIfIndex } + ::= { unifiIfTable 1 } + +UbntIfEntry ::= SEQUENCE { + unifiIfIndex ObjectIndex, + unifiIfFullDuplex TruthValue, + unifiIfIp IpAddress, + unifiIfMac MacAddress, + unifiIfName DisplayString, + unifiIfRxBytes Counter32, + unifiIfRxDropped Counter32, + unifiIfRxError Counter32, + unifiIfRxMulticast Counter32, + unifiIfRxPackets Counter32, + unifiIfSpeed Integer32, + unifiIfTxBytes Counter32, + unifiIfTxDropped Counter32, + unifiIfTxError Counter32, + unifiIfTxPackets Counter32, + unifiIfUp TruthValue +} + +unifiIfIndex OBJECT-TYPE + SYNTAX ObjectIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 1 } + +unifiIfFullDuplex OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 2 } + +unifiIfIp OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 3 } + +unifiIfMac OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 4 } + +unifiIfName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 5 } + +unifiIfRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 6 } + +unifiIfRxDropped OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 7 } + +unifiIfRxError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 8 } + +unifiIfRxMulticast OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 9 } + +unifiIfRxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 10 } + +unifiIfSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 11 } + +unifiIfTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 12 } + +unifiIfTxDropped OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 13 } + +unifiIfTxError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 14 } + +unifiIfTxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 15 } + +unifiIfUp OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiIfEntry 16 } + +unifiRadioTable OBJECT-TYPE + SYNTAX SEQUENCE OF UbntRadioEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + ::= { unifiApWireless 1 } + +unifiRadioEntry OBJECT-TYPE + SYNTAX UbntRadioEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Wireless interface" + INDEX { unifiRadioIndex } + ::= { unifiRadioTable 1 } + +UbntRadioEntry ::= SEQUENCE { + unifiRadioIndex ObjectIndex, + unifiRadioName DisplayString, + unifiRadioRadio DisplayString, + unifiRadioRxPackets Counter32, + unifiRadioTxPackets Counter32, + unifiRadioCuTotal Integer32, + unifiRadioCuSelfRx Integer32, + unifiRadioCuSelfTx Integer32, + unifiRadioOtherBss Integer32 +} + +unifiRadioIndex OBJECT-TYPE + SYNTAX ObjectIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 1 } + +unifiRadioName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 2 } + +unifiRadioRadio OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 3 } + +unifiRadioRxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 4 } + +unifiRadioTxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 5 } + +unifiRadioCuTotal OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 6 } + +unifiRadioCuSelfRx OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 7 } + +unifiRadioCuSelfTx OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 8 } + +unifiRadioOtherBss OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiRadioEntry 9 } + +unifiVapTable OBJECT-TYPE + SYNTAX SEQUENCE OF UbntVapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + ::= { unifiApWireless 2 } + +unifiVapEntry OBJECT-TYPE + SYNTAX UbntVapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "BSS" + INDEX { unifiVapIndex } + ::= { unifiVapTable 1 } + +UbntVapEntry ::= SEQUENCE { + unifiVapIndex ObjectIndex, + unifiVapBssId MacAddress, + unifiVapCcq Integer32, + unifiVapChannel Integer32, + unifiVapExtChannel Integer32, + unifiVapEssId DisplayString, + unifiVapName DisplayString, + unifiVapNumStations Integer32, + unifiVapRadio DisplayString, + unifiVapRxBytes Counter32, + unifiVapRxCrypts Counter32, + unifiVapRxDropped Counter32, + unifiVapRxErrors Counter32, + unifiVapRxFrags Counter32, + unifiVapRxPackets Counter32, + unifiVapTxBytes Counter32, + unifiVapTxDropped Counter32, + unifiVapTxErrors Counter32, + unifiVapTxPackets Counter32, + unifiVapTxRetries Counter32, + unifiVapTxPower Integer32, + unifiVapUp TruthValue, + unifiVapUsage DisplayString +} + +unifiVapIndex OBJECT-TYPE + SYNTAX ObjectIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 1 } + +unifiVapBssId OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 2 } + +unifiVapCcq OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 3 } + +unifiVapChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 4 } + +unifiVapExtChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 5 } + +unifiVapEssId OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 6 } + +unifiVapName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 7 } + +unifiVapNumStations OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 8 } + +unifiVapRadio OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 9 } + +unifiVapRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 10 } + +unifiVapRxCrypts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 11 } + +unifiVapRxDropped OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 12 } + +unifiVapRxErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 13 } + +unifiVapRxFrags OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 14 } + +unifiVapRxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 15 } + +unifiVapTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 16 } + +unifiVapTxDropped OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 17 } + +unifiVapTxErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 18 } + +unifiVapTxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 19 } + +unifiVapTxRetries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 20 } + +unifiVapTxPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 21 } + +unifiVapUp OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiVapEntry 22 } + +unifiVapUsage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "guest or regular user" + ::= { unifiVapEntry 23 } + +unifiApSystemIp OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiApSystem 1 } + +unifiApSystemIsolated OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiApSystem 2 } + +unifiApSystemModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiApSystem 3 } + +unifiApSystemUplink OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiApSystem 4 } + +unifiApSystemUptime OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiApSystem 5 } + +unifiApSystemVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { unifiApSystem 6 } + +unifiIfGroup OBJECT-GROUP OBJECTS { + unifiIfFullDuplex, + unifiIfIp, + unifiIfMac, + unifiIfName, + unifiIfRxBytes, + unifiIfRxDropped, + unifiIfRxError, + unifiIfRxMulticast, + unifiIfRxPackets, + unifiIfSpeed, + unifiIfTxBytes, + unifiIfTxDropped, + unifiIfTxError, + unifiIfTxPackets, + unifiIfUp + } + STATUS current + DESCRIPTION "" + ::= { ubntUniFiGroups 1 } + +unifiRadioGroups OBJECT-GROUP OBJECTS { + unifiRadioName, + unifiRadioRadio, + unifiRadioRxPackets, + unifiRadioTxPackets, + unifiRadioCuTotal, + unifiRadioCuSelfRx, + unifiRadioCuSelfTx, + unifiRadioOtherBss + } + STATUS current + DESCRIPTION "" + ::= { ubntUniFiGroups 2 } + +unifiVapGroups OBJECT-GROUP OBJECTS { + unifiVapBssId, + unifiVapCcq, + unifiVapChannel, + unifiVapExtChannel, + unifiVapEssId, + unifiVapName, + unifiVapNumStations, + unifiVapRadio, + unifiVapRxBytes, + unifiVapRxCrypts, + unifiVapRxDropped, + unifiVapRxErrors, + unifiVapRxFrags, + unifiVapRxPackets, + unifiVapTxBytes, + unifiVapTxDropped, + unifiVapTxErrors, + unifiVapTxPackets, + unifiVapTxRetries, + unifiVapTxPower, + unifiVapUp, + unifiVapUsage + } + STATUS current + DESCRIPTION "" + ::= { ubntUniFiGroups 3 } + +unifiApSystemGroup OBJECT-GROUP OBJECTS { + unifiApSystemIp, unifiApSystemIsolated, unifiApSystemModel, unifiApSystemUplink, unifiApSystemUptime, unifiApSystemVersion + } + STATUS current + DESCRIPTION "" + ::= { ubntUniFiGroups 4 } + +END -- cgit v1.2.3