Compare commits

...

2 Commits

3 changed files with 186 additions and 12 deletions

View File

@@ -30,33 +30,109 @@ curl -s http://10.10.10.63:3000/LotusGuild/freshStartScript/raw/branch/main/fres
## 📦 Components Installed
**System Packages:**
### System Packages
* python3-pip
* smartmontools
* iperf3
* python3-psutil
* python3-requests
* lm-sensors
* neofetch
* rsync
**Prometheus Node Exporter:**
### Prometheus Node Exporter
✅ Installed as a systemd service
✅ Runs on default port 9100
✅ Configured to start on boot
**Hardware Monitoring Daemon (hwmon):**
### Hardware Monitoring Daemon (hwmon)
✅ Installed as a systemd service and timer
✅ Performs regular system health checks
✅ Performs regular system health checks every 15 minutes
✅ Creates tickets for detected issues
**NEW:** API key configuration via `/etc/hwmonDaemon/.env`
## ⚙️ Configuration
### hwmonDaemon API Key Setup
The script will prompt you for an API key during installation. You can:
**Option 1: Enter during installation**
```bash
Enter API key (or press Enter to skip): d8f356a06bd5612eca9c5ff948b592a56020cc61937764461458372c9ef30931
```
**Option 2: Configure later**
Edit the configuration file:
```bash
nano /etc/hwmonDaemon/.env
```
Add your API key:
```env
TICKET_API_KEY=your_actual_api_key_here
TICKET_API_URL=http://10.10.10.45/create_ticket_api.php
```
The `.env` file is created with restricted permissions (`chmod 600`) for security.
## 🔍 Verification
🔍 **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
Test hwmonDaemon with dry-run:
```bash
/usr/bin/env python3 -c "import urllib.request; exec(urllib.request.urlopen('http://10.10.10.63:3000/LotusGuild/hwmonDaemon/raw/branch/main/hwmonDaemon.py').read().decode('utf-8'))" --dry-run
```
Check if API key is loaded:
```bash
cat /etc/hwmonDaemon/.env
journalctl -u hwmon.service | grep "TICKET_API_KEY"
```
## 🌐 Network Requirements
| Service | Purpose |
|---------|---------|
| GitHub | Node Exporter download |
| 10.10.10.63:3000 | hwmon daemon files (Gitea) |
| 10.10.10.45 | Ticket API access |
## 📁 File Locations
| File/Directory | Purpose |
|---------------|---------|
| `/etc/hwmonDaemon/.env` | API key configuration |
| `/var/log/hwmonDaemon/` | hwmon log files |
| `/etc/systemd/system/hwmon.service` | hwmon systemd service |
| `/etc/systemd/system/hwmon.timer` | hwmon systemd timer |
| `/usr/local/bin/node_exporter` | Node Exporter binary |
## 🔧 Troubleshooting
### hwmonDaemon not creating tickets
Check if API key is configured:
```bash
cat /etc/hwmonDaemon/.env
```
Check logs for authentication errors:
```bash
journalctl -u hwmon.service -n 50
```
### Update API key after installation
Edit the configuration file:
```bash
nano /etc/hwmonDaemon/.env
```
No service restart needed - changes take effect on next run.

View File

@@ -120,9 +120,51 @@ if [[ ! -s /etc/systemd/system/hwmon.timer ]]; then
exit 1
fi
# Create log directory for hwmon
# Create configuration directory for hwmon
echo "Setting up hwmon configuration..."
mkdir -p /etc/hwmonDaemon
mkdir -p /var/log/hwmonDaemon
# Prompt for API key or use default
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " hwmonDaemon API Key Configuration"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "The hwmonDaemon requires an API key to create tickets."
echo "You can enter it now or configure it later by editing:"
echo " /etc/hwmonDaemon/.env"
echo ""
read -p "Enter API key (or press Enter to skip): " API_KEY
if [[ -n "$API_KEY" ]]; then
# Create .env file with API key
cat > /etc/hwmonDaemon/.env << EOF
# hwmonDaemon Configuration
# Auto-generated by freshStart.sh on $(date)
# Ticket API Configuration
TICKET_API_KEY=$API_KEY
TICKET_API_URL=http://10.10.10.45/create_ticket_api.php
EOF
chmod 600 /etc/hwmonDaemon/.env
echo "✓ API key configured in /etc/hwmonDaemon/.env"
else
# Create template .env file
cat > /etc/hwmonDaemon/.env << 'EOF'
# hwmonDaemon Configuration
# Edit this file to add your API key
# Ticket API Configuration
TICKET_API_KEY=your_api_key_here
TICKET_API_URL=http://10.10.10.45/create_ticket_api.php
EOF
chmod 600 /etc/hwmonDaemon/.env
echo "⚠️ WARNING: API key not configured!"
echo " Edit /etc/hwmonDaemon/.env to add your API key before tickets can be created"
fi
echo ""
# Start the hwmon daemon
systemctl daemon-reload
systemctl enable hwmon.timer
@@ -161,7 +203,14 @@ echo "Services installed:"
echo " - Node Exporter: http://$(hostname -I | awk '{print $1}'):9100/metrics"
echo " - hwmon daemon: Monitoring system health every 15 minutes"
echo ""
echo "Configuration files:"
echo " - hwmon config: /etc/hwmonDaemon/.env"
echo ""
echo "Log locations:"
echo " - Node Exporter: journalctl -u node_exporter"
echo " - hwmon: journalctl -u hwmon.service"
echo " - hwmon logs: /var/log/hwmonDaemon/"
echo " - hwmon logs: /var/log/hwmonDaemon/"
echo ""
if [[ ! -s /etc/hwmonDaemon/.env ]] || grep -q "your_api_key_here" /etc/hwmonDaemon/.env 2>/dev/null; then
echo "⚠️ REMINDER: Configure your API key in /etc/hwmonDaemon/.env"
fi

49
update_api_key.sh Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
# Quick script to update hwmonDaemon API key on existing servers
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " hwmonDaemon API Key Update Utility"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Check if running as root
if [[ $EUID -ne 0 ]]; then
echo "❌ This script must be run as root"
exit 1
fi
# Create directory if it doesn't exist
mkdir -p /etc/hwmonDaemon
# Prompt for API key
echo "Enter your Tinker Tickets API key:"
read -p "API Key: " API_KEY
if [[ -z "$API_KEY" ]]; then
echo "❌ API key cannot be empty"
exit 1
fi
# Create/update .env file
cat > /etc/hwmonDaemon/.env << EOF
# hwmonDaemon Configuration
# Updated on $(date)
# Ticket API Configuration
TICKET_API_KEY=$API_KEY
TICKET_API_URL=http://10.10.10.45/create_ticket_api.php
EOF
chmod 600 /etc/hwmonDaemon/.env
echo ""
echo "✅ API key updated successfully!"
echo ""
echo "Configuration saved to: /etc/hwmonDaemon/.env"
echo ""
echo "The new API key will be used on the next hwmon run."
echo "To test immediately:"
echo " systemctl start hwmon.service"
echo ""
echo "Check logs:"
echo " journalctl -u hwmon.service -n 20"