Skip to content

Commit 153175a

Browse files
committed
feat: enhance Zabbix installation scripts with server IP options and web server detection
1 parent dfdaf23 commit 153175a

File tree

3 files changed

+68
-10
lines changed

3 files changed

+68
-10
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,20 @@ Features:
9393
- ✓ Generates secure random passwords
9494
- ✓ Configures firewall automatically
9595
- ✓ Supports Ubuntu 20.04, 22.04, 24.04
96+
- ✓ Zabbix 7.0 LTS
9697

9798
**Install Zabbix Agent (Client):**
9899

99100
```bash
101+
# Method 1: Will prompt for Server IP
100102
sudo bash install.sh zabbix_client
101103
# or
102104
sudo bash install.sh zc
105+
106+
# Method 2: Pass Server IP directly
107+
sudo bash install.sh zabbix_client 192.168.1.100
108+
# or
109+
sudo bash install.sh zc 192.168.1.100
103110
```
104111

105112
Features:

install.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ usage() {
9090
echo " bash $0 lazydocker"
9191
echo " bash $0 global_dev"
9292
echo " bash $0 global_dev -f"
93+
echo " bash $0 zabbix_server"
94+
echo " bash $0 zabbix_client"
95+
echo " bash $0 zabbix_client 192.168.1.100"
9396
echo ''
9497
}
9598

@@ -127,7 +130,7 @@ case "${1:-}" in
127130
;;
128131

129132
zabbix_client | zc)
130-
zabbix_client
133+
zabbix_client "$@"
131134
;;
132135

133136
*)

setup/system/zabbix.sh

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
# ======================== Zabbix Setup ========================
44
# Setup Zabbix Server or Zabbix Agent
55
# 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
89

910
set -e
1011

@@ -80,9 +81,50 @@ install_zabbix_server() {
8081
systemctl enable mysql
8182
print_success "MySQL installed and started"
8283

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
84119
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
86128

87129
# Create Zabbix database
88130
print_info "Setting up Zabbix database..."
@@ -150,6 +192,7 @@ EOF
150192

151193
# Start and enable services
152194
print_info "Starting Zabbix services..."
195+
systemctl restart zabbix-server zabbix-agent php8.4-fpm nginx 2>/dev/null || \
153196
systemctl restart zabbix-server zabbix-agent php8.3-fpm nginx 2>/dev/null || \
154197
systemctl restart zabbix-server zabbix-agent php8.1-fpm nginx 2>/dev/null || \
155198
systemctl restart zabbix-server zabbix-agent php-fpm nginx
@@ -287,15 +330,20 @@ install_zabbix_agent() {
287330

288331
# Show usage
289332
show_usage() {
290-
echo "Usage: $0 [server|client]"
333+
echo "Usage: $0 [server|client] [server_ip]"
291334
echo ""
292335
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"
295342
echo ""
296343
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"
299347
echo ""
300348
}
301349

0 commit comments

Comments
 (0)