/prometheus-freeswitch-exporter

Exposes information gathered from FreeSWITCH for use by the Prometheus monitoring system

Primary LanguagePythonApache License 2.0Apache-2.0

Prometheus FreeSWITCH Exporter

Build Status Package Version

This is an exporter that exposes information gathered from FreeSWITCH for use by the Prometheus monitoring system.

Installation

pip install prometheus-freeswitch-exporter

Usage

usage: freeswitch_exporter [-h] [config] [port]

positional arguments:
  config      Path to configuration file (esl.yml)
  port        Port on which the exporter is listening (9724)
  address     Address to which the exporter will bind

optional arguments:
  -h, --help  show this help message and exit

Use :: for the address argument in order to bind to both IPv6 and IPv4 sockets on dual stacked machines.

Visit http://localhost:9724/esl?target=1.2.3.4 where 1.2.3.4 is the IP of FreeSWITCH to get metrics from. Specify the module request parameter, to choose which module to use from the config file.

The target request parameter defaults to localhost. Hence if freeswitch_exporter is deployed directly on the FreeSWITCH host, target can be omitted.

See the wiki for more examples and docs.

Authentication

Example esl.yml

default:
    port: 8021  # default port, can be omitted
    password: ClueCon

FreeSWITCH Configuration

For security reasons it is essential to change the default passwort in FreeSWITCH autoload_configs/event_socket.conf.xml.

Prometheus Configuration

The FreeSWITCH exporter can be deployed either directly on a FreeSWITCH node or onto a separate machine.

Example config for FreeSWITCH exporter running on FreeSWITCH node:

scrape_configs:
  - job_name: 'freeswitch'
    static_configs:
      - targets:
        - 192.168.1.2:9724  # FreeSWITCH node with FreeSWITCH exporter.
        - 192.168.1.3:9724  # FreeSWITCH node with FreeSWITCH exporter.
    metrics_path: /esl
    params:
      module: [default]

Example config for FreeSWITCH exporter running on Prometheus host:

scrape_configs:
  - job_name: 'freeswitch'
    static_configs:
      - targets:
        - 192.168.1.2  # FreeSWITCH node.
        - 192.168.1.3  # FreeSWITCH node.
    metrics_path: /esl
    params:
      module: [default]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9724  # FreeSWITCH exporter.

Grafana Dashboards

None yet.