===== Usage ===== To begin, create a new directory and environment:: $ mkdir rte $ cd rte $ python3 -m venv ./ $ pip install routeros_telegraf_exporter $ curl https://raw.githubusercontent.com/kepsic/routeros_telegraf_exporter/master/example_config.ini -o config.ini $ curl https://raw.githubusercontent.com/kepsic/routeros_telegraf_exporter/master/hosts_config_example.yaml -o hosts_config.yaml To use RouterOS Telegraf metrics exporter you have following options: - Web service Update replace routers from hosts_config.yaml with your router names Execute:: $ export ROUTEROS_EXPORTER_PATH=$(pwd); $ export ROUTEROS_API_USERNAME=api_read_user; $ export ROUTEROS_API_PASSWORD=mysecretapiuserpassword $ pserve config.ini influx.conf for web service:: [[inputs.http]] ## One or more URLs from which to read formatted metrics urls = [ "http://localhost:6544/metrics" ] data_format = "influx" interval = "60s" timeout="30s" - Run in daemon mode Execute:: $ export ROUTEROS_EXPORTER_PATH=$(pwd); $ export ROUTEROS_API_USERNAME=api_read_user; $ export ROUTEROS_API_PASSWORD=mysecretapiuserpassword $ rte --hosts-config-file hosts_config.yaml -D --logfile /var/mymetrics.out influx.conf for daemon mode:: # Stream a log file, like the tail -f command [[inputs.tail]] ## files to tail. ## These accept standard unix glob matching rules, but with the addition of ## ** as a "super asterisk". ie: ## "/var/log/**.log" -> recursively find all .log files in /var/log ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log ## "/var/log/apache.log" -> just tail the apache log file ## ## See https://github.com/gobwas/glob for more examples ## files = ["/var/mymetrics.out"] ## Read file from beginning. from_beginning = false ## Whether file is a named pipe pipe = false ## Method used to watch for file updates. Can be either "inotify" or "poll". # watch_method = "inotify" ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md data_format = "influx" - Run in interactive mode Execute:: $ export ROUTEROS_EXPORTER_PATH=$(pwd); $ export ROUTEROS_API_USERNAME=api_read_user; $ export ROUTEROS_API_PASSWORD=mysecretapiuserpassword $ rte --hosts-config-file hosts_config.yaml -i influx.conf for interactive mode:: [[inputs.exec]] ## Commands array commands = [ "rte --hosts-config-file hosts_config.yaml -i", ] ## Timeout for each command to complete. timeout = "5s" ## measurement name suffix (for separating different commands) name_suffix = "_mycollector" ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md data_format = "influx" - Probe from router metric values To find out what metrics to measure you can probe all available metrics from measure:: $ export ROUTEROS_EXPORTER_PATH=$(pwd); $ export ROUTEROS_API_USERNAME=api_read_user; $ export ROUTEROS_API_PASSWORD=mysecretapiuserpassword $ rte_probe --host router1.example.com --path /system/resource