Skip to content

Commit dcc0acd

Browse files
zabbix: add initscript for server
Adds an initscript for zabbix_server, and related helper files + uses a zabbix_server uci conf to enable/disable startup + updates the default zabbix_server.conf to work with initscript + add a sysctl.d conf to set max-files more appropriate for zabbix_server Signed-off-by: Daniel F. Dickinson <[email protected]>
1 parent 8bf5f68 commit dcc0acd

File tree

5 files changed

+92
-1
lines changed

5 files changed

+92
-1
lines changed

admin/zabbix/Makefile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
99

1010
PKG_NAME:=zabbix
1111
PKG_VERSION:=7.0.12
12-
PKG_RELEASE:=1
12+
PKG_RELEASE:=2
1313

1414
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
1515
PKG_SOURCE_URL:=https://cdn.zabbix.com/zabbix/sources/stable/$(basename $(PKG_VERSION))/ \
@@ -334,6 +334,8 @@ Package/zabbix-agentd-gnutls/conffiles = $(Package/zabbix-agentd/conffiles)
334334

335335
define Package/zabbix-server/conffiles
336336
/etc/zabbix_server.conf
337+
/etc/config/zabbix_server
338+
/etc/sysctl.d/90-zabbix-discovery-workers.conf
337339
endef
338340
Package/zabbix-server-openssl/conffiles = $(Package/zabbix-server/conffiles)
339341
Package/zabbix-server-gnutls/conffiles = $(Package/zabbix-server/conffiles)
@@ -422,6 +424,12 @@ Package/zabbix-get-gnutls/install = $(Package/zabbix-get/install)
422424
define Package/zabbix-server/install
423425
$(call Package/zabbix/install/sbin,$(1),server)
424426
$(call Package/zabbix/install/etc,$(1),server)
427+
$(call Package/zabbix/install/init.d,$(1),server)
428+
429+
$(INSTALL_DIR) $(1)/etc/sysctl.d
430+
$(INSTALL_DIR) $(1)/etc/config
431+
$(INSTALL_CONF) ./files/zabbix-discovery-workers.conf.sysctl $(1)/etc/sysctl.d/90-zabbix-discovery-workers.conf
432+
$(INSTALL_CONF) files/zabbix_server.config $(1)/etc/config/zabbix_server
425433
endef
426434
Package/zabbix-server-openssl/install = $(Package/zabbix-server/install)
427435
Package/zabbix-server-gnutls/install = $(Package/zabbix-server/install)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fs.file-max=100000
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
config zabbix_server 'general'
3+
option enabled 0
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/sh /etc/rc.common
2+
# Copyright (C) 2008-2025 OpenWrt.org
3+
4+
START=59
5+
6+
USE_PROCD=1
7+
8+
NAME=zabbix_server
9+
PROG=/usr/sbin/${NAME}
10+
CONFIG=/etc/zabbix_server.conf
11+
12+
start_service() {
13+
if [ -z "${CONFIG}" ]; then
14+
logger "Missing configuration '${CONFIG}'"
15+
exit 1
16+
fi
17+
18+
# Get enabled config option
19+
config_load "$NAME"
20+
config_get_bool enabled general enabled 0
21+
22+
# shellcheck disable=SC2154
23+
if [ "$enabled" -eq 0 ]; then
24+
logger "service not enabled in /etc/config/$NAME"
25+
exit 1
26+
fi
27+
28+
mkdir -p /var/run/zabbix
29+
chown zabbix:zabbix /var/run/zabbix
30+
chown zabbix:zabbix ${CONFIG}
31+
32+
procd_open_instance
33+
procd_set_param command ${PROG} -c ${CONFIG} -f
34+
procd_set_param user zabbix
35+
procd_set_param limits nofile="16384 100000"
36+
procd_set_param file /etc/zabbix_server.conf
37+
procd_set_param respawn
38+
procd_set_param stdout 1
39+
procd_set_param stderr 1
40+
procd_close_instance
41+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--- a/conf/zabbix_server.conf
2+
+++ b/conf/zabbix_server.conf
3+
@@ -27,6 +27,7 @@
4+
# Mandatory: no
5+
# Default:
6+
# LogType=file
7+
+LogType=system
8+
9+
### Option: LogFile
10+
# Log file name for LogType 'file' parameter.
11+
@@ -35,7 +36,7 @@
12+
# Default:
13+
# LogFile=
14+
15+
-LogFile=/tmp/zabbix_server.log
16+
+# LogFile=/tmp/zabbix_server.log
17+
18+
### Option: LogFileSize
19+
# Maximum size of log file in MB.
20+
@@ -45,6 +46,7 @@ LogFile=/tmp/zabbix_server.log
21+
# Range: 0-1024
22+
# Default:
23+
# LogFileSize=1
24+
+LogFileSize=0
25+
26+
### Option: DebugLevel
27+
# Specifies debug level:
28+
@@ -67,6 +69,10 @@ LogFile=/tmp/zabbix_server.log
29+
# Default:
30+
# PidFile=/tmp/zabbix_server.pid
31+
32+
+# Although procd does not require a pid file, zabbix uses the pidfile to
33+
+# correctly shutdown on receipt of a TERM or INT signal.
34+
+PidFile=/var/run/zabbix/zabbix_server.pid
35+
+
36+
### Option: SocketDir
37+
# IPC socket directory.
38+
# Directory to store IPC sockets used by internal Zabbix services.

0 commit comments

Comments
 (0)