|
3 | 3 | # ======================== Zabbix Setup ======================== |
4 | 4 | # Setup Zabbix Server or Zabbix Agent |
5 | 5 | # Usage: |
6 | | -# ./zabbix.sh server # Install Zabbix Server |
7 | | -# ./zabbix.sh client # Install Zabbix Agent |
| 6 | +# ./zabbix.sh server # Install Zabbix Server |
| 7 | +# ./zabbix.sh client # Install Zabbix Agent (will prompt for IP) |
| 8 | +# ./zabbix.sh client 192.168.1.100 # Install Zabbix Agent with Server IP |
8 | 9 |
|
9 | 10 | set -e |
10 | 11 |
|
@@ -80,9 +81,50 @@ install_zabbix_server() { |
80 | 81 | systemctl enable mysql |
81 | 82 | print_success "MySQL installed and started" |
82 | 83 |
|
83 | | - # Install Zabbix server, frontend, agent |
| 84 | + # Detect or choose web server |
| 85 | + print_info "Detecting web server..." |
| 86 | + WEB_SERVER="" |
| 87 | + |
| 88 | + if systemctl is-active --quiet nginx; then |
| 89 | + WEB_SERVER="nginx" |
| 90 | + print_info "Nginx detected, will use Nginx" |
| 91 | + elif systemctl is-active --quiet apache2; then |
| 92 | + WEB_SERVER="apache" |
| 93 | + print_info "Apache detected, will use Apache" |
| 94 | + else |
| 95 | + # Ask user to choose |
| 96 | + echo "" |
| 97 | + echo "No web server detected. Please choose:" |
| 98 | + echo " 1) Nginx (recommended, lightweight)" |
| 99 | + echo " 2) Apache (traditional)" |
| 100 | + read -p "Enter choice [1-2]: " choice |
| 101 | + |
| 102 | + case "$choice" in |
| 103 | + 1) |
| 104 | + WEB_SERVER="nginx" |
| 105 | + print_info "Selected: Nginx" |
| 106 | + ;; |
| 107 | + 2) |
| 108 | + WEB_SERVER="apache" |
| 109 | + print_info "Selected: Apache" |
| 110 | + ;; |
| 111 | + *) |
| 112 | + print_error "Invalid choice" |
| 113 | + exit 1 |
| 114 | + ;; |
| 115 | + esac |
| 116 | + fi |
| 117 | + |
| 118 | + # Install Zabbix server, frontend, agent based on web server |
84 | 119 | print_info "Installing Zabbix Server, Frontend, Agent..." |
85 | | - apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent |
| 120 | + |
| 121 | + if [ "$WEB_SERVER" = "nginx" ]; then |
| 122 | + apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent php-fpm |
| 123 | + print_success "Installed Zabbix with Nginx support" |
| 124 | + else |
| 125 | + apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent |
| 126 | + print_success "Installed Zabbix with Apache support" |
| 127 | + fi |
86 | 128 |
|
87 | 129 | # Create Zabbix database |
88 | 130 | print_info "Setting up Zabbix database..." |
|
150 | 192 |
|
151 | 193 | # Start and enable services |
152 | 194 | print_info "Starting Zabbix services..." |
| 195 | + systemctl restart zabbix-server zabbix-agent php8.4-fpm nginx 2>/dev/null || \ |
153 | 196 | systemctl restart zabbix-server zabbix-agent php8.3-fpm nginx 2>/dev/null || \ |
154 | 197 | systemctl restart zabbix-server zabbix-agent php8.1-fpm nginx 2>/dev/null || \ |
155 | 198 | systemctl restart zabbix-server zabbix-agent php-fpm nginx |
@@ -287,15 +330,20 @@ install_zabbix_agent() { |
287 | 330 |
|
288 | 331 | # Show usage |
289 | 332 | show_usage() { |
290 | | - echo "Usage: $0 [server|client]" |
| 333 | + echo "Usage: $0 [server|client] [server_ip]" |
291 | 334 | echo "" |
292 | 335 | echo "Options:" |
293 | | - echo " server Install Zabbix Server with web interface" |
294 | | - echo " client Install Zabbix Agent (client)" |
| 336 | + echo " server Install Zabbix Server with web interface" |
| 337 | + echo " client [server_ip] Install Zabbix Agent (client)" |
| 338 | + echo "" |
| 339 | + echo "Arguments:" |
| 340 | + echo " server_ip Zabbix Server IP (optional for client)" |
| 341 | + echo " If not provided, will prompt for input" |
295 | 342 | echo "" |
296 | 343 | echo "Examples:" |
297 | | - echo " $0 server # Install Zabbix Server" |
298 | | - echo " $0 client # Install Zabbix Agent" |
| 344 | + echo " $0 server # Install Zabbix Server" |
| 345 | + echo " $0 client # Install Agent (will ask for IP)" |
| 346 | + echo " $0 client 192.168.1.100 # Install Agent with Server IP" |
299 | 347 | echo "" |
300 | 348 | } |
301 | 349 |
|
|
0 commit comments