2017-11-04 02:23:47 +01:00
|
|
|
# This is the config file for Yanic written in "Tom's Obvious, Minimal Language."
|
|
|
|
# syntax: https://github.com/toml-lang/toml
|
2019-03-31 11:41:37 +02:00
|
|
|
# (if you need something multiple times, checkout out the [[array of table]] section)
|
2017-11-04 02:23:47 +01:00
|
|
|
|
2017-01-30 15:23:36 +01:00
|
|
|
# Send respondd request to update information
|
2017-01-29 18:30:08 +01:00
|
|
|
[respondd]
|
|
|
|
enable = true
|
2017-06-14 09:44:15 +02:00
|
|
|
# Delay startup until a multiple of the period since zero time
|
|
|
|
synchronize = "1m"
|
2017-10-31 14:34:01 +01:00
|
|
|
# how often request per multicast
|
2017-01-29 18:30:08 +01:00
|
|
|
collect_interval = "1m"
|
|
|
|
|
2019-11-17 10:44:11 +01:00
|
|
|
# If you have custom respondd fields, you can ask Yanic to also collect these.
|
|
|
|
# NOTE: This does not automatically include these fields in the output.
|
|
|
|
# The meshviewer-ffrgb output module will include them under "custom_fields",
|
|
|
|
# but other modules may simply ignore them.
|
|
|
|
#[[respondd.custom_field]]
|
|
|
|
#name = zip
|
|
|
|
# You can use arbitrary GJSON expressions here, see https://github.com/tidwall/gjson
|
|
|
|
# We expect this expression to return a string.
|
|
|
|
#path = nodeinfo.location.zip
|
|
|
|
|
2018-01-17 20:20:35 +01:00
|
|
|
# table of a site to save stats for (not exists for global only)
|
|
|
|
#[respondd.sites.example]
|
|
|
|
## list of domains on this site to save stats for (empty for global only)
|
|
|
|
#domains = []
|
|
|
|
## example
|
|
|
|
[respondd.sites.ffhb]
|
|
|
|
domains = ["city"]
|
2017-01-29 20:06:56 +01:00
|
|
|
|
2017-12-05 23:17:49 +01:00
|
|
|
# interface that has an IP in your mesh network
|
|
|
|
[[respondd.interfaces]]
|
|
|
|
# name of interface on which this collector is running
|
|
|
|
ifname = "br-ffhb"
|
|
|
|
# ip address which is used for sending
|
2019-11-13 13:29:46 +01:00
|
|
|
# (optional - without definition used a address of ifname - preferred link local)
|
2017-12-05 23:17:49 +01:00
|
|
|
ip_address = "fd2f:5119:f2d::5"
|
2018-03-11 20:21:35 +01:00
|
|
|
# disable sending multicast respondd request
|
|
|
|
# (for receiving only respondd packages e.g. database respondd)
|
|
|
|
#send_no_request = false
|
2017-12-05 23:17:49 +01:00
|
|
|
# multicast address to destination of respondd
|
2019-05-03 17:35:15 +02:00
|
|
|
# (optional - without definition used default ff05::2:1001)
|
2021-11-14 10:00:55 +01:00
|
|
|
# Very old gluon uses "ff02::2:1001" as multicast, newer use ff05::2:1001. If you have old and new
|
|
|
|
# gluon nodes on the same network, create a separate "respondd.interfaces" section for each mutlicast address.
|
2019-05-03 17:35:15 +02:00
|
|
|
#multicast_address = "ff02::2:1001"
|
2017-12-05 23:17:49 +01:00
|
|
|
# define a port to listen
|
|
|
|
# if not set or set to 0 the kernel will use a random free port at its own
|
|
|
|
#port = 10001
|
|
|
|
|
2017-03-19 11:03:38 +01:00
|
|
|
# A little build-in webserver, which statically serves a directory.
|
|
|
|
# This is useful for testing purposes or for a little standalone installation.
|
2017-01-29 18:30:08 +01:00
|
|
|
[webserver]
|
|
|
|
enable = false
|
2017-01-29 20:06:56 +01:00
|
|
|
bind = "127.0.0.1:8080"
|
2017-03-05 20:56:41 +01:00
|
|
|
webroot = "/var/www/html/meshviewer"
|
2017-01-29 18:30:08 +01:00
|
|
|
|
2024-07-05 02:08:54 +02:00
|
|
|
[webserver.prometheus]
|
|
|
|
# need webserver
|
|
|
|
enable = false
|
|
|
|
disable_labels = [
|
|
|
|
# "hostname",
|
|
|
|
# "owner",
|
|
|
|
# "location",
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2017-01-29 20:06:56 +01:00
|
|
|
|
2017-01-29 18:30:08 +01:00
|
|
|
[nodes]
|
2017-10-31 14:34:01 +01:00
|
|
|
# Cache file
|
|
|
|
# a json file to cache all data collected directly from respondd
|
|
|
|
state_path = "/var/lib/yanic/state.json"
|
|
|
|
# prune data in RAM, cache-file and output json files (i.e. nodes.json)
|
|
|
|
# that were inactive for longer than
|
|
|
|
prune_after = "7d"
|
2017-01-29 18:30:08 +01:00
|
|
|
# Export nodes and graph periodically
|
|
|
|
save_interval = "5s"
|
2017-01-29 21:04:10 +01:00
|
|
|
# Set node to offline if not seen within this period
|
|
|
|
offline_after = "10m"
|
|
|
|
|
2017-01-29 18:30:08 +01:00
|
|
|
|
2017-11-04 02:23:47 +01:00
|
|
|
## [[nodes.output.example]]
|
|
|
|
# Each output format has its own config block and needs to be enabled by adding:
|
|
|
|
#enable = true
|
|
|
|
#
|
|
|
|
# For each output format there can be set different filters
|
|
|
|
#[nodes.output.example.filter]
|
|
|
|
#
|
2018-01-13 19:08:46 +01:00
|
|
|
# WARNING: if it is not set, it will publish contact information of other persons
|
|
|
|
# Set to true, if you did not want the json files to contain the owner information
|
2017-11-04 02:23:47 +01:00
|
|
|
#no_owner = true
|
|
|
|
#
|
|
|
|
# List of nodeids of nodes that should be filtered out, so they won't appear in output
|
2020-06-16 23:30:54 +02:00
|
|
|
#blocklist = ["00112233445566", "1337f0badead"]
|
2017-11-04 02:23:47 +01:00
|
|
|
#
|
2018-01-13 19:08:46 +01:00
|
|
|
# List of site_codes of nodes that should be included in the output
|
|
|
|
#sites = ["ffhb"]
|
|
|
|
#
|
2018-01-17 20:20:35 +01:00
|
|
|
# replace the site_code with the domain_code in this output
|
|
|
|
# e.g. site_code='ffhb',domain_code='city' => site_code='city', domain_code=''
|
|
|
|
#domain_as_site = true
|
|
|
|
#
|
|
|
|
# append on the site_code the domain_code with a '.' in this output
|
|
|
|
# e.g. site_code='ffhb',domain_code='city' => site_code='ffhb.city', domain_code=''
|
|
|
|
#domain_append_site = true
|
|
|
|
#
|
2017-11-04 02:23:47 +01:00
|
|
|
# set has_location to true if you want to include only nodes that have geo-coordinates set
|
|
|
|
# (setting this to false has no sensible effect, unless you'd want to hide nodes that have coordinates)
|
|
|
|
#has_location = true
|
|
|
|
|
|
|
|
#[nodes.output.example.filter.in_area]
|
|
|
|
# nodes outside this area are not shown on the map but are still listed as a node without coordinates
|
|
|
|
#latitude_min = 34.30
|
|
|
|
#latitude_max = 71.85
|
|
|
|
#longitude_min = -24.96
|
|
|
|
#longitude_max = 39.72
|
|
|
|
|
|
|
|
|
2019-05-21 09:31:18 +02:00
|
|
|
# outputs all nodes as points into nodes.geojson
|
|
|
|
[[nodes.output.geojson]]
|
|
|
|
enable = true
|
|
|
|
path = "/var/www/html/meshviewer/data/nodes.geojson"
|
|
|
|
|
2017-11-04 02:23:47 +01:00
|
|
|
# definition for the new more compressed meshviewer.json
|
|
|
|
[[nodes.output.meshviewer-ffrgb]]
|
|
|
|
enable = true
|
|
|
|
path = "/var/www/html/meshviewer/data/meshviewer.json"
|
|
|
|
|
2018-01-13 19:08:46 +01:00
|
|
|
[nodes.output.meshviewer-ffrgb.filter]
|
|
|
|
# WARNING: if it is not set, it will publish contact information of other persons
|
|
|
|
no_owner = false
|
2020-06-16 23:30:54 +02:00
|
|
|
#blocklist = ["00112233445566", "1337f0badead"]
|
2018-01-13 19:08:46 +01:00
|
|
|
#sites = ["ffhb"]
|
2017-11-04 02:23:47 +01:00
|
|
|
#has_location = true
|
|
|
|
|
|
|
|
#[nodes.output.meshviewer-ffrgb.filter.in_area]
|
|
|
|
#latitude_min = 34.30
|
|
|
|
#latitude_max = 71.85
|
|
|
|
#longitude_min = -24.96
|
|
|
|
#longitude_max = 39.72
|
2017-05-20 14:46:29 +02:00
|
|
|
|
2017-11-04 02:23:47 +01:00
|
|
|
|
|
|
|
# definition for nodes.json
|
2017-05-20 14:46:29 +02:00
|
|
|
[[nodes.output.meshviewer]]
|
2017-11-04 02:23:47 +01:00
|
|
|
enable = false
|
2017-10-31 14:34:01 +01:00
|
|
|
# The structure version of the output which should be generated (i.e. nodes.json)
|
|
|
|
# version 1 is accepted by the legacy meshviewer (which is the master branch)
|
|
|
|
# i.e. https://github.com/ffnord/meshviewer/tree/master
|
2017-11-04 02:23:47 +01:00
|
|
|
# version 2 is accepted by the new versions of meshviewer (which are in the legacy develop branch or newer)
|
2017-10-31 14:34:01 +01:00
|
|
|
# i.e. https://github.com/ffnord/meshviewer/tree/dev
|
|
|
|
# https://github.com/ffrgb/meshviewer/tree/develop
|
|
|
|
version = 2
|
2017-04-10 18:54:12 +02:00
|
|
|
# path where to store nodes.json
|
2017-10-31 14:34:01 +01:00
|
|
|
nodes_path = "/var/www/html/meshviewer/data/nodes.json"
|
2017-04-10 18:54:12 +02:00
|
|
|
# path where to store graph.json
|
2017-10-31 14:34:01 +01:00
|
|
|
graph_path = "/var/www/html/meshviewer/data/graph.json"
|
|
|
|
|
2018-01-13 19:08:46 +01:00
|
|
|
[nodes.output.meshviewer.filter]
|
|
|
|
# WARNING: if it is not set, it will publish contact information of other persons
|
|
|
|
no_owner = true
|
2017-04-10 18:54:12 +02:00
|
|
|
|
2017-05-20 14:46:29 +02:00
|
|
|
|
2017-11-04 02:23:47 +01:00
|
|
|
# definition for nodelist.json
|
2017-05-20 14:46:29 +02:00
|
|
|
[[nodes.output.nodelist]]
|
|
|
|
enable = true
|
|
|
|
path = "/var/www/html/meshviewer/data/nodelist.json"
|
|
|
|
|
2018-01-13 19:08:46 +01:00
|
|
|
[nodes.output.nodelist.filter]
|
|
|
|
# WARNING: if it is not set, it will publish contact information of other persons
|
|
|
|
no_owner = true
|
2017-11-04 02:23:47 +01:00
|
|
|
|
2022-04-14 08:04:41 +02:00
|
|
|
# definition for prometheus-sd.json
|
|
|
|
[[nodes.output.prometheus-sd]]
|
|
|
|
enable = true
|
|
|
|
path = "/var/www/html/meshviewer/data/prometheus-sd.json"
|
|
|
|
# ip = lates recieved ip, node_id = node id from host
|
|
|
|
target_address = "ip"
|
|
|
|
|
|
|
|
# Labels of the data (optional)
|
|
|
|
[nodes.output.prometheus-sd.labels]
|
|
|
|
#labelname1 = "labelvalue 1"
|
|
|
|
## some useful e.g.:
|
|
|
|
#hosts = "ffhb"
|
|
|
|
#service = "yanic"
|
2017-05-20 14:46:29 +02:00
|
|
|
|
2020-01-05 16:56:01 +01:00
|
|
|
# definition for raw.json
|
|
|
|
[[nodes.output.raw]]
|
|
|
|
enable = true
|
|
|
|
path = "/var/www/html/meshviewer/data/raw.json"
|
|
|
|
|
|
|
|
[nodes.output.raw.filter]
|
|
|
|
# WARNING: if it is not set, it will publish contact information of other persons
|
|
|
|
no_owner = true
|
|
|
|
|
|
|
|
|
2017-05-20 14:46:29 +02:00
|
|
|
|
2017-04-10 18:54:12 +02:00
|
|
|
[database]
|
2017-10-31 14:34:01 +01:00
|
|
|
# this will send delete commands to the database to prune data
|
|
|
|
# which is older than:
|
|
|
|
delete_after = "7d"
|
|
|
|
# how often run the cleaning
|
2017-04-10 18:54:12 +02:00
|
|
|
delete_interval = "1h"
|
|
|
|
|
2017-11-04 02:23:47 +01:00
|
|
|
## [[database.connection.example]]
|
|
|
|
# Each database-connection has its own config block and needs to be enabled by adding:
|
|
|
|
#enable = true
|
2017-05-20 14:46:29 +02:00
|
|
|
|
2017-10-31 14:34:01 +01:00
|
|
|
# Save collected data to InfluxDB.
|
2023-09-20 09:29:02 +02:00
|
|
|
# There are the following measurements:
|
2017-10-31 14:34:01 +01:00
|
|
|
# node: store node specific data i.e. clients memory, airtime
|
2021-05-27 18:55:33 +02:00
|
|
|
# link: store link tq between two interfaces of two different nodes
|
2017-10-31 14:34:01 +01:00
|
|
|
# global: store global data, i.e. count of clients and nodes
|
|
|
|
# firmware: store the count of nodes tagged with firmware
|
|
|
|
# model: store the count of nodes tagged with hardware model
|
2021-05-27 18:55:33 +02:00
|
|
|
# autoupdater: store the count of autoupdate branch
|
2017-04-10 18:54:12 +02:00
|
|
|
[[database.connection.influxdb]]
|
2017-01-29 18:30:08 +01:00
|
|
|
enable = false
|
|
|
|
address = "http://localhost:8086"
|
|
|
|
database = "ffhb"
|
|
|
|
username = ""
|
|
|
|
password = ""
|
2021-05-27 18:55:33 +02:00
|
|
|
#insecure_skip_verify = true
|
2017-10-31 14:34:01 +01:00
|
|
|
|
|
|
|
# Tagging of the data (optional)
|
2017-06-01 18:17:32 +02:00
|
|
|
[database.connection.influxdb.tags]
|
2017-10-31 14:34:01 +01:00
|
|
|
# Tags used by Yanic would override the tags from this config
|
2017-12-31 05:28:03 +01:00
|
|
|
# nodeid, hostname, owner, model, firmware_base, firmware_release,frequency11g and frequency11a are tags which are already used
|
2017-10-31 14:34:01 +01:00
|
|
|
#tagname1 = "tagvalue 1"
|
2018-01-13 16:54:48 +01:00
|
|
|
# some useful e.g.:
|
2017-10-31 14:34:01 +01:00
|
|
|
#system = "productive"
|
|
|
|
#site = "ffhb"
|
2017-04-10 18:54:12 +02:00
|
|
|
|
2023-09-17 01:06:33 +02:00
|
|
|
# Save collected data to InfluxDB2.
|
2023-09-20 09:29:02 +02:00
|
|
|
# There are the following measurements:
|
2023-09-17 01:06:33 +02:00
|
|
|
# node: store node specific data i.e. clients memory, airtime
|
|
|
|
# link: store link tq between two interfaces of two different nodes with i.e. nodeid, address, hostname
|
|
|
|
# global: store global data, i.e. count of clients and nodes
|
|
|
|
# firmware: store the count of nodes tagged with firmware
|
|
|
|
# model: store the count of nodes tagged with hardware model
|
|
|
|
# autoupdater: store the count of autoupdate branch
|
|
|
|
[[database.connection.influxdb2]]
|
|
|
|
enable = false
|
|
|
|
address = "http://localhost:8086"
|
|
|
|
token = ""
|
|
|
|
organization_id = ""
|
|
|
|
# fallback of no specific bucket for measurement is setup
|
2023-09-20 09:29:02 +02:00
|
|
|
bucket_default = "yanic"
|
2023-09-17 01:06:33 +02:00
|
|
|
|
|
|
|
# Specify bucket per measurement (of not set fallback bucket_default is used or panic)
|
|
|
|
#
|
|
|
|
# WARNING:
|
2023-09-20 09:29:02 +02:00
|
|
|
# yanic does NOT prune node's data (so please set up data retention in InfluxDB2 setup).
|
2023-09-17 01:06:33 +02:00
|
|
|
#
|
|
|
|
# We highly recommend to setup e.g. Data retention in your InfluxDB2 server per measurements.
|
|
|
|
# https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/
|
|
|
|
#
|
|
|
|
[database.connection.influxdb2.buckets]
|
|
|
|
#link = "yanic-temp"
|
|
|
|
#node = "yanic-temp"
|
|
|
|
#dhcp = "yanic-temp"
|
2023-09-20 09:29:02 +02:00
|
|
|
global = "yanic-persistent"
|
2023-09-17 01:06:33 +02:00
|
|
|
#firmware = "yanic-temp"
|
|
|
|
#model = "yanic-temp"
|
|
|
|
#autoupdater = "yanic-temp"
|
|
|
|
|
|
|
|
# Tagging of the data (optional)
|
|
|
|
[database.connection.influxdb2.tags]
|
|
|
|
# Tags used by Yanic would override the tags from this config
|
|
|
|
# nodeid, hostname, owner, model, firmware_base, firmware_release,frequency11g and frequency11a are tags which are already used
|
|
|
|
#tagname1 = "tagvalue 1"
|
|
|
|
# some useful e.g.:
|
|
|
|
#system = "productive"
|
|
|
|
#site = "ffhb"
|
|
|
|
|
2017-10-31 14:34:01 +01:00
|
|
|
# Graphite settings
|
2017-06-01 22:52:14 +02:00
|
|
|
[[database.connection.graphite]]
|
|
|
|
enable = false
|
|
|
|
address = "localhost:2003"
|
2017-10-31 14:34:01 +01:00
|
|
|
# Graphite is replacing every "." in the metric name with a slash "/" and uses
|
|
|
|
# that for the file system hierarchy it generates. it is recommended to at least
|
|
|
|
# move the metrics out of the root namespace (that would be the empty prefix).
|
|
|
|
# If you only intend to run one community and only freifunk on your graphite node
|
|
|
|
# then the prefix can be set to anything (including the empty string) since you
|
|
|
|
# probably wont care much about "polluting" the namespace.
|
2017-06-01 22:52:14 +02:00
|
|
|
prefix = "freifunk"
|
2017-12-31 05:28:03 +01:00
|
|
|
|
2018-01-15 23:19:31 +01:00
|
|
|
# respondd (yanic)
|
|
|
|
# forward collected respondd package to a address
|
|
|
|
# (e.g. to another respondd collector like a central yanic instance or hopglass)
|
|
|
|
[[database.connection.respondd]]
|
|
|
|
enable = false
|
|
|
|
# type of network to create a connection
|
|
|
|
type = "udp6"
|
|
|
|
# destination address to connect/send respondd package
|
|
|
|
address = "stats.bremen.freifunk.net:11001"
|
|
|
|
|
2017-12-31 05:28:03 +01:00
|
|
|
# Logging
|
|
|
|
[[database.connection.logging]]
|
|
|
|
enable = false
|
|
|
|
path = "/var/log/yanic.log"
|