Next: , Previous: , Up: Services   [Contents][Index]


12.9.16 Monitoring Services

Tailon Service

Tailon is a web application for viewing and searching log files.

The following example will configure the service with default values. By default, Tailon can be accessed on port 8080 (http://localhost:8080).

(service tailon-service-type)

The following example customises more of the Tailon configuration, adding sed to the list of allowed commands.

(service tailon-service-type
         (tailon-configuration
           (config-file
             (tailon-configuration-file
               (allowed-commands '("tail" "grep" "awk" "sed"))))))
Data Type: tailon-configuration

Data type representing the configuration of Tailon. This type has the following parameters:

config-file (default: (tailon-configuration-file))

The configuration file to use for Tailon. This can be set to a tailon-configuration-file record value, or any gexp (see G-Expressions).

For example, to instead use a local file, the local-file function can be used:

(service tailon-service-type
         (tailon-configuration
           (config-file (local-file "./my-tailon.conf"))))
package (default: tailon)

The tailon package to use.

Data Type: tailon-configuration-file

Data type representing the configuration options for Tailon. This type has the following parameters:

files (default: (list "/var/log"))

List of files to display. The list can include strings for a single file or directory, or a list, where the first item is the name of a subsection, and the remaining items are the files or directories in that subsection.

bind (default: "localhost:8080")

Address and port to which Tailon should bind on.

relative-root (default: #f)

URL path to use for Tailon, set to #f to not use a path.

allow-transfers? (default: #t)

Allow downloading the log files in the web interface.

follow-names? (default: #t)

Allow tailing of not-yet existent files.

tail-lines (default: 200)

Number of lines to read initially from each file.

allowed-commands (default: (list "tail" "grep" "awk"))

Commands to allow running. By default, sed is disabled.

debug? (default: #f)

Set debug? to #t to show debug messages.

wrap-lines (default: #t)

Initial line wrapping state in the web interface. Set to #t to initially wrap lines (the default), or to #f to initially not wrap lines.

http-auth (default: #f)

HTTP authentication type to use. Set to #f to disable authentication (the default). Supported values are "digest" or "basic".

users (default: #f)

If HTTP authentication is enabled (see http-auth), access will be restricted to the credentials provided here. To configure users, use a list of pairs, where the first element of the pair is the username, and the 2nd element of the pair is the password.

(tailon-configuration-file
  (http-auth "basic")
  (users     '(("user1" . "password1")
               ("user2" . "password2"))))

Darkstat Service

Darkstat is a packet sniffer that captures network traffic, calculates statistics about usage, and serves reports over HTTP.

Variable: Scheme Variable darkstat-service-type

This is the service type for the darkstat service, its value must be a darkstat-configuration record as in this example:

(service darkstat-service-type
         (darkstat-configuration
           (interface "eno1")))
Data Type: darkstat-configuration

Data type representing the configuration of darkstat.

package (default: darkstat)

The darkstat package to use.

interface

Capture traffic on the specified network interface.

port (default: "667")

Bind the web interface to the specified port.

bind-address (default: "127.0.0.1")

Bind the web interface to the specified address.

base (default: "/")

Specify the path of the base URL. This can be useful if darkstat is accessed via a reverse proxy.

Prometheus Node Exporter Service

The Prometheus “node exporter” makes hardware and operating system statistics provided by the Linux kernel available for the Prometheus monitoring system. This service should be deployed on all physical nodes and virtual machines, where monitoring these statistics is desirable.

Variable: Scheme variable prometheus-node-exporter-service-type

This is the service type for the prometheus-node-exporter service, its value must be a prometheus-node-exporter-configuration.

(service prometheus-node-exporter-service-type)
Data Type: prometheus-node-exporter-configuration

Data type representing the configuration of node_exporter.

package (default: go-github-com-prometheus-node-exporter)

The prometheus-node-exporter package to use.

web-listen-address (default: ":9100")

Bind the web interface to the specified address.

textfile-directory (default: "/var/lib/prometheus/node-exporter")

This directory can be used to export metrics specific to this machine. Files containing metrics in the text format, with the filename ending in .prom should be placed in this directory.

extra-options (default: '())

Extra options to pass to the Prometheus node exporter.

Zabbix server

Zabbix is a high performance monitoring system that can collect data from a variety of sources and provide the results in a web-based interface. Alerting and reporting is built-in, as well as templates for common operating system metrics such as network utilization, CPU load, and disk space consumption.

This service provides the central Zabbix monitoring service; you also need zabbix-front-end-service-type to configure Zabbix and display results, and optionally zabbix-agent-service-type on machines that should be monitored (other data sources are supported, such as Prometheus Node Exporter).

Variable: Scheme variable zabbix-server-service-type

This is the service type for the Zabbix server service. Its value must be a zabbix-server-configuration record, shown below.

Data Type: zabbix-server-configuration

Available zabbix-server-configuration fields are:

zabbix-server (default: zabbix-server) (type: file-like)

The zabbix-server package.

user (default: "zabbix") (type: string)

User who will run the Zabbix server.

group (default: "zabbix") (type: group)

Group who will run the Zabbix server.

db-host (default: "127.0.0.1") (type: string)

Database host name.

db-name (default: "zabbix") (type: string)

Database name.

db-user (default: "zabbix") (type: string)

Database user.

db-password (default: "") (type: string)

Database password. Please, use include-files with DBPassword=SECRET inside a specified file instead.

db-port (default: 5432) (type: number)

Database port.

log-type (default: "") (type: string)

Specifies where log messages are written to:

  • system - syslog.
  • file - file specified with log-file parameter.
  • console - standard output.
log-file (default: "/var/log/zabbix/server.log") (type: string)

Log file name for log-type file parameter.

pid-file (default: "/var/run/zabbix/zabbix_server.pid") (type: string)

Name of PID file.

ssl-ca-location (default: "/etc/ssl/certs/ca-certificates.crt") (type: string)

The location of certificate authority (CA) files for SSL server certificate verification.

ssl-cert-location (default: "/etc/ssl/certs") (type: string)

Location of SSL client certificates.

extra-options (default: "") (type: extra-options)

Extra options will be appended to Zabbix server configuration file.

include-files (default: ()) (type: include-files)

You may include individual files or all files in a directory in the configuration file.

Zabbix agent

The Zabbix agent gathers information about the running system for the Zabbix monitoring server. It has a variety of built-in checks, and can be extended with custom user parameters.

Variable: Scheme variable zabbix-agent-service-type

This is the service type for the Zabbix agent service. Its value must be a zabbix-agent-configuration record, shown below.

Data Type: zabbix-agent-configuration

Available zabbix-agent-configuration fields are:

zabbix-agent (default: zabbix-agentd) (type: file-like)

The zabbix-agent package.

user (default: "zabbix") (type: string)

User who will run the Zabbix agent.

group (default: "zabbix") (type: group)

Group who will run the Zabbix agent.

hostname (default: "") (type: string)

Unique, case sensitive hostname which is required for active checks and must match hostname as configured on the server.

log-type (default: "") (type: string)

Specifies where log messages are written to:

  • system - syslog.
  • file - file specified with log-file parameter.
  • console - standard output.
log-file (default: "/var/log/zabbix/agent.log") (type: string)

Log file name for log-type file parameter.

pid-file (default: "/var/run/zabbix/zabbix_agent.pid") (type: string)

Name of PID file.

server (default: ("127.0.0.1")) (type: list)

List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix servers and Zabbix proxies. Incoming connections will be accepted only from the hosts listed here.

server-active (default: ("127.0.0.1")) (type: list)

List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix proxies for active checks. If port is not specified, default port is used. If this parameter is not specified, active checks are disabled.

extra-options (default: "") (type: extra-options)

Extra options will be appended to Zabbix server configuration file.

include-files (default: ()) (type: include-files)

You may include individual files or all files in a directory in the configuration file.

Zabbix front-end

The Zabbix front-end provides a web interface to Zabbix. It does not need to run on the same machine as the Zabbix server. This service works by extending the PHP-FPM and NGINX services with the configuration necessary for loading the Zabbix user interface.

Variable: Scheme variable zabbix-front-end-service-type

This is the service type for the Zabbix web frontend. Its value must be a zabbix-front-end-configuration record, shown below.

Data Type: zabbix-front-end-configuration

Available zabbix-front-end-configuration fields are:

zabbix-server (default: zabbix-server) (type: file-like)

The Zabbix server package to use.

nginx (default: ()) (type: list)

List of nginx-server-configuration blocks for the Zabbix front-end. When empty, a default that listens on port 80 is used.

db-host (default: "localhost") (type: string)

Database host name.

db-port (default: 5432) (type: number)

Database port.

db-name (default: "zabbix") (type: string)

Database name.

db-user (default: "zabbix") (type: string)

Database user.

db-password (default: "") (type: string)

Database password. Please, use db-secret-file instead.

db-secret-file (default: "") (type: string)

Secret file which will be appended to zabbix.conf.php file. This file contains credentials for use by Zabbix front-end. You are expected to create it manually.

zabbix-host (default: "localhost") (type: string)

Zabbix server hostname.

zabbix-port (default: 10051) (type: number)

Zabbix server port.


Next: , Previous: , Up: Services   [Contents][Index]