-
Notifications
You must be signed in to change notification settings - Fork 4
/
example.config.toml
128 lines (106 loc) · 5.3 KB
/
example.config.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# This is example config
# Name of the Frontman
# Used to identify group measurements if multiple frontmen run in grouped-mode (ask_neighbor)
node_name = "Frontman"
sleep = 5.0 # delay before starting a new round of checks in seconds; number must contains decimal point
pid = "/tmp/frontman.pid" # pid file location
stats_file = "/tmp/frontman.stats"
# Logging
log = "/var/log/frontman/frontman.log" # log file location
log_syslog = "" # ""(don't use syslog), "local"(use local unix socket) or "udp://localhost:554
log_level = "info" # "debug", "info", "error" verbose level; can be overriden with -v flag
# ICMP pings
icmp_timeout = 0.5 # ICMP ping timeout in seconds; number must contains decimal point
# TCP checks
net_tcp_timeout = 2.0 # TCP timeout in seconds; number must contains decimal point
# UDP checks
net_udp_timeout = 1.5 # UDP timeout in seconds; number must contains decimal point
# Web checks
http_tcp_timeout = 15.0 # HTTP timeout in seconds; number must contains decimal point
max_redirects = 3 # Max number of HTTP redirects to follow
ignore_ssl_errors = false # Ignore SSL errors (e.g. self-signed or expired certificate)
ssl_cert_expiry_threshold = 7 # Min days remain on the SSL cert to pass the check
# Input and results
io_mode = "http" # "file" or "http" – where frontman gets checks to perform and post results, can be overriden with -i and -o flag
hub_url = "" # requires io_mode to be "http"
hub_user = "" # requires io_mode to be "http"
hub_password = "" # requires io_mode to be "http"
hub_proxy = "" # HTTP proxy to use with HUB, requires io_mode to be "http"
hub_proxy_user = "" # requires hub_proxy to be set
hub_proxy_password = "" # requires hub_proxy_user to be set
hub_request_timeout = 10
# System
# host_info of frontman machine will be sent to hub
# default ['uname','os_kernel','os_family','os_arch','cpu_model','fqdn','hostname','memory_total_B']
host_info = ['uname','os_kernel','os_family','os_arch','cpu_model','fqdn','hostname','memory_total_B']
#
# Frontman can perform health checks before executing all other checks.
# This is useful to confirm a stable internet connection to avoid false alerts due to network outages
# The health check is performed every time a new check round starts according to the sleep interval.
# If the health check fails, the round is skipped and no checks are performed.
#
[health_checks]
# Ping all hosts of the list. Only if frontman gets a positive answer form all of them, frontman continues.
# Only 0% packet loss is considered as a positive check result. Pings are performed in parallel.
reference_ping_hosts = ['8.8.8.8','1.1.1.1','8.8.4.4']
# Maximum time (seconds) to wait for the response.
reference_ping_timeout = 0.5
# Number of request packets to send to each host.
reference_ping_count = 1
# Frontman can execute a failed check on other frontmen - ideally on different locations -
# to confirm the check fails everywhere.
# Only if the check fails on all of them it's considered as failed and sent back to the hub.
# If the check succeeds on one frontman this check result is sent back
# Requires the HTTP listener enabled on the foreign frontman
# Example:
# [nodes]
# [nodes.1]
# url = "https://frontman-1.example.com:9955"
# username = "frontman"
# password = "secret"
# verify_ssl = true
# Node configuration
[node]
# Set the maximum time in seconds frontman should spend trying to connect a node
node_timeout = 3.0
# Cache errors for N seconds. If the connection to a node fails for whatever reason, this node is not asked again, until the error cache has expired.
node_cache_errors = 10.0
# Do not forward failed checks to the foreign node(s) if the message contains one of the following regular expresions.
# Matching is case insensitive.
forward_except = [
'bad status code',
'certificate.*(expire|unknown)',
'(tls|ssl) (error|failed|handshake)',
'service.*support (ssl|tls)',
'failed to verify .* service',
'connection.*refused',
'no such host',
'x509',
'pattern.*extraxcted text'
]
# Log all checks forwarded to foreign node(s).
# The log contains the check ID, the check type, and the message of the local check result.
forward_log = "/tmp/frontman-forward.log"
[http_listener]
# HTTP Listener
# Perform checks requested via HTTP POST requests on '/check'
# Examples:
# http_listen = "http://0.0.0.0:9090" # for unencrypted http connections
# http_listen = "https://0.0.0.0:8443" # for encrypted https connections
# execute "sudo setcap cap_net_bind_service=+ep /usr/bin/frontman" to use ports < 1024
# Executing SNMP check through the HTTP Listener is not supported.
http_listen = ""
# Private key for https connections
http_tls_key = ""
# Certificate for https connections
http_tls_cert = ""
# Username for the http basic authentication. If omitted authentication is disabled
http_auth_user = ""
# Password for the http basic authentication.
http_auth_password = ""
# Log http requests. On windows slash must be escaped like "C:\\access.log"
http_access_log = ""
# Control how frontman installs self-updates. Windows-only
[self_update]
enabled = true # Set to false to disable self-updates
check_interval = 21600 # Frontman will check for new versions every N seconds