Wenn du Daten über einen aktuellen Cisco Nexus abfragen und übersichtlich darstellen möchtest, dann verwende die folgende Anleitung.
Installation Docker-Compose
apt install docker-compose
Git Clone
git clone https://github.com/antoniopersiano/grafana4youtube.git
docker-compose up
chmod 777 volumes/ -R
Docker im Hintergrund laufen lassen
docker-compose up -d
docker-compose ps
nano /opt/grafana4youtube/volumes/prometheus-config/prometheus.yml
global:
scrape_interval: 60s # How frequently to scrape targets
scrape_timeout: 55s
evaluation_interval: 60s # How frequently to evaluate rules
scrape_configs:
- job_name: 'backup-ro' # Replace with your job name
static_configs:
- targets: ['192.168.6.30:9100'] # Replace with your application service name and port
- job_name: 'snmp'
static_configs:
- targets:
- 192.168.4.17:161 # IP address of the SNMP device
metrics_path: /snmp
params:
auth: [public_v2]
module: [if_mib]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.6.30:9116 # The SNMP exporter's address
- job_name: 'snmp_nexus'
static_configs:
- targets:
- 192.168.4.11:161 # Nexus mgmt0 IP
metrics_path: /snmp
params:
module: [nexus_interfaces]
auth: [nexus_v3]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.6.30:9116 # snmp_exporter läuft lokal
nano /opt/grafana4youtube/volumes/snmp-exporter-config/snmp.yml und folgende Abschnitte hinzufügen:
auths:
nexus_v3: # Frei wählbarer Name, wird später in der URL verwendet
community: "" # Leer lassen bei SNMPv3
security_level: authPriv # authNoPriv | authPriv | noAuthNoPriv
username: USERNAME # SNMPv3 Username
password: 'SECURE_PASSWORD' # Auth-Passwort (min. 8 Zeichen)
auth_protocol: SHA # MD5 | SHA | SHA224 | SHA256 | SHA384 | SHA512
priv_protocol: AES # DES | AES | AES192 | AES256
priv_password: 'SECURE_PASSWORD' # Privacy-Passwort
version: 3
modules:
nexus_interfaces:
walk:
- 1.3.6.1.2.1.2.2 # ifTable
- 1.3.6.1.2.1.31.1.1 # ifXTable (64-bit Counters, Descriptions)
- 1.3.6.1.2.1.1.3 # sysUpTime
- 1.3.6.1.2.1.1.5 # sysName
- 1.3.6.1.2.1.2.2.1.14 # ifInErrors
- 1.3.6.1.2.1.2.2.1.20 # ifOutErrors
- 1.3.6.1.2.1.2.2.1.13 # ifInDiscards
- 1.3.6.1.2.1.2.2.1.19 # ifOutDiscards
- 1.3.6.1.2.1.47.1.1.1 # entPhysicalTable (Hardware-Info)
- 1.3.6.1.4.1.9.9.109.1.1.1 # Cisco CPU MIB
- 1.3.6.1.4.1.9.9.48.1.1.1 # Cisco Memory MIB
get:
- 1.3.6.1.2.1.1.3.0 # sysUpTime
- 1.3.6.1.2.1.1.5.0 # sysName
metrics:
- name: sysUpTime
oid: 1.3.6.1.2.1.1.3.0
type: gauge
help: "System Uptime in Hundertstelsekunden"
- name: sysName
oid: 1.3.6.1.2.1.1.5.0
type: DisplayString
help: "Hostname des Systems"
- name: ifOperStatus
oid: 1.3.6.1.2.1.2.2.1.8
type: gauge
help: "Interface Status (1=up, 2=down)"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- labels: [ifIndex]
labelname: ifAlias
oid: 1.3.6.1.2.1.31.1.1.1.18
type: DisplayString
- name: ifHCInOctets
oid: 1.3.6.1.2.1.31.1.1.1.6
type: counter
help: "Eingehende Bytes (64-bit)"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- labels: [ifIndex]
labelname: ifAlias
oid: 1.3.6.1.2.1.31.1.1.1.18
type: DisplayString
- name: ifHCOutOctets
oid: 1.3.6.1.2.1.31.1.1.1.10
type: counter
help: "Ausgehende Bytes (64-bit)"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- labels: [ifIndex]
labelname: ifAlias
oid: 1.3.6.1.2.1.31.1.1.1.18
type: DisplayString
- name: ifHighSpeed
oid: 1.3.6.1.2.1.31.1.1.1.15
type: gauge
help: "Interface Speed in Mbit/s"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- name: ifInErrors
oid: 1.3.6.1.2.1.2.2.1.14
type: counter
help: "Fehler eingehend"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- name: ifOutErrors
oid: 1.3.6.1.2.1.2.2.1.20
type: counter
help: "Fehler ausgehend"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- name: ifInDiscards
oid: 1.3.6.1.2.1.2.2.1.13
type: counter
help: "Discards eingehend"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- name: ifOutDiscards
oid: 1.3.6.1.2.1.2.2.1.19
type: counter
help: "Discards ausgehend"
indexes:
- labelname: ifIndex
type: gauge
lookups:
- labels: [ifIndex]
labelname: ifDescr
oid: 1.3.6.1.2.1.2.2.1.2
type: DisplayString
- name: cpmCPUTotal5secRev
oid: 1.3.6.1.4.1.9.9.109.1.1.1.1.6
type: gauge
help: "CPU Auslastung 5 Sekunden"
indexes:
- labelname: cpmCPUTotalIndex
type: gauge
- name: cpmCPUTotal1minRev
oid: 1.3.6.1.4.1.9.9.109.1.1.1.1.7
type: gauge
help: "CPU Auslastung 1 Minute"
indexes:
- labelname: cpmCPUTotalIndex
type: gauge
- name: cpmCPUTotal5minRev
oid: 1.3.6.1.4.1.9.9.109.1.1.1.1.8
type: gauge
help: "CPU Auslastung 5 Minuten"
indexes:
- labelname: cpmCPUTotalIndex
type: gauge
- name: ciscoMemoryPoolUsed
oid: 1.3.6.1.4.1.9.9.48.1.1.1.5
type: gauge
help: "Genutzter Speicher in Bytes"
indexes:
- labelname: ciscoMemoryPoolIndex
type: gauge
lookups:
- labels: [ciscoMemoryPoolIndex]
labelname: ciscoMemoryPoolName
oid: 1.3.6.1.4.1.9.9.48.1.1.1.2
type: DisplayString
- name: ciscoMemoryPoolFree
oid: 1.3.6.1.4.1.9.9.48.1.1.1.6
type: gauge
help: "Freier Speicher in Bytes"
indexes:
- labelname: ciscoMemoryPoolIndex
type: gauge
lookups:
- labels: [ciscoMemoryPoolIndex]
labelname: ciscoMemoryPoolName
oid: 1.3.6.1.4.1.9.9.48.1.1.1.2
type: DisplayString