This commit is contained in:
Oliver Gwyther 2024-11-23 19:45:18 +00:00
commit 15aa8ad934
2 changed files with 162 additions and 0 deletions

102
grafana-stack/install.sh Normal file
View File

@ -0,0 +1,102 @@
#!/bin/bash
# Function to install Loki and Promtail
install_loki_promtail() {
echo "Installing Loki and Promtail..."
# Install Loki
echo "Installing Loki..."
wget -q -O - https://repo.thanos.io/thanos.key | apt-key add -
echo "deb [arch=amd64] https://repo.thanos.io/deb all main" | tee /etc/apt/sources.list.d/thanos.list
apt-get update -y
apt-get install -y loki
# Install Promtail
echo "Installing Promtail..."
wget -q -O - https://repo.thanos.io/thanos.key | apt-key add -
echo "deb [arch=amd64] https://repo.thanos.io/deb all main" | tee /etc/apt/sources.list.d/thanos.list
apt-get update -y
apt-get install -y promtail
# Enable and start Loki and Promtail services
echo "Enabling and starting Loki and Promtail services..."
systemctl enable loki
systemctl start loki
systemctl enable promtail
systemctl start promtail
echo "Loki and Promtail installed and services started."
}
# Check for sudo/root privileges
if [ "$(id -u)" != "0" ]; then
echo "Script must be run as root. Please enter your sudo password."
exec sudo bash "$0" "$@"
fi
echo "Starting script as root."
# Step 2: Install software-properties-common, apt-transport-https, wget
echo "Step 2: Installing software-properties-common, apt-transport-https, wget..."
apt-get update -y
apt-get install -y software-properties-common apt-transport-https wget
# Step 3: Add the official Grafana GPG key
echo "Step 3: Adding the official Grafana GPG key..."
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
# Step 4: Add the official Grafana repository for Debian
echo "Step 4: Adding the official Grafana repository..."
add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
# Step 5: Run apt update
echo "Step 5: Updating package list..."
apt-get update -y
# Step 6: Install both Grafana & Prometheus
echo "Step 6: Installing Grafana and Prometheus..."
apt-get install -y grafana prometheus
# Step 7: Edit the Grafana config file to change the default port
echo "Step 7: Changing Grafana port from 3000 to 3100..."
sed -i 's/;http_port = 3000/http_port = 3100/' /etc/grafana/grafana.ini
# Step 8: Install and enable both Grafana and Prometheus as systemctl services
echo "Step 8: Enabling and starting Grafana and Prometheus services..."
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
systemctl enable prometheus
systemctl start prometheus
# Step 9: Wait 2 minutes, then check both services are running successfully
echo "Step 9: Waiting 2 minutes to check service statuses..."
sleep 120
GRAFANA_STATUS=$(systemctl is-active grafana-server)
PROMETHEUS_STATUS=$(systemctl is-active prometheus)
if [ "$GRAFANA_STATUS" != "active" ] || [ "$PROMETHEUS_STATUS" != "active" ]; then
echo "One or both services failed to start. Retrying in 2 minutes..."
sleep 120
systemctl restart grafana-server
systemctl restart prometheus
fi
GRAFANA_STATUS=$(systemctl is-active grafana-server)
PROMETHEUS_STATUS=$(systemctl is-active prometheus)
if [ "$GRAFANA_STATUS" == "active" ] && [ "$PROMETHEUS_STATUS" == "active" ]; then
echo "Both Grafana and Prometheus are running successfully."
echo "Grafana can be accessed on port 3100."
# Prompt to install Loki and Promtail
read -p "Would you like to install Loki and Promtail as well? (yes/no): " INSTALL_LOKI_PROMTAIL
if [ "$INSTALL_LOKI_PROMTAIL" == "yes" ] || [ "$INSTALL_LOKI_PROMTAIL" == "y" ]; then
install_loki_promtail
else
echo "Skipping installation of Loki and Promtail."
fi
else
echo "Failed to start one or both services. Please check the logs for more information."
fi

View File

@ -0,0 +1,60 @@
#!/bin/bash
# Function to display the main menu
function show_menu() {
clear
echo "======================================"
echo " Proxmox Helper Script Installer"
echo "======================================"
echo "1. Install PVE-No-Subscription-Warning"
echo "2. Install PVE Kernel Module Patcher"
echo "3. Install PVE VM Backup Script"
echo "4. Exit"
echo "======================================"
}
# Function to install the PVE No Subscription Warning script
function install_pve_no_subscription_warning() {
clear
echo "Installing PVE-No-Subscription-Warning..."
# Add your installation command here, for example:
wget https://raw.githubusercontent.com/proxmox/pve-no-subscription-warning/master/pve-no-subscription-warning -O /usr/local/bin/pve-no-subscription-warning
chmod +x /usr/local/bin/pve-no-subscription-warning
echo "PVE-No-Subscription-Warning installed successfully!"
read -n 1 -s -r -p "Press any key to continue..."
}
# Function to install the PVE Kernel Module Patcher script
function install_pve_kernel_module_patcher() {
clear
echo "Installing PVE Kernel Module Patcher..."
# Add your installation command here, for example:
wget https://raw.githubusercontent.com/olafm/proxmox-no-subscription-patch/master/pve-no-subscription-patch -O /usr/local/bin/pve-kernel-module-patcher
chmod +x /usr/local/bin/pve-kernel-module-patcher
echo "PVE Kernel Module Patcher installed successfully!"
read -n 1 -s -r -p "Press any key to continue..."
}
# Function to install the PVE VM Backup Script
function install_pve_vm_backup_script() {
clear
echo "Installing PVE VM Backup Script..."
# Add your installation command here, for example:
wget https://raw.githubusercontent.com/erikng/proxmox-scripts/master/backup-vm.sh -O /usr/local/bin/pve-vm-backup
chmod +x /usr/local/bin/pve-vm-backup
echo "PVE VM Backup Script installed successfully!"
read -n 1 -s -r -p "Press any key to continue..."
}
# Main loop
while true; do
show_menu
read -p "Please enter your choice: " choice
case $choice in
1) install_pve_no_subscription_warning ;;
2) install_pve_kernel_module_patcher ;;
3) install_pve_vm_backup_script ;;
4) exit 0 ;;
*) echo "Invalid option. Please enter a number between 1 and 4." ;;
esac
done