Skip to main content

Configuration

Agent Configuration Files​

Agent reads its configuration files in YAML format, in the following order:

  • /etc/glouton/glouton.conf
  • /etc/bleemeo/conf.d/*.conf
  • etc/glouton.conf
  • etc/conf.d/*.conf
  • C:\ProgramData\glouton\glouton.conf
  • C:\ProgramData\glouton\conf.d

You can add override these paths with the environment variable GLOUTON_CONFIG_FILES or with the flag -config.

For directory (like /etc/glouton/agent.conf.d) files are read in lexicographic order. We recommend adding a two digits number in front of all filenames to control order. For example "05-system" and "90-custom".

Configuration files are merged and when a conflict occurs, entry from last file wins.

For example, if you have the following files:

  • /etc/glouton/glouton.conf
  • /etc/glouton/conf.d/05-system.conf
  • /etc/glouton/conf.d/90-custom.conf

Where each has an entry "logging.level", e.g.:

# file /etc/glouton/glouton.conf
logging:
level: INFO

# file /etc/glouton/conf.d/05-system.conf
logging:
level: WARNING

# file /etc/glouton/conf.d/90-custom.conf
logging:
level: DEBUG

The result, will be level = DEBUG from 90-custom.conf.

Merge will create the union of dictionary and concatenate list, therefore the following files:

# file /etc/glouton/glouton.conf
logging:
level: INFO

network_interface_denylist:
- lo
- docker

# file /etc/glouton/conf.d/05-system.conf
logging:
output: syslog

# file /etc/glouton/conf.d/90-custom.conf
network_interface_denylist:
- lo
- vnet

Would be equivalent to one file with:

# keys inside logging are merged
logging:
level: INFO
output: syslog

# list are concatenated. No deduplication is done.
network_interface_denylist:
- lo
- docker
- lo
- vnet

Reloading the configuration​

Glouton is automatically reloaded when configuration files are modified, so you don't need to restart it.

You can disable the automatic reload by setting the environment variable GLOUTON_DISABLE_RELOAD to "false".

If the automatic reload is disabled, you need to restart the agent after changing the config. Use systemctl restart glouton on Linux or docker restart glouton if you are using the agent in a container.

Environment variables​

The Bleemeo agent allow to override configuration using environment variables.

For example:

  • logging.level could be overridden by environment variable GLOUTON_LOGGING_LEVEL
  • bleemeo.account_id could be overridden by environment variable GLOUTON_BLEEMEO_ACCOUNT_ID
  • agent.upgrade_file could be overridden by environment variable GLOUTON_AGENT_UPGRADE_FILE

The environment variable name is the configuration name with:

  • dots (.) replaced by underscore (_),
  • all letters converted to uppercase
  • and the prefix GLOUTON_ added.

Simple type (string, integer and boolean) are supported from environment variable.

For booleans, the Bleemeo agent recognize "true", "yes" and "1" as true and "false", "no", "0" as false. This conversion is case insensitive.

List of strings are also supported. Environment variables replace the existing values, no concatenation is done. A list is made using coma (,) separated values.

Mapping of strings are also supported, using key=value separated by comas. Like for lists, no merge is done and environment varaibles overwrite any existing value.

Example of list from environment, which sets tags to "production", "backend" and "database":

export GLOUTON_TAGS=production,backend,database

Reference​

In this reference, options will use dots (.) in their name. Each dot will be a new indentation level in the configuration files. E.g. logging.level is written in the configuration files as:

logging:
level: value

Indentation uses whitespace only, no tabulations.

Options available (with the default value):

agent:
auto_upgrade_file: "auto_upgrade"
cloudimage_creation_file: "cloudimage_creation"
deprecated_state_file: ""
facts_file: "facts.yaml"
disable_local_duplication_detection_by_process: false
http_debug:
bind_address: "localhost:6060"
enable: false
installation_format: "manual"
metrics_format: "Bleemeo"
netstat_file: "netstat.out"
node_exporter:
collectors:
- "cpu"
- "diskstats"
- "filesystem"
- "loadavg"
- "meminfo"
- "netdev"
enable: true
process_exporter:
enable: true
public_ip_indicator: "https://myip.bleemeo.com"
state_cache_file: ""
state_file: "state.json"
state_reset_file: "state.reset"
telemetry:
address: "https://telemetry.bleemeo.com/v1/telemetry/"
enable: true
upgrade_file: "upgrade"
windows_exporter:
collectors:
- "cpu"
- "cs"
- "logical_disk"
- "logon"
- "memory"
- "net"
- "os"
- "system"
- "tcp"
enable: true

blackbox:
enable: true
modules:
http:
prober: "http"
http:
preferred_ip_protocol: "ip4"
scraper_name: ""
scraper_send_uuid: true
targets: []
user_agent: "Glouton 0.1"

bleemeo:
account_id: ""
api_base: "https://api.bleemeo.com/"
api_ssl_insecure: false
container_registration_delay_seconds: 30
enable: true
initial_agent_name: ""
initial_server_group_name: ""
initial_server_group_name_for_snmp: ""
mqtt:
cafile: ""
host: "mqtt.bleemeo.com"
port: 8883
ssl: true
ssl_insecure: false
registration_key: ""
sentry:
dsn: ""

container:
filter:
allow_by_default: true
allow_list: []
deny_list: []
pid_namespace_host: false
runtime:
containerd:
addresses:
- "/run/containerd/containerd.sock"
- "/run/k3s/containerd/containerd.sock"
prefix_hostroot: true
docker:
addresses:
- ""
- "unix:///run/docker.sock"
- "unix:///var/run/docker.sock"
prefix_hostroot: true
type: ""

df:
host_mount_point: ""
ignore_fs_type:
- "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|devfs|aufs)$"
- "tmpfs"
- "efivarfs"
- ".*gvfs.*"
path_ignore:
- "/var/lib/docker/aufs"
- "/var/lib/docker/overlay"
- "/var/lib/docker/overlay2"
- "/var/lib/docker/devicemapper"
- "/var/lib/docker/vfs"
- "/var/lib/docker/btrfs"
- "/var/lib/docker/zfs"
- "/var/lib/docker/plugins"
- "/var/lib/docker/containers"
- "/snap"
- "/run/snapd"
- "/run/docker/runtime-runc"

disk_ignore:
- "^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$"
- "^dm-[0-9]+$"
- "^(hd|sd|vd|xvd|fio|rssd)[a-z][0-9]+$"
- "^(mmcblk|nvme[0-9]n|drbd|rbd|skd|rsxx)[0-9]p[0-9]+$"

disk_monitor:
- "^(hd|sd|vd|xvd)[a-z]$"
- "^mmcblk[0-9]$"
- "^nvme[0-9]n[0-9]$"
- "^fio[a-z]$"
- "^drbd[0-9]$"
- "^rbd[0-9]$"
- "^rssd[a-z]$"
- "^skd[0-9]$"
- "^rsxx[0-9]$"
- "^[A-Z]:$"

influxdb:
db_name: "glouton"
enable: false
host: "localhost"
port: 8086
tags: {}

jmx:
enable: true

jmxtrans:
config_file: "/var/lib/jmxtrans/glouton-generated.json"
file_permission: "0640"
graphite_port: 2004

kubernetes:
allow_cluster_metrics: false
clustername: ""
enable: false
kubeconfig: ""
nodename: ""

logging:
buffer:
head_size_bytes: 500000
tail_size_bytes: 500000
filename: ""
level: "INFO"
output: "console"
package_levels: ""

metric:
allow_metrics: []
deny_metrics: []
include_default_metrics: true
prometheus:
targets: []
snmp:
exporter_address: "http://localhost:9116"
targets: []
softstatus_period:
system_pending_security_updates: 86400
system_pending_updates: 86400
time_drift: 0
time_elapsed_since_last_data: 0
softstatus_period_default: 300

mqtt:
ca_file: ""
enable: false
hosts:
- "127.0.0.1"
password: ""
port: 1883
ssl: false
ssl_insecure: false
username: ""

network_interface_denylist:
- "docker"
- "lo"
- "veth"
- "virbr"
- "vnet"
- "isatap"
- "fwbr"
- "fwpr"
- "fwln"

nrpe:
address: "0.0.0.0"
conf_paths:
- "/etc/nagios/nrpe.cfg"
enable: false
port: 5666
ssl: true

nvidia_smi:
bin_path: "/usr/bin/nvidia-smi"
enable: false
timeout: 5

service: []

service_ignore_check: []

service_ignore_metrics: []

smart:
enable: true
path_smartctl: ""
devices: []
excludes: []

stack: ""

tags: []

telegraf:
docker_metrics_enable: true
statsd:
address: "127.0.0.1"
enable: true
port: 8125

thresholds: {}

web:
enable: true
listener:
address: "127.0.0.1"
port: 8015
local_ui:
enable: true
static_cdn_url: "/static/"

zabbix:
address: "127.0.0.1"
enable: false
port: 10050

agent.auto_upgrade_file​

If you installed the agent with the standard method, auto-upgrade should be enabled.

If this file exists, it means that the agent is being updated. In this case the agent avoids generating disconnect/reconnect events.

Default is "auto_upgrade", i.e. a file named "auto_upgrade" in current directory. Our packaging changes this default to /var/lib/glouton/auto_upgrade in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_AGENT_AUTO_UPGRADE_FILE.

agent.cloudimage_creation_file​

Path to Cloud image marker file

This file allows to install Glouton without starting it, which is useful when building an Cloud image (like Amazon AMI). See Install Agent with Cloud Image Creation

Default is "cloudimage_creation", i.e. a file named "cloudimage_creation" in current directory. Our packaging changes this default to /var/lib/glouton/cloudimage_creation in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_AGENT_CLOUDIMAGE_CREATION_FILE.

agent.deprecated_state_file​

Deprecated path to the Glouton state file, this is used when the state file is migrated. This shouldn't be changer by the user.

Default is unset.

This option could be overridden by the environment variable GLOUTON_AGENT_DEPRECATED_STATE_FILE.

agent.facts_file​

Path to privileged facts.

The agent does not run as root, but some facts need root privileged, like the server serial number. To access this information, during package installation the command glouton-gather-facts is run to gather those facts and write them to /var/lib/glouton/facts.yaml.

Default is facts.yaml, i.e. a file named facts.yaml in current directory. Our packaging changes this default to /var/lib/glouton/facts.yaml in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_AGENT_FACTS_FILE.

agent.disable_local_duplication_detection_by_process​

Disable local duplication detection. The duplication detection prevents an agent from talking to the Bleemeo API if it detects another agent process on the same host. This avoids a bad state if both agents share their state file.

If you have two agents on the same host using two different state files, you can safely enable this option.

Default is false.

This option could be overridden by the environment variable GLOUTON_AGENT_DISABLE_LOCAL_DUPLICATION_DETECTION_BY_PROCESS.

agent.http_debug​

The Bleemeo agent can start a HTTP server used during development to gather performance and debugging traces. It relies on the Golang HTTP pprof server.

Two settings exists:

  • agent.http_debug.enable: Which enables or not the server. Default to false
  • agent.http_debug.bind_address: Which is the address and port to listen on. Default to "localhost:6060"

Those options could be overridden by the environment variable GLOUTON_HTTP_DEBUG_ENABLE and GLOUTON_HTTP_DEBUG_BIND_ADDRESS.

agent.installation_format​

The format used to install the Bleemeo Agent. The agent sends a fact "installation_format" with this value.

Default is "manual". Our packaging changes this default to match the format used:

  • "Package (deb)"
  • "Package (RPM)"
  • "Package (Windows)"
  • "Docker image"

This option could be overridden by the environment variable GLOUTON_AGENT_INSTALLATION_FORMAT.

agent.metrics_format​

Two metrics format are available:

  • the "Bleemeo" metric format is used by Bleemeo, some metric names and labels are simplified and an "item" label is added to metrics.
  • the "Prometheus" format uses the node_exporter system metric names and labels are not modified. This mode is not recommended and not well tested.

Default is "Bleemeo".

This option could be overridden by the environment variable GLOUTON_AGENT_METRICS_FORMAT.

agent.netstat_file​

Path to netstat output.

The agent does not run as root, but uses information from netstat which requires root privileged. To access this information, our packaging setup a cron which generates a netstat output using the command glouton-netstat and writes to /var/lib/glouton/netstat.out.

Default is netstat.out, i.e. a file named netstat.out in the current directory. Our packaging changes this default to /var/lib/glouton/netstat.out in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_AGENT_NETSTAT_FILE.

agent.node_exporter.collectors​

Enable specific list of node_exporter collectors.

Default is unset, which means use node_exporter defaults.

This option could be overridden by the environment variable GLOUTON_AGENT_NODE_EXPORTER_COLLECTORS.

agent.node_exporter.enable​

Enable or not built-in node_exporter.

node_exporter is only used on Linux, on Windows windows_exporter is used.

The exporter exposes metrics on local web interface, on /metrics (default to localhost:8015).

Default to true

This option could be overridden by the environment variable GLOUTON_AGENT_NODE_EXPORTER_ENABLE.

agent.process_exporter.enable​

Enable gathering of key processes metrics.

It relies on process-exporter which is only available on Linux.

Default is true

This option could be overridden by the environment variable GLOUTON_AGENT_PROCESS_EXPORTER_ENABLE.

agent.public_ip_indicator​

URL of IP indicator service.

The agent sends a fact "public_ip", this URL is used to determine the public IP of your server.

This option could be overridden by the environment variable GLOUTON_AGENT_PUBLIC_IP_INDICATOR.

Default is "https://myip.bleemeo.com".

agent.state_cache_file​

Path to store agent state cache. It stores information like the currently detected services and the registered metrics.

The folder containing the state cache file must be writable.

The default behavior is to add .cache before the agent.state_file extension. If the state file setting is unchanged, the default is "state.cache.json".

This option could be overridden by the environment variable GLOUTON_AGENT_STATE_CACHE_FILE.

agent.state_file​

Path to store agent state.

The state must be writable, it stores information like the agent unique identifier and the credentials for the Bleemeo Cloud platform.

Default is state.json, i.e. a file named state.json in current directory. Our packaging changes this default to /var/lib/glouton/state.json in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_AGENT_STATE_FILE.

agent.state_reset_file​

If this file is present, on startup the agent will drop its state and keep only the persistent information.

This is deprecated, now you can simply remove the state cache file ("state.cache.json" by default).

Default is state.reset.

This option could be overridden by the environment variable GLOUTON_AGENT_STATE_RESET_FILE.

agent.telemetry.enable​

Enable telemetry.

The telemetry contains the following information:

  • whether you are connected to Bleemeo
  • your server specifications (CPU, RAM, architecture)
  • the OS you are using
  • your timezone
  • the way you installed Glouton (manual, Docker, deb or rpm package)
  • the version of the agent

Default is true.

This option could be overridden by the environment variable GLOUTON_AGENT_TELEMETRY_ENABLE.

agent.telemetry.address​

The address used to send the telemetry information.

Default is "https://telemetry.bleemeo.com/v1/telemetry/".

This option could be overridden by the environment variable GLOUTON_AGENT_TELEMETRY_ADDRESS.

agent.upgrade_file​

If this file exists, it means that the agent is being updated. In this case the agent avoids generating disconnect/reconnect events.

Default is "upgrade", i.e. a file named "upgrade" in current directory. Our packaging changes this default to /var/lib/glouton/upgrade in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_AGENT_UPGRADE_FILE.

agent.windows_exporter.collectors​

Enable specific list of windows_exporter collectors.

Default enables most collectors of windows_exporter.

This option could be overridden by the environment variable GLOUTON_AGENT_WINDOWS_EXPORTER_COLLECTORS.

agent.windows_exporter.enable​

Enable or not built-in windows_exporter.

windows_exporter is only used on Windows, on Linux node_exporter is used.

The exporter exposes metrics on the local web interface, on /metrics (default to localhost:8015).

Default to true

This option could be overridden by the environment variable GLOUTON_AGENT_WINDOWS_EXPORTER_ENABLE.

blackbox.enable​

Enable built-in blackbox_exporter

The Bleemeo agent can monitor an URL and expose metrics on the local web interface, on /metrics (default to localhost:8015).

Default is true

This option could be overridden by the environment variable GLOUTON_BLACKBOX_ENABLE.

blackbox.modules​

Allow to configure blackbox modules.

The default has one module named "http" that do check for HTTP URLs.

The following example add two modules, one named "http_200" that checks HTTP URLs and ensure that they reply with status 200 and another named "ping" which simply does ICMP ping checks.

blackbox:
modules:
http_200:
prober: "http"
http:
valid_status_codes: [200]
ping:
prober: "icmp"

You may then use such modules by adding targets:

blackbox:
targets:
- url: https://bleemeo.com
module: http_200
- url: bleemeo.com
module: icmp

blackbox.scraper_name​

Define the value of label "scraper" associated with metrics from blackbox.

This option could be overridden by the environment variable GLOUTON_BLACKBOX_SCRAPER_NAME.

blackbox.scraper_send_uuid​

Whether the agent should send the "scraper_uuid" label for metrics from blackbox. If disabled, you have to ensure scraper_name is unique to avoid trouble. Disabling this setting is not supported for Bleemeo users and will result in broken local probes.

Default is true.

This option could be overridden by the environment variable GLOUTON_BLACKBOX_SCRAPER_SEND_UUID.

blackbox.targets​

List of targets (URLs) that built-in blackbox_exporter should monitor.

Its a list of URL with the prober used. For example:

blackbox:
targets:
- url: https://bleemeo.com
module: http
# Name defines the value of the "instance" label associated with metrics
# from this target. If empty, defaults to the target URL.
name: bleemeo

If you use the agent Prometheus endpoint /metrics, the blackbox metrics are not exposed by default to reduce the time needed to gather metrics. You need to add ?includeMonitors to include the blackbox metrics or ?onlyMonitors to skip other metrics.

blackbox.user_agent​

The user agent used by blackbox.

Default is "Glouton $VERSION", with $VERSION replaced by the current agent version.

This option could be overridden by the environment variable GLOUTON_BLACKBOX_USER_AGENT.

bleemeo.account_id​

The account UUID for Bleemeo Cloud.

The agent needs this information to communicate with the Bleemeo Cloud platform. When using standard installation method, this option is written in /etc/glouton/conf.d/30-install.conf.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_ACCOUNT_ID.

bleemeo.api_base​

Root URL of Bleemeo Cloud platform API.

Default is "https://api.bleemeo.com/".

This option could be overridden by the environment variable GLOUTON_BLEEMEO_API_BASE.

bleemeo.api_ssl_insecure​

Should the agent ignore HTTPS SSL certificate errors.

Default to false, by default HTTPS SSL certificate must be valid.

Settings this value to true creates a security issue and should only be used in development.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_API_SSL_INSECURE.

bleemeo.container_registration_delay_seconds​

To avoid registering short-lived containers (e.g. container used to build images), the Bleemeo agent has a delay before registering the containers.

Default is 30 seconds.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_CONTAINER_REGISTRATION_DELAY_SECONDS.

bleemeo.enable​

Should the agent communicate with Bleemeo Cloud platform.

Default is true.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_ENABLE.

bleemeo.initial_agent_name​

The name used when the agent register itself with Bleemeo Cloud.

This variable is only used at registration time, it's not used for any update.

If unset, the FQDN of the server will be used as name during registration.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_INITIAL_AGENT_NAME.

bleemeo.initial_server_group_name​

The name of the server group in which the agent will register.

This variable is only used at registration time, it's not used for any update.

If unset, the agent will go to the group selected by default in server group.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_INITIAL_SERVER_GROUP_NAME.

bleemeo.initial_server_group_name_for_snmp​

The name of the server group in which the SNMP agent will register.

This variable is only used at registration time, it's not used for any update.

If unset, the agent will go to the group selected by default in server group.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_INITIAL_SERVER_GROUP_NAME_FOR_SNMP.

bleemeo.mqtt.cafile​

Path to CAs certificate bundle.

The agent trust CAs present in this bundle when checking trust-chain to MQTT SSL certificate.

Default is unset, meaning use system CAs.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_MQTT_CAFILE.

bleemeo.mqtt.host​

Address of MQTT server.

Default is "mqtt.bleemeo.com".

This option could be overridden by the environment variable GLOUTON_BLEEMEO_MQTT_HOST.

bleemeo.mqtt.port​

Port of MQTT server.

Default is 8883.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_MQTT_PORT.

bleemeo.mqtt.ssl​

Should the agent use SSL for MQTT communication.

Bleemeo Cloud Platform only all SSL communication, this option is only useful for Bleemeo agent development.

Default is true.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_MQTT_SSL.

bleemeo.mqtt.ssl_insecure​

Should the agent ignore MQTT SSL certificate errors.

Default to false, by default MQTT SSL certificate must be valid.

Settings this value to true creates a security issue and should only be used in development.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_MQTT_SSL_INSECURE.

bleemeo.registration_key​

The registration key for Bleemeo Cloud.

Like bleemeo.account_id, it's required for communication with Bleemeo Cloud platform. This secret key allows the agent to registers itself in your account. Like bleemeo.account_id, standard installation method writes this option in /etc/glouton/conf.d/30-install.conf.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_REGISTRATION_KEY.

bleemeo.sentry.dsn​

Sentry Data Source Name where crash reports will be sent.

This option could be overridden by the environment variable GLOUTON_BLEEMEO_SENTRY_DSN.

container.filter.allow_by_default​

This configure whether a container without glouton.enable label and not covered by configuration container.filter.allow_list/container.filter.deny_list will be monitored or not.

Default is true, which means container are monitored by default.

See Filtering monitored container

This option could be overridden by the environment variable GLOUTON_CONTAINER_FILTER_ALLOW_BY_DEFAULT.

container.filter.allow_list​

This configure a list of container name pattern that will be monitored. This is mostly useful when container.filter.allow_by_default is false.

Default is empty.

See Filtering monitored container

This option could be overridden by the environment variable GLOUTON_CONTAINER_FILTER_ALLOW_LIST.

container.filter.deny_list​

This configure a list of container name pattern that will not be monitored.

Default is empty.

See Filtering monitored container

This option could be overridden by the environment variable GLOUTON_CONTAINER_FILTER_ALLOW_LIST.

container.type​

If set, it's the name of the containerization solution used for Agent itself. For example "docker" if the Bleemeo agent is running inside a Docker container.

Default is unset, meaning the Bleemeo Agent is running outside any container.

This option could be overridden by the environment variable GLOUTON_CONTAINER_TYPE.

container.pid_namespace_host​

When the agent is running in a container, does it see all PID.

When using Docker, it means that container running the agent is started with --pid=host. It's needed to gather information about running processes of your server.

Default is false. Our Docker image set this option to true and expect to be started with --pid=host

This option could be overridden by the environment variable GLOUTON_CONTAINER_PID_NAMESPACE_HOST.

container.runtime.docker.addresses​

List of addresses to contact Docker. The first addresses that response will be used.

For Docker the special address empty string is used to means the default value of the Docker client library. This default should also use some environment variable.

In addition to value explicit set, when container.runtime.docker.prefix_hostroot is true and when Glouton is running in a container, the host prefix ("/hostroot" usually) is added before all paths.

This option could be overridden by the environment variable GLOUTON_CONTAINER_RUNTIME_DOCKER_ADDRESSES.

container.runtime.docker.prefix_hostroot​

Should the path of container.runtime.docker.addresses be prefixed by the host prefix ("/hostroot" usually).

This is needed since the location of the Docker socket is on the host filesystem and the host filesystem is mounted on "/hostroot" for the Glouton process when running in a container.

Default is true.

This option could be overridden by the environment variable GLOUTON_CONTAINER_RUNTIME_DOCKER_PREFIX_HOSTROOT.

container.runtime.containerd.addresses​

List of addresses to contact Docker. The first addresses that response will be used.

In addition to value explicit set, when container.runtime.containerd.prefix_hostroot is true and when Glouton is running in a container, the host prefix ("/hostroot" usually) is added before all paths.

This option could be overridden by the environment variable GLOUTON_CONTAINER_RUNTIME_CONTAINERD_ADDRESSES.

container.runtime.containerd.prefix_hostroot​

Should the path of container.runtime.containerd.addresses be prefixed by the host prefix ("/hostroot" usually).

This is needed since the location of the ContainerD socket is on the host filesystem and the host filesystem is mounted on "/hostroot" for the Glouton process when running in a container.

Default is true.

This option could be overridden by the environment variable GLOUTON_CONTAINER_RUNTIME_CONTAINERD_PREFIX_HOSTROOT.

df.host_mount_point​

Path where the root filesystem is.

This is useful when the agent is running in a container. In this case the root (/) for the agent is not the root filesystem of your server. To gather disk usage for all your filesystems you need to expose the real root in the container running the agent (with -v /:/hostroot:ro in Docker). In such case, this option should point the path "/hostroot".

When set, only filesystem starting with this path are considered and this path fragment is removed before reporting. For example if the Bleemeo agent is running in a container and see the following filesystems: "/", "/hostroot" and "/hostroot/srv", then only "/hostroot" and "/hostroot/srv" will be reported under the names "/" and "/srv".

This option could be overridden by the environment variable GLOUTON_DF_HOST_MOUNT_POINT.

df.ignore_fs_type​

List of regular expression of filesystem types to ignore.

This allows to ignore pseudo filesystem that are not using a disk to store files. For example tmpfs which stores files in memory, usually for temporary processing. Another example is /proc filesystem which exposes Kernel information.

You can also ignore filesystems by path, see df.path_ignore.

The default is to exclude most common pseudo-filesystem:

  • ^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|devfs|aufs)$
  • tmpfs
  • efivarfs
  • .*gvfs.*

This option could be overridden by the environment variable GLOUTON_DF_IGNORE_FS_TYPE.

df.path_ignore​

List of paths to ignore for disk usage.

For each path in the list, Agent ignores all filesystems at or below this path. For example if "/media" is in the ignore list, no filesystem usage will be reported for a USB key mounted on "/media/usb".

The Bleemeo agent also ignores some filesystem types: tmpfs, procfs, cgroup filesystem... See df.ignore_fs_type.

Default ignore paths for containers "overlay" filesystems, like "/var/lib/docker/overlay", "/var/lib/docker/aufs" or "/snap".

This option could be overridden by the environment variable GLOUTON_DF_PATH_IGNORE.

disk_ignore​

List of regular expressions of disk to ignore for IO.

If set, disk_monitor will be ignored, you should only set either disk_ignore or disk_monitor, not both.

Default is to exclude:

  • ^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$
  • ^dm-[0-9]+$
  • ^(hd|sd|vd|xvd|fio|rssd)[a-z][0-9]+$
  • ^(mmcblk|nvme[0-9]n|drbd|rbd|skd|rsxx)[0-9]p[0-9]+$

The last two exclude partition from disk like sda. So it exclude sda1, sda2... but sda itself is monitored.

This option could be overridden by the environment variable GLOUTON_DISK_IGNORE.

disk_monitor​

List of regular expressions of disk to monitor for IO.

This is a deprecated option and disk_ignore should be used.

This option could be overridden by the environment variable GLOUTON_DISK_MONITOR.

influxdb.db_name​

Name of the InfluxDB database used to store metrics.

Default is "metrics"

This option could be overridden by the environment variable GLOUTON_INFLUXDB_DB_NAME.

influxdb.enable​

Should the agent sends metrics to an InfluxDB server.

Default is false.

This option could be overridden by the environment variable GLOUTON_INFLUXDB_ENABLE.

influxdb.host​

Address of the InfluxDB server.

Default is "localhost".

This option could be overridden by the environment variable GLOUTON_INFLUXDB_HOST.

influxdb.port​

Port of the InfluxDB server.

Default is 8086.

This option could be overridden by the environment variable GLOUTON_INFLUXDB_PORT.

influxdb.tags​

Tags to add to InfluxDB points.

Default is unset.

This option could be overridden by the environment variable GLOUTON_INFLUXDB_TAGS.

jmx.enable​

Enable gathering of JMX metrics. See Java metrics.

Default is true

This option could be overridden by the environment variable GLOUTON_JMX_ENABLE.

jmxtrans.config_file​

JMX metrics are gathered using jmxtrans.

This configure the path to write the jmxtrans configuration file.

Default is "/var/lib/jmxtrans/glouton-generated.json".

This option could be overridden by the environment variable GLOUTON_JMXTRANS_CONFIG_FILE.

jmxtrans.file_permission​

The jmxtrans configuration file may contains credentials to access JMX. So the file shouldn't be world readable.

Our packaging will set the file group ownership to "jmxtrans" and owner to "Glouton". This will allow Glouton to write the file and jmxtrans to read it without allowing everyone to read it.

Default is "0640"

This option could be overridden by the environment variable GLOUTON_JMXTRANS_FILE_PERMISSION.

jmxtrans.graphite_port​

jmxtrans send metrics to Glouton using Graphite protocol. When the Bleemeo agent expects JMX metrics, it will listen on this port and configure jmxtrans to send metrics to this port.

Default is 2004

This option could be overridden by the environment variable GLOUTON_JMXTRANS_GRAPHITE_PORT.

kubernetes.enable​

Enable querying the Kubernetes API to retrieve the list of PODs. This is required to find the IP addresses of containers used by Kubernetes.

The default is false, but Kubernetes example yaml for Bleemeo agent will enable it.

This option could be overridden by the environment variable GLOUTON_KUBERNETES_ENABLE.

kubernetes.allow_cluster_metrics​

Should this agent gather Kubernetes cluster metrics (kubernetes_pods_count, kubernetes_namespaces_count and kubernetes_nodes_count, see Kubernetes metrics for details).

The default is false, but the Bleemeo API will elect one agent in the cluster to gather these metrics.

This option could be overridden by the environment variable GLOUTON_KUBERNETES_ALLOW_CLUSTER_METRICS.

kubernetes.clustername​

The cluster name is used by the Bleemeo agents to know they belong to the same cluster, so this value need to be unique for each Kubernetes cluster you have.

The default is unset.

This option could be overridden by the environment variable GLOUTON_KUBERNETES_CLUSTERNAME.

kubernetes.kubeconfig​

To access Kubernetes API, the Bleemeo agent needs credentials. Usually when Kubernetes is used, the Bleemeo agent runs as a Kubernetes POD. In this case is easier to use in-cluster credentials and service account (this is done by default if you followed the installation intructions on Kubernetes).

But if the Bleemeo agent is not running using PODs or for other needs, you may specify a path to a kubectl configuration file containing credentials (and the address to the Kubernetes API). Credentials should allow listings PODs on all namespaces.

Default is unset (use service account).

This option could be overridden by the environment variable GLOUTON_KUBERNETES_KUBECONFIG.

kubernetes.nodename​

The Bleemeo agent only monitor PODs/containers running on it node. So when listing PODs, it should only list PODs running on the same node as the Bleemeo agent.

This settings specify the nodename the Bleemeo agent runs on. If empty, all PODs are listed which may be a performance issue on large cluster.

Default is empty but but Kubernetes example yaml for Bleemeo agent uses Kubernetes downward API to fill the value.

This option could be overridden by the environment variable GLOUTON_KUBERNETES_NODENAME.

logging.buffer​

The Bleemeo agent has a diagnostic page on it local webserver (default is localhost:8015). It allows to download an diagnostic archive which contains last logs messages.

This settings allows to configure the size (in lines) of messages kept in-memory to be included in the diagnostic archive.

Two options exists:

  • logging.buffer.head_size_bytes: which configures how many log lines after startup are kept. This allows the diagnostic archive to always contains startup messages.
  • logging.buffer.tail_size_bytes: which configure how many of last log lines are kept.

Default is rather small (500kB for head_size and 500kB for tail_size) but should be enough for troubleshooting reproducible issues.

For issue harder to reproduce, increasing buffer size will allow to keep messages for a longer time at the expense of memory usage.

Those options could be overridden by the environment variable GLOUTON_LOGGING_BUFFER_HEAD_SIZE_BYTES and GLOUTON_LOGGING_BUFFER_TAIL_SIZE_BYTES.

logging.level​

Verbosity level of log messages. Valid values are "DEBUG", "VERBOSE and "INFO".

Default is "INFO".

Verbose level will show additional information useful when troubleshooting issue.

Debug level is probably too verbose and mainly useful for debugging of Bleemeo agent itself.

This option could be overridden by the environment variable GLOUTON_LOGGING_LEVEL.

logging.output​

Output of all log messages. Valid values are "console", "syslog" and "file".

Default is "console". Our packaging changes this default to "syslog" in /etc/glouton/conf.d/05-system.conf.

This option could be overridden by the environment variable GLOUTON_LOGGING_OUTPUT.

logging.filename​

If logging.output is set to "file", the name of the file to use as output.

Default is unset.

This option could be overridden by the environment variable GLOUTON_LOGGING_FILENAME.

logging.package_levels​

This options allow to increase log level for only one component. This is only used during development of the Bleemeo agent.

The format looks like "discovery=2,facts=1". Which enable debug level for package discovery and level verbose for packages facts.

Default is unset.

This option could be overridden by the environment variable GLOUTON_LOGGING_PACKAGE_LEVELS.

metric.allow_metrics, metric.deny_metrics, metric.include_default_metrics​

Configuration for metric filtering.

For more details on these options, see Metrics Filtering.

metric.prometheus​

Configuration for custom metrics from a Prometheus exporter.

For more details on this option, see Prometheus metrics.

metric.softstatus_period​

Per-metric override of the soft-status grace period.

It allow to change the grace period for metric where the default (see above) does not match. For example pending system upgrades, you probably don't apply upgrades every 5 minutes.

The default define overrides for:

  • pending system upgrades to 1 day, giving administrator 1 day to apply upgrade before generating an alarm.
  • time_elapsed_since_last_data to instantaneous since this metric is already a duration since an issue.

This option could be overridden by the environment variable GLOUTON_METRIC_SOFTSTATUS_PERIOD.

metric.softstatus_period_default​

Default duration of the soft-status grace period in seconds.

The Bleemeo agent supports a grace period when a metric just crossed a threshold. The metric must stay above the threshold for the duration of the grace period before its status change. It avoid generating an alarm for short spike of the metric (for example CPU usage, that could easily reach 100% during short period).

Default is 5 minutes (300 seconds).

This option could be overridden by the environment variable GLOUTON_METRIC_SOFTSTATUS_PERIOD_DEFAULT.

metric.snmp.exporter_address​

The SNMP exporter address.

Default is "http://localhost:9116".

This option could be overridden by the environment variable GLOUTON_METRIC_SNMP_EXPORTER_ADDRESS.

metric.snmp.targets​

The list of SNMP targets to monitor.

metric:
snmp:
targets:
- initial_name: AP Wifi # Name of snmp agent in Bleemeo (optional)
target: 192.168.0.100 # IP or FQDN of the SNMP device

For more details on this option, see SNMP Agent.

network_interface_denylist​

List of interface name prefixes to ignore.

The default list is "docker", "lo", "veth", "virbr", "vnet", "isatap", "fwbr", "fwpr", "fwln"

This option could be overridden by the environment variable GLOUTON_NETWORK_INTERFACE_DENYLIST.

mqtt.enable​

Enable pushing metrics to an external MQTT broker.

Default is false.

This option could be overridden by the environment variable GLOUTON_MQTT_ENABLE.

mqtt.host​

Address of the MQTT server.

Default is "localhost".

This option could be overridden by the environment variable GLOUTON_MQTT_HOST.

mqtt.port​

Port of the MQTT server.

Default is 1883.

This option could be overridden by the environment variable GLOUTON_MQTT_PORT.

mqtt.ssl​

Should the agent use SSL for MQTT communication.

Default is false.

This option could be overridden by the environment variable GLOUTON_MQTT_SSL.

mqtt.ssl_insecure​

Should the agent ignore MQTT SSL certificate errors.

Default to false, by default MQTT SSL certificate must be valid.

Settings this value to true creates a security issue and should only be used in development.

This option could be overridden by the environment variable GLOUTON_MQTT_SSL_INSECURE.

mqtt.ca_file​

Path to CAs certificate bundle.

The agent trust CAs present in this bundle when checking trust-chain to MQTT SSL certificate.

Default is unset, meaning use system CAs.

This option could be overridden by the environment variable GLOUTON_MQTT_CA_FILE.

mqtt.username​

The username used to connect to MQTT.

Default is unset, meaning no authentication is used.

This option could be overridden by the environment variable GLOUTON_MQTT_USERNAME.

mqtt.password​

The password used to connect to MQTT.

Default is unset, meaning no authentication is used.

This option could be overridden by the environment variable GLOUTON_MQTT_PASSWORD.

nrpe.address​

Address to listen on for NRPE server.

Default is "0.0.0.0"

This option could be overridden by the environment variable GLOUTON_NRPE_ADDRESS.

nrpe.conf_paths​

Paths to load NRPE configuration to configure available checks.

Default is "/etc/nagios/nrpe.cfg"

This option could be overridden by the environment variable GLOUTON_NRPE_CONF_PATHS.

nrpe.enable​

Activate the NRPE server. The Bleemeo agent can listen for NRPE requests from a Nagios server.

You can make any service check available to your Nagios server with nagios_nrpe_name:

service:
- id: "apache"
nagios_nrpe_name: check_apache

Default is false

This option could be overridden by the environment variable GLOUTON_NRPE_ENABLE.

nrpe.port​

Port to listen on for NRPE server.

Default is 5666

This option could be overridden by the environment variable GLOUTON_NRPE_PORT.

nrpe.ssl​

Enable SSL for NRPE server. Nagios check_nrpe does not checks certificate validity so the Bleemeo agent will generate a self-signed certificate when SSL is enabled.

Default is true

This option could be overridden by the environment variable GLOUTON_NRPE_SSL.

nvidia_smi.enable​

Enable NVIDIA SMI monitoring, see NVIDIA SMI monitoring for details.

Default is false.

This option could be overridden by the environment variable GLOUTON_NVIDIA_SMI_ENABLE.

nvidia_smi.bin_path​

Path to the nvidia-smi binary. Not needed if Glouton can find nvidia-smi in the PATH.

On Linux, the binary is often found in /usr/bin/nvidia-smi and on Windows in C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. You'll need to escape the \ in the configuration like this: C:\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe.

Default is /usr/bin/nvidia-smi.

This option could be overridden by the environment variable GLOUTON_NVIDIA_SMI_BIN_PATH.

nvidia_smi.timeout​

Timeout used for GPU polling in seconds.

Default is 5.

This option could be overridden by the environment variable GLOUTON_NVIDIA_SMI_TIMEOUT.

service​

Configuration for custom services or services overrides.

For more details on custom services, see Custom metrics.

For more details on services overrides, see Services monitoring.

service_ignore_metrics​

You may not want to gather metrics for some services, for example an Apache server if the status page is not configured.

To disable metrics gathering, add to your configuration file (e.g. /etc/glouton/conf.d/50-service-ignore.conf):

service_ignore_metrics:
- name: "mysql"
- name: "postgresql"
instance: "host:* container:*"
- name: "apache"
instance: "container:*integration*"
- name: "nginx"
instance: "container:*"
- name: "redis"
instance: "host:*"

The above configuration will disable metrics gathering for:

  • All MySQL services (running in a container or not).
  • All PostgreSQL services (running in a container or not). It's the explicit version of the MySQL rule.
  • Any Apache service running in a container whose name contains integration. Apache running on the host (i.e. outside any container) will still be monitored.
  • Redis running on the host (i.e. outside any container). Redis running on any container will still be monitored.

Note: the host: form only support host:*.

service_ignore_check​

If you don't want to monitor the status of a service, it's possible to disable check for a service.

To disable the status check, add to your configuration file (e.g. /etc/glouton/conf.d/50-service-ignore.conf)

service_ignore_check:
- name: "mysql"
- name: "postgresql"
instance: "host:* container:*"
- name: "apache"
instance: "container:*integration*"
- name: "nginx"
instance: "container:*"
- name: "redis"
instance: "host:*"

The above configuration will disable metrics gathering for:

  • All MySQL services (running in a container or not).
  • All PostgreSQL services (running in a container or not). It's the explicit version of the MySQL rule.
  • Any Apache service running in a container whose name contains integration. Apache running on the host (i.e. outside any container) will still be monitored.
  • Redis running on the host (i.e. outside any container). Redis running on any container will still be monitored.

Note: the host: form only support host:*.

smart.enable​

Enable SMART to monitor the health of your disks.

Details about the metrics gathered can be found in Operating System Metrics.

Default is true.

This option could be overridden by the environment variable GLOUTON_SMART_ENABLE.

smart.path_smartctl​

Path to smartctl binary. In most cases this can be left empty and Glouton will look for smartctl in the PATH.

Default is unset.

This option could be overridden by the environment variable GLOUTON_SMART_PATH_SMARTCTL.

smart.devices​

Devices to monitor, if unset a scan for SMART devices will be done and all devices found will be included (except the devices in smart.excludes).

Default is unset.

This option could be overridden by the environment variable GLOUTON_SMART_DEVICES.

smart.excludes​

Devices to exclude.

Default is unset.

This option could be overridden by the environment variable GLOUTON_SMART_EXCLUDES.

stack​

Default stack for services.

Default is unset.

For more details, see stack dashboard.

This option could be overridden by the environment variable GLOUTON_STACK.

tags​

List of tags for the agent. Your agent will be tagged with those tags on Bleemeo Cloud Platform. Tags can be used in notifications.

Default is an empty list.

Bleemeo Cloud Platform also automatically add tags by default:

  • one for each services running on the server
  • one for some server information: architecture, OS information (Linux/Windows, version) and server type (physical/virtual).

This option could be overridden by the environment variable GLOUTON_TAGS.

telegraf.docker_metrics_enable​

The Bleemeo agent measures metrics on Docker container.

This option allows to disable gathering of such metrics.

Default is true.

This option could be overridden by the environment variable GLOUTON_TELEGRAF_DOCKER_METRICS_ENABLE.

telegraf.statsd.address​

Address to binds to for StatsD listener.

Telegraf will use the following address to bind its StatsD listener.

Default is 127.0.0.1

This option could be overridden by the environment variable GLOUTON_TELEGRAF_STATSD_ADDRESS.

telegraf.statsd.enable​

Should the agent configure statsd listener of Telegraf.

Bleemeo agent supports StatsD metrics using Telegraf as StatsD server. If you already had another StatsD server you could disable this feature by changing this option to false.

Default is true.

This option could be overridden by the environment variable GLOUTON_TELEGRAF_STATSD_ENABLE.

telegraf.statsd.port​

Port to binds to for StatsD listener.

Telegraf will use the following port to bind its StatsD listener.

Default is 8125

This option could be overridden by the environment variable GLOUTON_TELEGRAF_STATSD_PORT.

thresholds​

Configuration of threshold for each metrics.

Thresholds in configuration file are overridden by thresholds retrieved from Bleemeo Cloud platform. We highly recommend to configure thresholds only using Bleemeo Cloud Interface

No thresholds are hardcoded.

Default configuration included in our packages define thresholds for cpu, disk space usage, memory, network and disk IO utilization in /etc/glouton/agent.conf.

web.enable​

Should local web interface be enable.

This web interface show a quick overview of your server.

Default is true.

This option could be overridden by the environment variable GLOUTON_WEB_ENABLE.

web.listener.address​

Address to binds to for local web interface.

Default is "127.0.0.1".

This option could be overridden by the environment variable GLOUTON_WEB_LISTENER_ADDRESS.

web.listener.port​

Port to binds to for local web interface.

Default is 8015.

This option could be overridden by the environment variable GLOUTON_WEB_LISTENER_PORT.

web.local_ui.enable​

Enables the local UI, if this is disabled and web.enable is enabled, only debugging endpoints like /diagnostic will be accessible.

Default is true.

This option could be overridden by the environment variable GLOUTON_WEB_LOCAL_UI_ENABLE.

web.static_cdn_url​

The Bleemeo agent local UI is written in ReactJS, and need to download the Javascript files. Normally those files are served by the Bleemeo agent local webserver, but this options allow to download them from another URL. This should only be useful when developing on the Bleemeo agent UI.

Default is "/static/".

This option could be overridden by the environment variable GLOUTON_WEB_STATIC_CDN_URL.

zabbix.enable​

Enable monitoring for a Zabbix server.

Default is false.

This option could be overridden by the environment variable GLOUTON_ZABBIX_ENABLE.

zabbix.address​

Address to listen on for Zabbix request.

Default is "127.0.0.1".

This option could be overridden by the environment variable GLOUTON_ZABBIX_ADDRESS.

zabbix.port​

Port to listen on for Zabbix request.

Default is 10050.

This option could be overridden by the environment variable GLOUTON_ZABBIX_PORT.