From 51b2ddc215a1bac870b5bc289a37ad603d9f3338 Mon Sep 17 00:00:00 2001 From: Eric Loyd Date: Mon, 24 Aug 2026 08:48:49 -0400 Subject: [PATCH] Repo creation --- build.sh | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100755 build.sh diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..d8c4817 --- /dev/null +++ b/build.sh @@ -0,0 +1,121 @@ +#!/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 + +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 +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 +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" +### +## +# FIX +## +### +sudo wget -O /usr/local/nagios/libexec/check_ncpa https://git.everwatch.global/eloyd/NWC2026-Fusion/raw/branch/main/check_ncpa +sudo chown nagios:nagios /usr/local/nagios/libexec/check_ncpa +sudo chmod 755 /usr/local/nagios/libexec/check_ncpa +### Verify +/usr/local/nagios/libexec/check_ncpa --version +### Output: check_ncpa.c, Version 1.2.4 + +# Install NCPA Agent +### +## +# FIX +## +### +sudo wget -O /tmp/ncpa_3.3.1-1_armhf.deb /tmp https://git.everwatch.global/eloyd/NWC2026-Fusion/raw/branch/main/ncpa_3.3.1-1_armhf.deb +sudo apt install /tmp/ncpa_3.3.1-1_armhf.deb +### Verify +/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 +### +## +# FIX +## +### +sudo wget https://git.everwatch.global/eloyd/NWC2026-Fusion/raw/branch/main/EWG_configs.tar.gz +sudo tar xvfz EWG_configs.tar.gz && sudo rm 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