让我们在 Prometheus/Grafana 中收集 Catalyst 的流量数据
我决定用Prometheus获取Cisco Catalyst2960-8的流量数据。
以下是环境的详细信息:
– MacBookPro(macOS10.14.6)
– WS-C2960-8TC-L(12.2(53)SE2 LANBASE)
– Ubuntu 18.04.2
– DockerCE
– docker-compose
这次的目标只是获取流量数据,所以常用的node-exporter和AlertManager将在下次机会中考虑。立即使用docker-compose进行操作。
参考来源是”在docker中运行Prometheus的SNMP Exporter”,但更准确地说几乎是一模一样的。。。
version: '3'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus-data:/prometheus
ports:
- 9090:9090
grafana:
image: grafana/grafana:latest
container_name: grafana
volumes:
- ./grafana-data:/var/lib/grafana
ports:
- 3000:3000
snmp-exporter:
image: prom/snmp-exporter:latest
container_name: snmp-exporter
volumes:
- ./snmp.yml:/etc/snmp_exporter/snmp.yml
ports:
- 9116:9116
由于在容器的持续存储区域中指定的每个设置文件(*.yml)不存在,所以会导致各种启动问题,因此需要创建这些文件。
global:
# scrape_interval: 15s
scrape_interval: 1s
external_labels:
monitor: 'codelab_monitor'
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'snmp-exporter'
static_configs:
- labels:
type: cisco
targets:
- '192.168.0.110'
# - labels:
# type: ubuntu
# targets:
# - '192.168.0.111'
metrics_path: /snmp
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- source_labels: [type]
target_label: __param_module
- target_label: __address__
replacement: '192.168.0.111:9116'
snmp.yml将按以下方式创建。
cisco:
walk:
- 1.3.6.1.2.1.2.2.1.16
- 1.3.6.1.2.1.2.2.1.20
- 1.3.6.1.2.1.31.1.1.1.1
- 1.3.6.1.4.1.9.9.109.1.1.1.1.6
metrics:
- name: ifOutOctets
oid: 1.3.6.1.2.1.2.2.1.16
type: counter
indexes:
- labelname: ifName
type: gauge
lookups:
- labels:
- ifName
labelname: ifName
oid: 1.3.6.1.2.1.31.1.1.1.1
type: DisplayString
- name: ifOutErrors
oid: 1.3.6.1.2.1.2.2.1.20
type: counter
indexes:
- labelname: ifName
type: gauge
lookups:
- labels:
- ifName
labelname: ifName
oid: 1.3.6.1.2.1.31.1.1.1.1
type: DisplayString
- name: cpmCPUTotal5secRev
oid: 1.3.6.1.4.1.9.9.109.1.1.1.1.6
type: gauge
indexes:
- labelname: cpmCPUTotalIndex
type: gauge
version: 2
auth:
community: public
#ubuntu:
# walk:
# - 1.3.6.1.2.1.2.2.1.10
# - 1.3.6.1.2.1.2.2.1.14
# metrics:
# - name: ifInOctets
# oid: 1.3.6.1.2.1.2.2.1.10
# type: counter
# indexes:
# - labelname: ifIndex
# type: gauge
# - name: ifInErrors
# oid: 1.3.6.1.2.1.2.2.1.14
# type: counter
# indexes:
# - labelname: ifIndex
# type: gauge
# version: 2
# auth:
# community: public

等我有空了会写Grafana的w
「在2019年11月10日的追記中」,我提到了「使用Blackbox技术进行生死监控」。