| .. | ||
| doc/src/plugins | ||
| httpdocs | ||
| include | ||
| scripts | ||
| src | ||
| tools | ||
| AlertCheckLuaEngine.cpp | ||
| AlertCheckLuaEngine.h | ||
| arp_matrix_graph.lua | ||
| arp_matrix_utils.lua | ||
| ArpStatsHashMatrix.cpp | ||
| ArpStatsHashMatrix.h | ||
| ArpStatsMatrixElement.cpp | ||
| ArpStatsMatrixElement.h | ||
| CommunityIdFlowHash.cpp | ||
| CommunityIdFlowHash.h | ||
| ControlGroups.cpp | ||
| DivertInterface.cpp | ||
| DivertInterface.h | ||
| experimental.lua | ||
| FrequentNumericItems.cpp | ||
| FrequentNumericItems.h | ||
| FrequentTrafficItems.cpp | ||
| FrequentTrafficItems.h | ||
| get_arp_matrix_data.lua | ||
| host_sflow_distro.lua | ||
| prometheus.lua | ||
| README.prometheus.md | ||
| sflow_tree.lua | ||
| TimeSeries.cpp | ||
| TimeSeries.h | ||
Introduction
This readme explains how to integrate ntopng with http://prometheus.io time series database. Prometheus polls data from ntopng that must expose the /metrics URL (pull model).
Installation
After installing prometheus, in order to run it you will need a configuration file. You can use the one provided in the [https://prometheus.io/docs/introduction/getting_started/] (getting started guide).
prometheus --config.file=/etc/prometheus/prometheus.yml
You may also want to enable the admin API (for example to delete old timeseries). In this case, add the corresponding option
prometheus --config.file=/etc/prometheus/prometheus.yml --web.enable-admin-api
By default, it will start a webserver on port 9090. Verify the connection before proceeding.
In order to start monitoring ntopng,
[1] Go inside ntopng preferences -> Timeseries then select Prometheous and save it
[2] you should add a new job to the scrape_configs section in your prometheus.yml:
# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
- job_name: 'ntopng'
# This is the polling interval. It will affect your data resolution and cpu load.
# NOTE: keep in sync with "poll_interval" in metrics.lua
scrape_interval: 10s
target_groups:
# This must match your ntopng host and port
- targets: ['localhost:3000']
Since prometheus does not support custom HTTP headers for authentication, you have two options:
- disable ntopng login, either locally (-l 0) or both locally and remotely (-l 1)
- setup an HTTP proxy like nginx to add authentication headers through it
Visualization
You can connect to the prometheus GUI at http://localhost:9090 and see timeseries
LIMITATION
Currently ntopng is able to write into prometheus but not to read from it and display data in the GUI