Alignak modules¶
Extending Alignak features is made thanks to daemons modules. Some modules are already packaged in an easy installable package called an Alignak module package.
Configuring daemons with modules¶
Each Alignak daemon can be configured to load and use modules. In the daemon configuration file, the attribute modules may contain a list of the daemon modules.
As a default, no module is installed nor configured but one can edit the daemon configuration file to declare which module is to be used. The modules property is a comma separated list of the declared modules alias.
As an example, the receiver can have several attached modules.:
# Receiver daemon configuration
define receiver{
receiver_name receiver-master
modules nsca, external-commands, web-services
}
Note that the module alias is case sensitive.
For more information about modules, see the example module repository.
Alignak modules are available on PyPI. Their name starts with “alignak_module”. To install them, install with pip command:
pip install alignak_module_nameofmodule
The configuration file of the installed module will be installed in the folder:
etc/alignak/arbiter/modules
Each module installed on Alignak stores its configuration file in this part of the configuration.
NSCA collector¶
Managing passive hosts and services requires that Alignak listen to passive checks.
To achieve this, the Receiver daemon needs to be extended with an NSCA module. This module listens on a TCP port for NSCA packets, decode the packets and builds an external command corresponding to the received check: HOST_PASSIVE_CHECK or SERVICE_PASSIVE_CHECK.
Passive checks are managed by Alignak according to this behavior.
Short story:
pip install alignak-module-nsca
# Update your receiver daemon configuration
define receiver{
receiver_name receiver-master
modules nsca
}
# Edit the NSCA configuration (etc/alignak/arbiter/modules/mod-nsca.cfg)
define module {
module_alias nsca
python_name alignak_module_nsca
...
...
}
The module default configuration allows to collect non-encrypted NSCA checks for hosts and services. The file is largely commented to help understand and configure this module.
More information is available in the NSCA module repository.
External commands¶
This module allows Alignak framework (like Nagios and al.) to reacts to external commands sent to a named pipe file.
Thanks to this module the receiver daemon periodically reads the content of a configured file and builds an external command with the information read from this file. This also allows Alignak to receive passive checks.
Note that the Arbiter is able to manage the external commands by itself and that it is not necessary to use an external module…
Short story:
pip install alignak-module-external-commands
# Update your receiver daemon configuration
define receiver{
receiver_name receiver-master
modules external-commands
}
# Edit the external commands module configuration (etc/alignak/arbiter/modules/mod-external-commands.cfg)
define module {
module_alias external-commands
module_types external-commands
python_name alignak_module_external_commands
# Default file path is /tmp/alignak.cmd
file_path /tmp/alignak.cmd
}
The module default configuration gets commands from a /tmp/alignak.cmd file.
More information is available in the external commands module repository.
Web services¶
This module exposes Web services to get information about the Alignak framework and to notify external commands from a third-party application.
Note that the Arbiter is able to manage the external commands by itself and that it is not necessary to use an external module…
This also allows Alignak to receive passive checks.
Short story:
pip install alignak-module-web-services
# Update your receiver daemon configuration
define receiver{
receiver_name receiver-master
modules web-services
}
# Edit the web services module configuration (etc/alignak/arbiter/modules/mod-web-services.cfg)
define module {
module_alias web-services
module_types web-services
python_name alignak_module_ws
#-- Alignak configuration
# Alignak main arbiter interface
#alignak_host 127.0.0.1
#alignak_port 7770
# Alignak polling period
#alignak_polling_period 1
# Alignak daemons status refresh period
#alignak_daemons_polling_period 10
#-- Network configuration
# Interface the modules listens to
host 0.0.0.0
# Do not comment the port parameter (see Alignak #504)
port 8888
#-- SSL configuration --
use_ssl 0
#ca_cert /usr/local/etc/alignak/certs/ca.pem
#server_cert /usr/local/etc/alignak/certs/server.cert
#server_key /usr/local/etc/alignak/certs/server.key
#server_dh /usr/local/etc/alignak/certs/server.pem
#hard_ssl_name_check 0
}
The module default configuration tries to get information from a local Alignak arbiter and listens to all network interfaces on port 8888.
More information is available in the web services module repository.
Alignak backend¶
The Alignak backend module(s) implements several features for several Alignak daemons:
- loads the configuration for the Arbiter
- updates the monitored objects live state for the Broker
- state retention of the live state for the Scheduler
Installing this module will, in fact, install the three modules.
Note: this module implies that you already installed the Alignak backend.
Short story:
pip install alignak-module-backend
# Update your arbiter daemon configuration
define arbiter{
arbiter_name arbiter-master
modules backend_arbiter
}
# Edit the backend arbiter module configuration (etc/alignak/arbiter/modules/mod-alignak_backend_arbiter.cfg)
define module {
module_alias backend_arbiter
python_name alignak_module_backend.arbiter
...
...
}
# Update your broker daemon configuration
define broker{
broker_name broker-master
modules backend_broker
}
# Edit the backend broker module configuration (etc/alignak/arbiter/modules/mod-alignak_backend_broker.cfg)
define module {
module_alias backend_broker
python_name alignak_module_backend.broker
...
...
}
# Update your arbiter scheduler configuration
define arbiter{
scheduler_name scheduler-master
modules backend_scheduler
}
# Edit the backend scheduler module configuration (etc/alignak/arbiter/modules/mod-alignak_backend_scheduler.cfg)
define module {
module_alias backend_scheduler
python_name alignak_module_backend.scheduler
...
...
}
The modules default configuration needs to be updated with your backend connection and login information. The files are largely commented to help understand and configure this module.
More information is available in the backend modules repository.