87 lines
3.9 KiB
Bash
Executable File
87 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# apt-get update && apt-get install -y git && cd /opt && git -C /opt/icinga2-checks pull || git clone https://git.dp15.us/dpanzer/icinga2-checks.git /opt/icinga2-checks && bash /opt/icinga2-checks/install.sh
|
|
|
|
ln_existing() {
|
|
src=$1
|
|
dest=$2
|
|
if [[ -e "$dest" ]] || [[ -L "$dest" ]]; then
|
|
rm "$dest"
|
|
fi
|
|
ln -s "$src" "$dest"
|
|
}
|
|
|
|
if [[ $UID != 0 ]]; then
|
|
echo "Please run this script with sudo:"
|
|
echo "sudo $0 $*"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
apt-get update
|
|
apt-get install -y python3-venv git sysstat bc smartmontools curl recode python3-pip
|
|
curl https://bootstrap.pypa.io/get-pip.py | python3
|
|
# sudo synogear install
|
|
pip install --disable-pip-version-check --root-user-action=ignore -U pip wheel setuptools
|
|
pip install --disable-pip-version-check --root-user-action=ignore psutil check_systemd
|
|
|
|
mkdir -p /usr/lib64/nagios/plugins/
|
|
|
|
# Install global pip packages
|
|
#pip install --disable-pip-version-check --root-user-action=ignore psutil
|
|
|
|
# git -C /opt/icinga2-checks pull || git clone https://git.evulid.cc/cyberes/icinga2-checks.git /opt/icinga2-checks
|
|
|
|
mkdir -p /opt/venvs
|
|
|
|
if [[ ! -d /opt/venvs/icinga2_checks ]]; then
|
|
echo "Creating venv in /opt/venvs/icinga2_checks"
|
|
python3 -m venv /opt/venvs/icinga2_checks
|
|
fi
|
|
if [[ ! -d /opt/venvs/check_pve ]]; then
|
|
echo "Creating venv in /opt/venvs/check_pve"
|
|
python3 -m venv /opt/venvs/check_pve
|
|
fi
|
|
|
|
/opt/venvs/icinga2_checks/bin/pip install --disable-pip-version-check --root-user-action=ignore -U pip wheel setuptools
|
|
/opt/venvs/icinga2_checks/bin/pip install --disable-pip-version-check --root-user-action=ignore -r /opt/icinga2-checks/requirements.txt
|
|
|
|
/opt/venvs/check_pve/bin/pip install --disable-pip-version-check --root-user-action=ignore -U pip wheel setuptools
|
|
/opt/venvs/check_pve/bin/pip install --disable-pip-version-check --root-user-action=ignore -r /opt/icinga2-checks/check_pve/requirements.txt
|
|
|
|
ln_existing /opt/icinga2-checks/check_iowait.sh /usr/lib64/nagios/plugins/check_iowait
|
|
ln_existing /opt/icinga2-checks/check_bandwidth.py /usr/lib64/nagios/plugins/check_bandwidth
|
|
ln_existing /opt/icinga2-checks/check_curl.sh /usr/lib64/nagios/plugins/check_curl
|
|
|
|
# ==============================================================================
|
|
# Install the Linuxfabrik checks
|
|
|
|
if [[ ! -d /opt/linuxfabrik-monitoring-plugins ]]; then
|
|
git clone https://github.com/Linuxfabrik/monitoring-plugins.git /opt/linuxfabrik-monitoring-plugins
|
|
|
|
if [[ ! -d /opt/venvs/linuxfabrik ]]; then
|
|
echo "Creating venv in /opt/venvs/linuxfabrik"
|
|
python3 -m venv /opt/venvs/linuxfabrik
|
|
fi
|
|
|
|
cd /opt/linuxfabrik-monitoring-plugins
|
|
rm -rf lib
|
|
git clone https://github.com/Linuxfabrik/lib.git
|
|
/opt/venvs/linuxfabrik/bin/pip install --disable-pip-version-check --root-user-action=ignore -U pip wheel setuptools
|
|
/opt/venvs/linuxfabrik/bin/pip install --disable-pip-version-check --root-user-action=ignore bs4 psutil smbprotocol vici pymysql
|
|
fi
|
|
|
|
ln_existing /opt/linuxfabrik-monitoring-plugins/check-plugins/disk-io/disk-io3 /usr/lib64/nagios/plugins/disk-io
|
|
ln_existing /opt/linuxfabrik-monitoring-plugins/check-plugins/cpu-usage/cpu-usage3 /usr/lib64/nagios/plugins/cpu-usage
|
|
ln_existing /opt/linuxfabrik-monitoring-plugins/check-plugins/disk-usage/disk-usage3 /usr/lib64/nagios/plugins/disk-usage
|
|
ln_existing /opt/linuxfabrik-monitoring-plugins/check-plugins/memory-usage/memory-usage3 /usr/lib64/nagios/plugins/memory-usage
|
|
ln_existing /opt/linuxfabrik-monitoring-plugins/check-plugins/ping/ping3 /usr/lib64/nagios/plugins/ping
|
|
ln_existing /opt/linuxfabrik-monitoring-plugins/check-plugins/disk-smart/disk-smart3 /usr/lib64/nagios/plugins/disk-smart
|
|
|
|
setcap cap_net_raw+ep /usr/lib/nagios/plugins/check_icmp
|
|
setcap cap_net_raw+ep /usr/lib/nagios/plugins/check_ping
|
|
setcap 'cap_net_raw+ep' "$(which ping)"
|
|
|
|
mkdir -p /opt/venvs/icinga2_checks/lib/python3.10/site-packages/certifi/
|
|
ln_existing /etc/ssl/certs/ca-certificates.crt /opt/venvs/icinga2_checks/lib/python3.10/site-packages/certifi/cacert.pem
|