diff --git a/admin/zabbix/Makefile b/admin/zabbix/Makefile index 99ded40d5ec7a2..dd91b5121fd59b 100644 --- a/admin/zabbix/Makefile +++ b/admin/zabbix/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zabbix PKG_VERSION:=7.0.12 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://cdn.zabbix.com/zabbix/sources/stable/$(basename $(PKG_VERSION))/ \ @@ -194,6 +194,7 @@ define Package/zabbix-server-frontend +php8-mod-gd \ +php8-mod-bcmath \ +php8-mod-ctype \ + +php8-mod-filter \ +php8-mod-xmlreader \ +php8-mod-xmlwriter \ +php8-mod-session \ @@ -334,6 +335,8 @@ Package/zabbix-agentd-gnutls/conffiles = $(Package/zabbix-agentd/conffiles) define Package/zabbix-server/conffiles /etc/zabbix_server.conf +/etc/config/zabbix_server +/etc/sysctl.d/90-zabbix-discovery-workers.conf endef Package/zabbix-server-openssl/conffiles = $(Package/zabbix-server/conffiles) Package/zabbix-server-gnutls/conffiles = $(Package/zabbix-server/conffiles) @@ -422,6 +425,12 @@ Package/zabbix-get-gnutls/install = $(Package/zabbix-get/install) define Package/zabbix-server/install $(call Package/zabbix/install/sbin,$(1),server) $(call Package/zabbix/install/etc,$(1),server) + $(call Package/zabbix/install/init.d,$(1),server) + + $(INSTALL_DIR) $(1)/etc/sysctl.d + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_CONF) ./files/zabbix-discovery-workers.conf.sysctl $(1)/etc/sysctl.d/90-zabbix-discovery-workers.conf + $(INSTALL_CONF) files/zabbix_server.config $(1)/etc/config/zabbix_server endef Package/zabbix-server-openssl/install = $(Package/zabbix-server/install) Package/zabbix-server-gnutls/install = $(Package/zabbix-server/install) diff --git a/admin/zabbix/files/zabbix-discovery-workers.conf.sysctl b/admin/zabbix/files/zabbix-discovery-workers.conf.sysctl new file mode 100644 index 00000000000000..e88c23943f991b --- /dev/null +++ b/admin/zabbix/files/zabbix-discovery-workers.conf.sysctl @@ -0,0 +1 @@ +fs.file-max=100000 diff --git a/admin/zabbix/files/zabbix_server.config b/admin/zabbix/files/zabbix_server.config new file mode 100644 index 00000000000000..45e3f3062b0aba --- /dev/null +++ b/admin/zabbix/files/zabbix_server.config @@ -0,0 +1,3 @@ + +config zabbix_server 'general' + option enabled 0 diff --git a/admin/zabbix/files/zabbix_server.init b/admin/zabbix/files/zabbix_server.init new file mode 100755 index 00000000000000..7a96fdefbd0ff3 --- /dev/null +++ b/admin/zabbix/files/zabbix_server.init @@ -0,0 +1,41 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2008-2025 OpenWrt.org + +START=59 + +USE_PROCD=1 + +NAME=zabbix_server +PROG=/usr/sbin/${NAME} +CONFIG=/etc/zabbix_server.conf + +start_service() { + if [ -z "${CONFIG}" ]; then + logger "Missing configuration '${CONFIG}'" + exit 1 + fi + + # Get enabled config option + config_load "$NAME" + config_get_bool enabled general enabled 0 + + # shellcheck disable=SC2154 + if [ "$enabled" -eq 0 ]; then + logger "service not enabled in /etc/config/$NAME" + exit 1 + fi + + mkdir -p /var/run/zabbix + chown zabbix:zabbix /var/run/zabbix + chown zabbix:zabbix ${CONFIG} + + procd_open_instance + procd_set_param command ${PROG} -c ${CONFIG} -f + procd_set_param user zabbix + procd_set_param limits nofile="16384 100000" + procd_set_param file /etc/zabbix_server.conf + procd_set_param respawn + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance +} diff --git a/admin/zabbix/patches/020-change-server-config.patch b/admin/zabbix/patches/020-change-server-config.patch new file mode 100644 index 00000000000000..dec545f33016e8 --- /dev/null +++ b/admin/zabbix/patches/020-change-server-config.patch @@ -0,0 +1,38 @@ +--- a/conf/zabbix_server.conf ++++ b/conf/zabbix_server.conf +@@ -27,6 +27,7 @@ + # Mandatory: no + # Default: + # LogType=file ++LogType=system + + ### Option: LogFile + # Log file name for LogType 'file' parameter. +@@ -35,7 +36,7 @@ + # Default: + # LogFile= + +-LogFile=/tmp/zabbix_server.log ++# LogFile=/tmp/zabbix_server.log + + ### Option: LogFileSize + # Maximum size of log file in MB. +@@ -45,6 +46,7 @@ LogFile=/tmp/zabbix_server.log + # Range: 0-1024 + # Default: + # LogFileSize=1 ++LogFileSize=0 + + ### Option: DebugLevel + # Specifies debug level: +@@ -67,6 +69,10 @@ LogFile=/tmp/zabbix_server.log + # Default: + # PidFile=/tmp/zabbix_server.pid + ++# Although procd does not require a pid file, zabbix uses the pidfile to ++# correctly shutdown on receipt of a TERM or INT signal. ++PidFile=/var/run/zabbix/zabbix_server.pid ++ + ### Option: SocketDir + # IPC socket directory. + # Directory to store IPC sockets used by internal Zabbix services.