All Projects → dsx1123 → telemetry_collector

dsx1123 / telemetry_collector

Licence: other
build telemetry software stack for Cisco nx-os, support both telemetry dial-out and gNMI dial-in

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to telemetry collector

influx snmp
SNMP Data Collection and Analytics with the TICK Stack (Telegraf, InfluxDB, Chronograf and Kapacitor)
Stars: ✭ 28 (-28.21%)
Mutual labels:  influxdb, telegraf, chronograf
vault-consul-monitoring
Sample project to explore monitoring Vault and Consul with telegraf/influxdb/grafana
Stars: ✭ 52 (+33.33%)
Mutual labels:  influxdb, telegraf, chronograf
influxdb-php-sdk
InfluxDB PHP SDK - UDP/IP or HTTP adapters for read and write data
Stars: ✭ 88 (+125.64%)
Mutual labels:  influxdb, telegraf, chronograf
rpi-monitoring-node
Automated installation of Grafana, Telegraf and influxdb for your Raspberry Pi
Stars: ✭ 18 (-53.85%)
Mutual labels:  influxdb, telegraf
docker-telegraf-influxdb-grafana
Docker Image with Telegraf, InfluxDB and Grafana
Stars: ✭ 17 (-56.41%)
Mutual labels:  influxdb, telegraf
ruuvitag-demo
Demo of reading Bluetooth Low Energy sensor measurements of RuuviTag environmental sensors and feeding them to MQTT, a database and dashboards
Stars: ✭ 14 (-64.1%)
Mutual labels:  influxdb, telegraf
cv4pve-metrics
Metrics for Proxmox VE, Grafana with dasboard, InfluxDb
Stars: ✭ 38 (-2.56%)
Mutual labels:  influxdb, telegraf
Cernan
telemetry aggregation and shipping, last up the ladder
Stars: ✭ 306 (+684.62%)
Mutual labels:  influxdb, telemetry
monitoring-rancher
🤠How to Set up Rancher Server Monitoring with TIG Stack?
Stars: ✭ 22 (-43.59%)
Mutual labels:  influxdb, telegraf
network tech
Cisco config syntax and snippets for Sublime Text
Stars: ✭ 82 (+110.26%)
Mutual labels:  cisco, nxos
Solariot
Leverage your IoT enabled Solar PV Inverter to stream your solar energy usage data to a real time dashboard.
Stars: ✭ 79 (+102.56%)
Mutual labels:  influxdb, telemetry
vrnetlab
Run virtual routers with docker
Stars: ✭ 879 (+2153.85%)
Mutual labels:  cisco, nxos
kotori
A flexible data historian based on InfluxDB, Grafana, MQTT and more. Free, open, simple.
Stars: ✭ 73 (+87.18%)
Mutual labels:  influxdb, telemetry
docker-internet-speedtest-dashboard
Docker based Internet Speedtest Dashboard powered by InfluxDB, Chronograf, and Speedtest-CLI
Stars: ✭ 15 (-61.54%)
Mutual labels:  influxdb, chronograf
grafana-dashboards
List of Grafana Dashboards 📺
Stars: ✭ 120 (+207.69%)
Mutual labels:  influxdb, telegraf
telegraf-influxdb-grafana
TIG Stack
Stars: ✭ 30 (-23.08%)
Mutual labels:  influxdb, telegraf
bounded-disturbances
A k6/.NET red/green load testing workshop
Stars: ✭ 39 (+0%)
Mutual labels:  influxdb, telegraf
Junos monitoring with healthbot
Healthbot configuration examples. Scripts to manage Healthbot. Closed loop automation. Healthbot building blocks description and troubleshooting guide
Stars: ✭ 17 (-56.41%)
Mutual labels:  influxdb, telemetry
xrgrpc
gRPC library for Cisco IOS XR
Stars: ✭ 40 (+2.56%)
Mutual labels:  cisco, telemetry
ups-telegraf
Get data from USB-connected UPS with Telegraf
Stars: ✭ 21 (-46.15%)
Mutual labels:  influxdb, telegraf

telemetry_collector

Automatically build telemetry collector with telegraf, influxdb and grafana, example of sensor paths is using native yang model and OpenConfig yang model of NX-OS as example. build.sh script will create self-signled cerificates for TLS transport. Using docker images of telegraf, influxdb and grafana to create containers with docker-compose. tested with telegraf >= 1.12.1, influxdb >= 2.0 and grafana>=8.1.

