Nagios Core (Server) Quick Install Script

Nagios Core Logo

Here you go a quick and easy way to install Nagios Core (Server) this script has been tested on Ubuntu 18.04, 20.04 and 22.04 as well as RedHat based distros 8, 8 stream and 9

You can download this install script here or at the bottom of the page

I will add a graphing product to this script when I get a little more time and figured out which one I want to use, also I am still playing with the setup for Nginx, so this script only uses Apache for now...  Also it installs from the yum or apt repos only for now I will add the current version to the script as a choice after the graph function is added

I have to polish it a little so I will post the core portion of the script now and after I finish adding a few other features I will make the download link active... 


#!/bin/bash

######################################################################################
#### Version 2.2                                                                  ####
#### For questions or comments contact@mylinux.work                               ####
#### Author : Phil Connor                                                         ####
####                                                                              ####
#### Notes :                                                                      ####
####   This script is a simple "helper" to install and configure Maria,           ####
####   PowerDNS and PowerAdmin on RedHat Based servers.                           ####
####   There is no silver bullet. Don't expect the perfect setup,                 ####
####   review comments and adapt the parameters to your application usage.        ####
####                                                                              ####
####   Use this script at your OWN risk. There is no guarantee whatsoever.        ####
####                                                                              ####
####   Usage chmod 755 then ./PdnsInstall.sh or bash PdnsInstall.sh               ####
######################################################################################

############################
#### User Configurables ####
############################
# HTTP=apache
NAGAD=nagiosadmin
NAGADPASS=MyPaSsWoRd


##########################
#### System Variables ####
##########################
# IPADD=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
OS=$(grep PRETTY_NAME /etc/os-release | sed 's/PRETTY_NAME=//g' | tr -d '="' | awk '{print $1}' | tr '[:upper:]' '[:lower:]')
OSVER=$(grep VERSION_ID /etc/os-release | sed 's/VERSION_ID=//g' | tr -d '="' | awk -F. '{print $1}')
# SAEMAIL=

###########################################################
#### Detect Package Manger from OS and OSVer Variables ####
###########################################################
if [ "${OS}" = ubuntu ]; then
	PAKMGR="apt -y"
elif [[ ${OS} = centos || ${OS} = red || ${OS} = oracle || ${OS} = rocky || ${OS} = alma ]]; then
	if [ "${OSVER}" = 8 ] || [ "${OSVER}" = 9 ]; then
	PAKMGR="dnf -y"
	fi
fi

###########################
#### Install Net-Utils ####
###########################
if [ ! "$(command -v ifconfig)" ]; then
    if [ "${OS}" = ubuntu ]; then
        ${PAKMGR} update
        ${PAKMGR} install net-utils
    else
        ${PAKMGR} install net-tools
    fi
fi

########################
#### Nagios Install ####
########################
function nagios_install() {
	{
        if [ "${OS}" = ubuntu ]; then
            htpath=/etc/apache2/conf-enabled/nagios4-cgi.conf
        else 
            htpath=/etc/apache2/conf.d/nagios.conf
        fi
        #if [ "${OS}" = ubuntu ]; then
        ${PAKMGR} update
        DEBIAN_FRONTEND=noninteractive ${PAKMGR} install nagios4 nagios-nrpe-server nagios-plugins nagios-plugins-contrib expect
        a2enmod authz_groupfile auth_digest
        # ${PAKMGR} install autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php libgd-dev libssl-dev expect
        sed -i 's/Require ip ::1\/128 fc00::\/7 fe80::\/10 10\.0\.0\.0\/8 127\.0\.0\.0\/8 169\.254\.0\.0\/16 172\.16\.0\.0\/12 192\.168\.0\.0\/16/# Require ip ::1\/128 fc00::\/7 fe80::\/10 10\.0\.0\.0\/8 127\.0\.0\.0\/8 169\.254\.0\.0\/16 172\.16\.0\.0\/12 192\.168\.0\.0\/16/g' $htpath
        #sed -i 's/<Files "cmd.cgi">/#<Files "cmd.cgi">/g' $htpath
        sed -i 's/Require all/#Require all/g' $htpath
        #sed -i 's/<//Files>/#<//Files>/g' $htpath
        sed -i 's/#Require /Require /g' $htpath
        expect -f - <<-EOF
            set timeout 5
            spawn htdigest -c /etc/nagios4/htdigest.users Nagios4 $NAGAD
            expect "New password:"
            send -- "$NAGADPASS\r"
            expect "Re-type new password:"
            send -- "$NAGADPASS\r"
            expect eof
EOF
        systemctl enable --now nagios
        systemctl status nagios
        if [ "${OS}" = ubuntu ]; then
            systemctl enable apache2
            systemctl restart apache2
        else
            systemctl enable httpd
            systemctl restart httpd
        fi
    
    }
}

nagios_install

You can download this install script here

Comments