slogan3

description

Met deze prompt kun je een interactieve script ontwikkelen die real-time inzicht geeft in de status van je servers, waardoor je snel kunt reageren op problemen. Het verhoogt de efficiëntie van serverbeheer door dynamische controles en vereenvoudigt loganalyse zonder handmatige tussenkomst.

prompt

Help me een interactieve Bash of PowerShell script te maken die real-time servermonitoring uitvoert met opties om specifieke services te controleren, systeembelasting te bekijk ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een interactieve Bash-script die real-time servermonitoring biedt, inclusief opties om specifieke services te controleren, systeembelasting te bekijken en logs dynamisch te filteren. Het is een basis die je verder kunt uitbreiden naar jouw behoeften. ```bash #!/bin/bash # Functie om services te controleren check_service() { local service_name=$1 if systemctl is-active --quiet "$service_name"; then echo "Service $service_name is actief." else echo "Service $service_name is niet actief." fi } # Functie om systeembelasting te bekijken show_load() { echo "Huidige systeembelasting:" uptime echo "" echo "CPU gebruik:" top -bn1 | grep "Cpu(s)" echo "" echo "Memory gebruik:" free -h } # Functie om logs te filteren filter_logs() { local log_file=$1 read -p "Voer zoekterm in voor filtering: " zoekterm echo "Laten we zoeken naar '$zoekterm' in $log_file..." tail -f "$log_file" | grep --line-buffered "$zoekterm" } while true; do clear echo "Server Monitoring Script" echo "------------------------" echo "1) Controleer services (Apache, MySQL)" echo "2) Bekijk systeembelasting" echo "3) Filter logs (/var/log/syslog, /var/log/auth.log)" echo "4) Afsluiten" read -p "Maak een keuze [1-4]: " keuze case $keuze in 1) echo "Controleer Apache..." check_service "apache2" # Voor Debian/Ubuntu # check_service "httpd" # Voor CentOS/RHEL echo "Controleer MySQL..." check_service "mysql" read -p "Druk op Enter om terug te gaan..." ;; 2) show_load read -p "Druk op Enter om terug te gaan..." ;; 3) echo "Kies logbestand:" echo "a) /var/log/syslog" echo "b) /var/log/auth.log" read -p "Maak een keuze [a/b]: " logkeuze case $logkeuze in a) filter_logs "/var/log/syslog" ;; b) filter_logs "/var/log/auth.log" ;; *) echo "Ongeldige keuze." ;; esac ;; 4) echo "Afsluiten..." break ;; *) echo "Ongeldige keuze, probeer opnieuw." read -p "Druk op Enter om opnieuw te proberen..." ;; esac done ``` **Hoe te gebruiken:** 1. Sla dit script op als bijvoorbeeld `server_monitor.sh`. 2. Maak het uitvoerbaar met: `chmod +x server_monitor.sh`. 3. Voer het uit met: `./server_monitor.sh`. **Aanpassingen:** - Pas de servicenames aan indien nodig, afhankelijk van je distributie (`apache2` voor Debian/Ubuntu, `httpd` voor CentOS/RHEL). - Voeg eventueel meer logs of monitoring-opties toe. - Voor geavanceerde filtering kun je extra opties toevoegen. Als je meer wilt, bijvoorbeeld grafieken of meer gedetailleerde statistieken, kun je tools zoals `htop`, `glances`, of grafische dashboards integreren.
provider: deepseek
model: deepseek-chat
Zeker! Hier is een interactief Bash-script voor real-time servermonitoring op Ubuntu/Debian systemen: ```bash #!/bin/bash # Kleuren voor output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Configuratie SERVICES=("apache2" "mysql") LOG_FILES=("/var/log/syslog" "/var/log/auth.log") # Functie om services te controleren check_services() { echo -e "${BLUE}=== SERVICE STATUS ===${NC}" for service in "${SERVICES[@]}"; do if systemctl is-active --quiet "$service"; then echo -e "${GREEN}✓ $service is running${NC}" else echo -e "${RED}✗ $service is not running${NC}" fi done echo "" } # Functie om systeembelasting te tonen show_system_load() { echo -e "${BLUE}=== SYSTEM LOAD ===${NC}" echo "CPU Usage: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}')%" echo "Memory Usage: $(free -h | grep Mem | awk '{print $3"/"$2}')" echo "Load Average: $(uptime | awk -F'load average:' '{print $2}')" echo "" } # Functie om logs te monitoren monitor_logs() { echo -e "${BLUE}=== LOG MONITORING ===${NC}" echo "1. Syslog monitoren" echo "2. Auth.log monitoren" echo "3. Beide logs monitoren" echo "4. Terug naar hoofdmenu" read -p "Kies een optie (1-4): " log_choice case $log_choice in 1) echo -e "${YELLOW}Monitoring syslog (Ctrl+C om te stoppen)...${NC}" tail -f "${LOG_FILES[0]}" ;; 2) echo -e "${YELLOW}Monitoring auth.log (Ctrl+C om te stoppen)...${NC}" tail -f "${LOG_FILES[1]}" ;; 3) echo -e "${YELLOW}Monitoring beide logs (Ctrl+C om te stoppen)...${NC}" tail -f "${LOG_FILES[0]}" "${LOG_FILES[1]}" ;; 4) return ;; *) echo -e "${RED}Ongeldige keuze${NC}" ;; esac } # Functie om logs te filteren filter_logs() { echo -e "${BLUE}=== LOG FILTERING ===${NC}" echo "1. Filter syslog op fouten" echo "2. Filter auth.log op failed login attempts" echo "3. Aangepaste filter" echo "4. Terug naar hoofdmenu" read -p "Kies een optie (1-4): " filter_choice case $filter_choice in 1) echo -e "${YELLOW}Fouten in syslog:${NC}" grep -i "error\|fail\|critical" "${LOG_FILES[0]}" | tail -20 ;; 2) echo -e "${YELLOW}Failed login attempts:${NC}" grep -i "fail" "${LOG_FILES[1]}" | tail -20 ;; 3) read -p "Voer zoekterm in: " search_term read -p "Kies logbestand (1: syslog, 2: auth.log): " log_select if [ "$log_select" -eq 1 ]; then grep -i "$search_term" "${LOG_FILES[0]}" | tail -20 elif [ "$log_select" -eq 2 ]; then grep -i "$search_term" "${LOG_FILES[1]}" | tail -20 else echo -e "${RED}Ongeldige keuze${NC}" fi ;; 4) return ;; *) echo -e "${RED}Ongeldige keuze${NC}" ;; esac } # Hoofdmenu while true; do echo -e "${BLUE}=== SERVER MONITORING TOOL ===${NC}" echo "1. Service status controleren" echo "2. Systeembelasting bekijken" echo "3. Logs real-time monitoren" echo "4. Logs filteren" echo "5. Alles tonen" echo "6. Afsluiten" echo "" read -p "Kies een optie (1-6): " choice case $choice in 1) check_services ;; 2) show_system_load ;; 3) monitor_logs ;; 4) filter_logs ;; 5) check_services show_system_load ;; 6) echo -e "${GREEN}Afsluiten...${NC}" exit 0 ;; *) echo -e "${RED}Ongeldige keuze. Probeer opnieuw.${NC}" ;; esac echo "Druk op Enter om door te gaan..." read -r clear done ``` ## Gebruiksaanwijzing: 1. **Script opslaan**: Sla het op als `server-monitor.sh` 2. **Uitvoerbaar maken**: `chmod +x server-monitor.sh` 3. **Uitvoeren**: `./server-monitor.sh` ## Vereisten: - Bash shell - Systemd (voor service monitoring) - Toegangsrechten voor logbestanden (mogelijk sudo nodig) ## Functionaliteiten: - ✅ Apache2 & MySQL service monitoring - ✅ Real-time CPU/memory monitoring - ✅ Live log monitoring met `tail -f` - ✅ Geavanceerd log filtering - ✅ Kleurgecodeerde output - ✅ Interactief menu Voor PowerShell (Windows) zou een vergelijkbaar script mogelijk zijn, maar gezien je specifieke services en logbestanden vermeldde, is Bash de meest geschikte keuze voor Linux servers.