NOTE:

This project has upgraded the influxdb to 2.0 which is not supported by chronograf anymore, dashboard is changed to grafana with new set of sensor paths. original code is moved to branch chronograf_influxdb_1_x

Screenshoot

gnmi dashboard

Requirements:

docker-ce, openssl, docker-compose, any linux distribution, see Known Issues if trying it on MacOS

How to use

  1. to quick start, set environment variables GNMI_USER and GNMI_PASSWORD, this user need be configured on nxos with network-operator role at least, then use sudo ./build.sh start to start the containers:

    # export GNMI_USER=telemetry
    # export GNMI_PASSWORD=SuperSecretPassword
    # ./build.sh start
    2020-07-30T22:49:02--LOG--influxdb database folder is not existed, creating one
    2020-07-30T22:49:02--LOG--change permission of config and data folder of influxdb
    2020-07-30T22:49:02--LOG--gernerating self-signed certificates for telegraf plugins
    2020-07-30T22:49:02--LOG--telegraf certificate does not exist, generating
    2020-07-30T22:49:02--LOG--gernerating private key for CN telegraf
    ...<ommited>

    By default, telegraf listens on tcp:57000 for gRPC dial-out, if you want to modify the port, change the config file etc/telegraf/telegraf.conf.example in project folder

    gnmi dial-in is also enabled by default, modify the switches in build.sh with mgmt address and grpc port:

    # swtiches accept gNMI dial-in
    switches=( "172.25.74.70:50051" "172.25.74.61:50051" )

    When first start the service, script will check if certificates are genearted, if not will create them for mdt and gnmi plugin validate for 10 years. use http://<ip_address_of_host>:3000 to open Grafana gui.

  2. TLS is enabeld on cisco_telemetry_mdt plugin, comment below lines in etc/telegraf/telegraf.conf to disable it:

    # uncomment below to enable tls for dial-out plguin
    tls_cert = "/etc/telegraf/cert/telegraf.crt"
    tls_key = "/etc/telegraf/cert/telegraf.key"

    certificate ./etc/telegraf/cert/telegraf.crt need be copied to nx-os to verify the collector's identity, then use below command to enabled TLS transport for destination group, the <certificate name> needs match the common name of telegraf.crt, it is set to telegraf in build.sh:

    switch(config)# telemetry
    switch(config-telemetry)# destination-group 1
    switch(conf-tm-dest)# ip address <collector address> port 57000 protocol gRPC encoding GPB
    switch(conf-tm-dest)# certificate /bootflash/telegraf.crt <certificate name>
    
    
  3. TLS need be enabled for gNMI plugin as well as nx-os, when configure feature gRPC on switch, a default certificate with 1 day validation is auto-generated, to configure the certificate for gRPC on nx-os, copy etc/telegraf/cert/gnmi.pfx to bootflash, then use below commands to import the certificate, the <export password> is set to cisco123 by default, you could modify it in build.sh, this steps is optional as gnmi plugin in telegraf is set to disable certificate verification.

    switch(config)# crypto ca trustpoint gnmi_trustpoint
    switch(config-trustpoint)# crypto ca import gnmi_trustpoint pkcs12 bootflash:gnmi.pfx <export password>
    switch(config)# grpc certificate gnmi_trustpoint
    
  4. This tool will import two pre-built dashboards. fabric dashboard dialout is example of querying data from telemetry dial-out, you can find the example of swtich telemetry config that is used for this dashboard in telemetry.cfg, fabric dashboard gnmi is example of querying data from gNMI dial-in.

  5. Example of telegraf configuration can be found below:

Known issue

  1. Before NX-OS 10.1(1), a single subscription of gNMI dial-in can only be SAMPLE or ON_CHANGE, not both. In order to configure different type of subscription, need start two telegraf instances to seperate SAMPLE and ON_CHANGE sensor paths. Please refer to enhancement CSCvu58102 for detail.
  2. MacOS uses BSD version of sed by default which doesn't work with this script, use brew install gnu-sed to install the gnu version of sed if you are trying this script on MacOS.

Reference

  1. Cisco Nexus 9000 Series NX-OS Programmability Guide, Release 9.3(x)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].