124 lines
3.8 KiB
Bash
Executable File
124 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This is a bare-metal to Nagios Core build
|
|
# Designed strictly for Raspberry Pi Zero 2 W
|
|
# EverWatch Global Nagios World Conference 2026
|
|
# Contact: Eric Loyd <eloyd@everwatch.global>
|
|
|
|
do_notify() {
|
|
msg="$1"
|
|
shift
|
|
toilet -f mono9 "$msg" -F gay $*
|
|
}
|
|
do_msg() {
|
|
msg="$1"
|
|
shift
|
|
toilet -f future "$msg" -F metal $*
|
|
}
|
|
do_done() {
|
|
do_msg "Done." -F border
|
|
}
|
|
do_finished() {
|
|
do_msg "All Done!" -F border -F gay -F border
|
|
}
|
|
|
|
# Get me a banner first
|
|
echo "Installing *toilet* so you can see this stuff more easily..."
|
|
sudo apt update
|
|
sudo apt install -y toilet
|
|
|
|
# Pre-preqs
|
|
do_msg "Installing pre-reqs"
|
|
sudo apt update && sudo apt dist-upgrade -y
|
|
sudo apt install -y autoconf gcc libperl-dev make apache2 php php-gd libgd-dev \
|
|
libapache2-mod-php libssl-dev daemon unzip wget libtool libxml2-dev \
|
|
libjansson-dev libdbi-dev libsqlite3-dev libcjson-dev
|
|
do_done
|
|
|
|
# Make Nagios
|
|
do_msg "Installing Nagios Core"
|
|
sudo useradd nagios
|
|
sudo groupadd nagcmd
|
|
sudo usermod -aG nagcmd nagios
|
|
sudo usermod -aG nagcmd www-data
|
|
cd /tmp
|
|
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.5.12.tar.gz
|
|
tar -xzf nagios-4.5.12.tar.gz && rm nagios-4.5.12.tar.gz
|
|
cd nagios-4.5.12
|
|
./configure --with-command-group=nagcmd
|
|
make all
|
|
sudo make install
|
|
sudo make install-commandmode
|
|
sudo make install-init
|
|
sudo make install-config
|
|
sudo make install-webconf
|
|
# Nagios password (nagiosadmin/nagiosadmin)
|
|
sudo /bin/sh -c 'echo "nagiosadmin:\$apr1\$peYer4Fi\$KL9/8Ya8Zy6TOBtlmBZuP/" > /usr/local/nagios/etc/htpasswd.users'
|
|
do_done
|
|
|
|
# Nagios plugins
|
|
do_msg "Installing Nagios plugins"
|
|
cd /tmp
|
|
wget https://nagios-plugins.org/download/nagios-plugins-2.4.11.tar.gz
|
|
tar -xzf nagios-plugins-2.4.11.tar.gz && rm nagios-plugins-2.4.11.tar.gz
|
|
cd nagios-plugins-2.4.11
|
|
./configure --with-nagios-user=nagios --with-nagios-group=nagios
|
|
make
|
|
sudo make install
|
|
|
|
# Final configs
|
|
sudo systemctl enable apache2
|
|
sudo systemctl enable nagios
|
|
sudo systemctl start apache2
|
|
sudo systemctl start nagios
|
|
sudo a2enmod cgi
|
|
sudo systemctl restart apache2
|
|
do_done
|
|
|
|
### Installing NCPA and the like, getting the box to monitor itself via NCPA
|
|
# Install check_ncpa (C code from beta test)
|
|
do_msg "Installing NCPA"
|
|
arch=$(uname -m)
|
|
file="check_ncpa.${arch}"
|
|
if [ -r "$file" ]; then
|
|
echo "Will install $file, since it's here..."
|
|
echo "==> Installing ${file} to /usr/local/nagios/libexec..."
|
|
sudo install -d /usr/local/nagios/libexec
|
|
sudo install -m 0755 ${file} /usr/local/nagios/libexec/check_ncpa
|
|
echo "==> Installation complete!"
|
|
echo "Installed to: /usr/local/nagios/libexec/check_ncpa"
|
|
else
|
|
do_notify "IMPORTANT:"
|
|
echo "### You must extract, compile, and install the check_ncpa_c.2.Mar-05-26.tgz beta code to /usr/local/nagios/libexec"
|
|
echo "### Failure to do so will result in service check failures that may be hard to diagnose."
|
|
echo ""
|
|
fi
|
|
### Verify
|
|
/usr/local/nagios/libexec/check_ncpa --version
|
|
### Output: check_ncpa.c, Version 1.2.4
|
|
|
|
# Install NCPA Agent
|
|
cd ~/NWC2026-Fusion
|
|
sudo apt install ./ncpa_3.3.1-1_armhf.deb
|
|
### Verify
|
|
sleep 5
|
|
/usr/local/nagios/libexec/check_ncpa -H localhost -t mytoken -M system/version
|
|
### Output: OK: Version was #1 SMP Raspbian 1:6.12.75-1+rpt1 (2026-03-11) | 'version'=#1 SMP Raspbian 1:6.12.75-1+rpt1 (2026-03-11);;;
|
|
do_done
|
|
|
|
# Get localhost monitored via NCPA
|
|
do_msg "Monitor thyself via NCPA"
|
|
cd /usr/local/nagios/etc/
|
|
sudo mkdir EWG && sudo chown nagios:nagios EWG
|
|
sudo /bin/sh -c 'grep -q "cfg_dir=/usr/local/nagios/etc/EWG" nagios.cfg && echo "cfg_dir line already added." || echo "cfg_dir=/usr/local/nagios/etc/EWG" >> nagios.cfg'
|
|
cd EWG
|
|
sudo tar xvfz ~/NWC2026-Fusion/EWG_configs.tar.gz
|
|
sudo sed -i -e "s/localhost:NCPA/${HOSTNAME}/g" *.cfg
|
|
### Verify
|
|
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
|
|
### Output: Things look okay - No serious problems were detected during the pre-flight check
|
|
do_done
|
|
|
|
sudo systemctl restart nagios
|
|
do_finished
|