f2866a3a2f
* added config file implementation, refactoring * add gitignore * improved test * preperations for more metrics * added resource metrics * added first bgp metrics * added asn as label for bgp metrics * added prefix and message counts to bgp metrics * simplified * Update README.md * added yaml dependency * fixed go routine call * added timeout * clean up * added TLS support * set default api port for TLS * added routes metric * added missing log information |
||
---|---|---|
collector | ||
config | ||
examples/kubernetes/single-device | ||
scripts | ||
vendor | ||
.gitignore | ||
Dockerfile | ||
Dockerfile.armhf | ||
Gopkg.lock | ||
Gopkg.toml | ||
LICENSE | ||
main.go | ||
MAINTAINERS.md | ||
README.md | ||
VERSION |
prometheus-mikrotik
tl;dr - prometheus exporter for mikrotik devices
This is still a work in progress .. consider master
at the moment as a preview
release.
Description
A Prometheus Exporter for Mikrotik devices. Can be configured to collect metrics from a single device or multiple devices. Single device monitoring can be configured all on the command line. Multiple devices require a configuration file. A user will be required that has read-only access to the device configuration via the API.
Currently the exporter collects metrics for interfaces and system resources. Others can be added as long as published via the API.
Mikrotik Config
Create a user on the device that has API and read-only access.
/user group add name=prometheus policy=api,read
Create the user to access the API via.
/user add name=prometheus group=prometheus password=changeme
Single Device
./mikrotik-exporter -address 10.10.0.1 -device my_router -password changeme -user prometheus
where address
is the address of your router. device
is the label name for the device
in the metrics output to prometheus. The user
and password
are the ones you
created for the exporter to use to access the API.
Config File
./mikrotik-exporter -config-file config.yml
where config-file
is the path to a config file in YAML format.
example config
devices:
- name: my_router
address: 10.10.0.1
user: prometheus
password: changeme
- name: my_second_router
address: 10.10.0.2
user: prometheus2
password: password_to_second_router
example output
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether2",name="my_router"} 1.4189902583e+10
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether3",name="my_router"} 2.263768666e+09
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether4",name="my_router"} 1.6572299e+08
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether5",name="my_router"} 1.66711315e+08
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether6",name="my_router"} 1.0026481337e+10
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether7",name="my_router"} 3.18354425e+08
mikrotik_interface_tx_byte{address="10.10.0.1",interface="ether8",name="my_router"} 1.86405031e+08