commit f050b8de065e0507166632514e9ea7681a1448a9 Author: Jared Vititoe Date: Sun Dec 8 15:05:13 2024 -0500 First initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..97bec60 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# Fresh Start Installation Script 🚀 + +> A powerful bash script for automating Proxmox installations with monitoring tools and system health checks. + +## ✨ Features + +* 📦 Installs essential system packages +* 📊 Sets up Prometheus Node Exporter (v1.8.2) +* 🔍 Configures system health monitoring daemon (hwmon) +* ✅ Performs initial dry-run test of monitoring systems + +## 📋 Prerequisites + +* Debian-based system (Proxmox) +* Root/sudo access +* Internet connectivity + +## 🛠️ Installation + +Execute these commands as root: + +```bash +chmod +x freshStart.sh +./freshStart.sh +``` + +## 📦 Components Installed +**System Packages:** + +* python3-pip +* smartmontools +* iperf3 +* python3-psutil +* python3-requests + +**Prometheus Node Exporter:** +✅ Installed as a systemd service +✅ Runs on default port 9100 +✅ Configured to start on boot + +**Hardware Monitoring Daemon (hwmon):** +✅ Installed as a systemd service and timer +✅ Performs regular system health checks +✅ Creates tickets for detected issues + +🔍 **Verification** +Verify service status after installation: +```bash +systemctl status node_exporter +systemctl status hwmon.timer +``` + +🌐 **Network Requirements** +Service Purpose +GitHub Node Exporter download +10.10.10.110:3000 hwmon daemon files +10.10.10.45 Ticket API access \ No newline at end of file diff --git a/freshStart.sh b/freshStart.sh new file mode 100644 index 0000000..f99bcd1 --- /dev/null +++ b/freshStart.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Exit on any error +set -e + +echo "Starting Proxmox fresh installation script..." + +# Install dependencies +echo "Installing required packages..." +apt-get update +apt-get install -y python3-pip smartmontools iperf3 python3-psutil python3-requests + +# Install Node Exporter +echo "Installing Prometheus Node Exporter..." +NODE_EXPORTER_VERSION="1.8.2" +wget "https://github.com/prometheus/node_exporter/releases/download/v${NODE_EXPORTER_VERSION}/node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz" +tar xvfz node_exporter-*.linux-amd64.tar.gz + +# Create node_exporter user and group +useradd -rs /bin/false node_exporter + +# Move binary to proper location +mv node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64/node_exporter /usr/local/bin/ +rm -rf node_exporter-*.linux-amd64.tar.gz node_exporter-*.linux-amd64 + +# Create node_exporter service file +cat > /etc/systemd/system/node_exporter.service << 'EOL' +[Unit] +Description=Node Exporter +After=network.target + +[Service] +User=node_exporter +Group=node_exporter +Type=simple +ExecStart=/usr/local/bin/node_exporter + +[Install] +WantedBy=multi-user.target +EOL + +# Enable and start node_exporter +systemctl daemon-reload +systemctl enable node_exporter +systemctl start node_exporter + +# Install hwmon daemon +echo "Installing hwmon daemon..." +curl -o /etc/systemd/system/hwmon.service http://10.10.10.110:3000/JWS/hwmonDaemon/raw/branch/main/hwmon.service +curl -o /etc/systemd/system/hwmon.timer http://10.10.10.110:3000/JWS/hwmonDaemon/raw/branch/main/hwmon.timer +systemctl daemon-reload +systemctl enable hwmon.timer +systemctl start hwmon.timer + +# Test hwmon +echo "Testing hwmon dry-run..." +/usr/bin/env python3 -c "import urllib.request; exec(urllib.request.urlopen('http://10.10.10.110:3000/JWS/hwmonDaemon/raw/branch/main/hwmonDaemon.py').read().decode('utf-8'))" --dry-run + +echo "Installation complete! Please verify all services are running correctly."