Nagios migration¶
Centreon Engine is compatible with Nagios. This means that it will recognize Nagios’s configuration files and behave just like Nagios would. However some subtle differences arise when migrating from an existing Nagios setup. This document will explain what this differences are and how to modify them.
All example path in this documentation is based on CentOS i386. You probably need to change these path with you own configuration.
Prerequisites¶
Centreon Engine is assumed to have been properly installed in your nagios monitoring server.
Startup file¶
SysV init script (default)¶
By default, Centreon Engine do not usually use the same files as Nagios
does. This can cause issues when interfacing with Centreon. Modify
/etc/init.d/centengine
, replace the following variables, so that
Centreon Engine use the exact same files and directories as Nagios.
var_dir=/var/log/nagios
config_file=/etc/nagios/nagios.cfg
command_file=$var_dir/rw/nagios.cmd
user=nagios
group=nagios
Upstart configuration file¶
On systems with Upstart installed (such as recent Ubuntu versions), Centreon Engine provides a configuration file to control it. Modify it like below.
env HOME=/etc/nagios
env CFG_FILE="$HOME/nagios.cfg"
Nagios configuration file¶
Be sure you have defined all file paths in the Nagios configuration file. All these variables can be found in Centreon 2.3.5 and above. You need to modify these variables, because Centreon Engine (just like Nagios) use default values for variables that are not defined. This can cause issues when interfacing with Centreon.
log_file=/var/log/nagios/nagios.log
temp_file=/var/log/nagios/nagios.tmp
p1_file=/usr/sbin/p1.pl
log_archive_path=/var/log/nagios/archives
command_file=/var/log/nagios/rw/nagios.cmd
lock_file=/var/log/nagios/nagios.lock
state_retention_file=/var/log/nagios/status.sav
object_cache_file=/var/log/nagios/objects.cache
precached_object_file=/var/log/nagios/objects.precache
debug_file=/var/log/nagios/nagios.debug
Commands and notification¶
Centreon Engine is very fast compared to Nagios. The downside is, some rarely used features were deactivated. For example, commands are not processed by a shell before execution (Nagios did that). So if some of your commands use shell syntax (pipes, globbing, …) you have to modify them.
For check or notification commands with multiple commands like this:
$ cat /etc/nagios/commands.cfg
define command{
command_name host-notify-by-email
command_line printf "Message..." | mail -s "Subject..." $CONTACTEMAIL$
}
The solution is to add ‘sh -c’ on the command line, so that the shell (sh) will execute and parse your command:
$ cat /etc/nagios/commands.cfg
define command{
command_name host-notify-by-email
command_line sh -c 'printf "Message..." | mail -s "Subject..." $CONTACTEMAIL$'
}
Warning
the new command obeys Nagios syntax. So if your old command contains single quotes (‘), they need to be escaped.
External commands¶
Centreon Engine by itself does not need any system to control it. This is why we decided to extract the external commands system from the core. For Centreon Engine, this is now a broker module, like NDOUtils or Centreon Broker. However, Centreon uses it for some tasks (scheduled downtimes, comments, acknowledgement, …) and is therefore required in such setups.
In Centreon, go to Configuration -> Monitoring Engine -> main.cfg. Choose your poller and go to the Data tab. Add a new Broker Module with the following configuration line:
/usr/lib/centreon-engine/externalcmd.so
The module does not need any configuration as Centreon Engine handle all the parsing process.
Centreon¶
Centreon needs to control Centreon Engine to perform tasks such as configuration checks. At time of writing, Centreon Engine it not a specific monitoring engine but will work as “Nagios”.
In Centreon go to Configuration -> Centreon -> Pollers. Choose your poller and modify Scheduler Information.
SysV init script (default)¶
Engine: Centreon-Engine (with centreon >= 2.3.5)
Nagios Init Script: /etc/init.d/centengine
Scheduler Binary: /usr/sbin/centengine
Nagios Statistics Binary: /usr/sbin/centenginestats
Upstart configuration file¶
Engine: Centreon-Engine (with centreon >= 2.3.5)
Nagios Init Script: service centengine
Scheduler Binary: /usr/sbin/centengine
Nagios Statistics Binary: /usr/sbin/centenginestats
Sudoers¶
SysV init script (default)¶
Add these lines into /etc/sudoers:
# Centengine Restart
CENTREON ALL = NOPASSWD: /etc/init.d/centengine restart
# Centengine stop
CENTREON ALL = NOPASSWD: /etc/init.d/centengine start
# Centengine stop
CENTREON ALL = NOPASSWD: /etc/init.d/centengine stop
# Centengine reload
CENTREON ALL = NOPASSWD: /etc/init.d/centengine reload
# Centengine test config
CENTREON ALL = NOPASSWD: /usr/sbin/centengine -v *
# Centengine test for optim config
CENTREON ALL = NOPASSWD: /usr/sbin/centengine -s *
Upstart configuration file¶
Add these lines into /etc/sudoers:
# Centengine Restart
CENTREON ALL = NOPASSWD: service centengine restart
# Centengine stop
CENTREON ALL = NOPASSWD: service centengine start
# Centengine stop
CENTREON ALL = NOPASSWD: service centengine stop
# Centengine reload
CENTREON ALL = NOPASSWD: service centengine reload
# Centengine test config
CENTREON ALL = NOPASSWD: /usr/sbin/centengine -v *
# Centengine test for optim config
CENTREON ALL = NOPASSWD: /usr/sbin/centengine -s *
Stop/Start¶
To finish the migration you need to stop nagios and start centreon-engine.