Adagios and naemon install on centos 7

Primary tabs

Adagios and Naemon on CentOS 7 or Red Hat Enterprise Linux 7 x86_64.

If you don't know how to configure SElinux, put it in permissive mode:

sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
setenforce 0

First install the opensource.is and consol labs repositories

rpm -ihv http://opensource.is/repo/ok-release.rpm
rpm -Uvh https://labs.consol.de/repo/stable/rhel7/x86_64/labs-consol-stable.rhel7.noarch.rpm
yum update -y ok-release

Centos users need to install the epel repositories (fedora users skip this step)

yum install -y epel-release

Redhat users:

subscription-manager repos --enable=rhel-7-server-optional-rpms
subscription-manager repos --enable=rhel-7-server-extras-rpms
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Install Naemon / Thruk

yum install -y naemon

Install Adagios and other needed packages

yum --enablerepo=ok-testing install -y adagios okconfig git acl pnp4nagios python-setuptools

Make sure adagios can write to naemon configuration files, and that it is a valid git repo so we have audit trail

cd /etc/naemon/
git init
git config user.name "User"
git config user.email "[email protected]"
git add .
git commit -a -m "Initial commit"

Fix permissions for naemon and pnp4nagios

chgrp naemon /etc/pnp4nagios/process_perfdata.cfg
chown naemon:naemon -R /etc/adagios
chown naemon:naemon /var/lib/adagios /var/lib/pnp4nagios /var/spool/pnp4nagios
chown -R naemon:root /var/log/okconfig /var/log/pnp4nagios
setfacl -R -m group:naemon:rwx -m d:group:naemon:rwx    /etc/naemon/ /etc/adagios /var/lib/adagios /var/lib/pnp4nagios /var/spool/pnp4nagios
setfacl -R -m user:naemon:rwx -m d:user:naemon:rwx /var/log/okconfig /var/log/pnp4nagios

Make sure nagios doesn't interfere

mkdir /etc/nagios/disabled
mv /etc/nagios/{nagios,cgi}.cfg /etc/nagios/disabled/

Make objects created by adagios go to /etc/naemon/adagios

mkdir -p /etc/naemon/adagios
pynag config --append cfg_dir=/etc/naemon/adagios

Make adagios naemon aware

sed -i '
    s|/etc/nagios/passwd|/etc/thruk/htpasswd|g
    s|user=nagios|user=naemon|g
    s|group=nagios|group=naemon|g' /etc/httpd/conf.d/adagios.conf
sed -i '
    s|/etc/nagios/nagios.cfg|/etc/naemon/naemon.cfg|g
    s|nagios_url = "/nagios|nagios_url = "/thruk|g
    s|/etc/nagios/adagios/|/etc/naemon/adagios/|g
    s|/etc/init.d/nagios|/etc/init.d/naemon|g
    s|nagios_service = "nagios"|nagios_service = "naemon"|g
    s|livestatus_path = None|livestatus_path = "/var/cache/naemon/live"|g
    s|/usr/sbin/nagios|/usr/bin/naemon|g' /etc/adagios/adagios.conf

Make okconfig naemon aware

sed -i '
    s|/etc/nagios/nagios.cfg|/etc/naemon/naemon.cfg|g
    s|/etc/nagios/okconfig/|/etc/naemon/okconfig/|g
    s|/etc/nagios/okconfig/examples|/etc/naemon/okconfig/examples|g' /etc/okconfig.conf
okconfig init
okconfig verify

Add naemon to apache group so it has permissions to pnp4nagios's session files

usermod -G apache naemon

Allow Adagios to control the service

sed -i '
    s|nagios|naemon|g
    s|/usr/sbin/naemon|/usr/bin/naemon|g' /etc/sudoers.d/adagios

A list of strings representing the host/domain names that this Django site can serve. This is a security measure to prevent HTTP Host header attacks

echo "ALLOWED_HOSTS = ['*']" >> /etc/adagios/adagios.conf

Make naemon use nagios plugins

sed -i 's|/usr/lib64/naemon/plugins|/usr/lib64/nagios/plugins|g' /etc/naemon/resource.cfg

Configure pnp4nagios

sed -i 's|/etc/nagios/passwd|/etc/thruk/htpasswd|g' /etc/httpd/conf.d/pnp4nagios.conf
sed -i '
    s/user = nagios/user = naemon/g
    s/group = nagios/group = naemon/g' /etc/pnp4nagios/npcd.cfg

Enable Naemon performance data

pynag config --set "process_performance_data=1"

service performance data

pynag config --set 'service_perfdata_file=/var/lib/naemon/service-perfdata'
pynag config --set 'service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$'

pynag config --set 'service_perfdata_file_mode=a' ```

pynag config --set 'service_perfdata_file_processing_interval=15'
pynag config --set 'service_perfdata_file_processing_command=process-service-perfdata-file'

host performance data

pynag config --set 'host_perfdata_file=/var/lib/naemon/host-perfdata'
pynag config --set 'host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$'
pynag config --set 'host_perfdata_file_mode=a'
pynag config --set 'host_perfdata_file_processing_interval=15'
pynag config --set 'host_perfdata_file_processing_command=process-host-perfdata-file'
pynag add command command_name=process-service-perfdata-file command_line='/bin/mv /var/lib/naemon/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$'
pynag add command command_name=process-host-perfdata-file command_line='/bin/mv /var/lib/naemon/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$'
pynag config --append cfg_dir=/etc/naemon/commands/

Reset password for Thruk/Naemon admin user

htpasswd -b -c /etc/thruk/htpasswd thrukadmin thrukadmin

Disable OMD thruk service

systemctl disable thruk.service

We need to restart both apache and naemon so new changes take effect

systemctl enable naemon httpd npcd
systemctl restart naemon httpd npcd

Allow connections through the firewall on port 80 and 443

firewall-cmd --add-service=https --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

Install nagios plugins

yum install -y nagios-plugins-all

Install nagios plugins from Opin Kerfi (nagios-okplugin)

yum install -y nagios-okplugin-* --skip-broken

Gist



QR Code for https://setupexample.com/adagios-and-naemon-install-centos-7