ntopng/doc/README.prometheus.md

1.9 KiB

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