Installing

Dependencies & Requirements

Merlin is currently tested on CentOS 7 & CentOS 8. Merlin requires Naemon, and the Naemon binary must be installed at /usr/bin/naemon.

From package repositories

Installing via repositories hosted at openSUSE Build Service is the recommended approach. This makes updating easy using the OS provided package manager.

Prior to installing we need to ensure that the EPEL release is included, as dependencies from EPEL are required. Hereafter we can install the relevant .repo files, both for Naemon and Merlin. Finally we can install merlin using the package manager.

CentOS 7

yum install -y epel-release
curl -s https://download.opensuse.org/repositories/home:/naemon/CentOS_7/home:naemon.repo >> /etc/yum.repos.d/naemon-stable.repo
curl -s https://download.opensuse.org/repositories/home:/itrs-op5/CentOS_7/home:itrs-op5.repo >> /etc/yum.repos.d/itrs-op5.repo
yum install merlin
systemctl enable naemon && systemctl start naemon

CentOS 8

dnf install -y epel-release
curl -s https://download.opensuse.org/repositories/home:/naemon/CentOS_8_Stream/home:naemon.repo >> /etc/yum.repos.d/naemon-stable.repo
curl -s https://download.opensuse.org/repositories/home:/itrs-op5/CentOS_8_Stream/home:itrs-op5.repo >> /etc/yum.repos.d/itrs-op5.repo
dnf install merlin
systemctl enable naemon && systemctl start naemon

Post install steps

Clustering relies on having a running SSH server. Enable the SSH server by:

systemctl enable sshd
systemctl start sshd

With Thruk

If you wish to install the Thruk UI, add naemon to the dnf/yum install commands above.

Development snapshot

Development snapshots are built anytime there is a merge to master. If you need a feature not yet included for release, you can install the development snapshot by replacing the repo definitions above with either corresponding one below.

CentOS 7:

https://download.opensuse.org/repositories/home:/itrs-op5:/master/CentOS_7/home:itrs-op5:master.repo

CentOS 8:

https://download.opensuse.org/repositories/home:/itrs-op5:/master/CentOS_8_Stream/home:itrs-op5:master.repo

From .rpm files

Releases are also published on Github. Each release contain a set of tar.xz files containing the built rpm sources.

Extract the achieve and install the complete all RPMs in a single command using your package manager (yum/dnf). Prior to installing ensure that Naemon is either installed or the Naemon repository has been added.

Slim packages

Currently two sets of packages are being built. Normal packages and slim packages which are denoted -slim. The slim packages are intended for use in containers, for example with the Merlin container poller.

Some of the differences with the slim packages are noted below:

  • No systemd service files

  • No database is installed

  • Includes container specific healthchecks

  • Includes the cluster_tools script which helps registering with master nodes

Compiling from source

Needs review, this section is potentially out of date and needs updating

Requirements

Merlin requires Naemon, including its development headers for building. Currently, it requires version >= 1.2.4.

Other general build requirements: gcc, autoconf, automake, glib-2-devel, check-devel, libdbi-devel, libtool, naemon-devel, gperf

For running Merlin with its default configuration, you’ll need to have libdbi-dbd-mysql and all of its dependencies (generally libdbi-drivers, libdbi and mysql-libs) installed.

You will of course also need an sql database supported by libdbi (refer to the libdbi documentation for further information about supported databases), as well as a Naemon installation that the Merlin module can plug in to. The import script is currently limited to MySQL only, so that’s currently the only database supported.

The install script requires sql administration privileges in order to create the database that merlin will populate for you.

GNU sed 4.0.9 or better is required for the install script to be able to modify your naemon configuration files.

For redundant/distributed installation you also need sudo rights for naemon user to be able to reload the configuration on all your nodes in the cluster. The command that needs to be executed ‘sudo mon restart’.

Building and installation

Building is a standard autotools flair. Checkout with git, or download the release tarball and run

./autogen.sh
make
sudo make install

The install will by default try to install merlin’s database. The configure script provides a way to configure database name and users, as well as a way to prevent merlin from doing this automatically, in which case you need to run the install-merlin.sh script manually. Run ./configure –help for more information.

Merlin will drop a naemon configuration file into the directory naemon’s configuration lies. You can include it in your main naemon config file with include_file=merlin.cfg or by putting the config file in an already included directory with the --with-naemon-config-dir argument to the configure script.