From 1c3a770c7788bdc1fda1c420d91467bb4a5c4c00 Mon Sep 17 00:00:00 2001 From: Fabian Arrotin Date: Jan 23 2021 15:59:42 +0000 Subject: Initial import of upstream zabbix 5.0.7 Signed-off-by: Fabian Arrotin --- diff --git a/.zabbix.metadata b/.zabbix.metadata new file mode 100644 index 0000000..58cdcd0 --- /dev/null +++ b/.zabbix.metadata @@ -0,0 +1 @@ +e725e21e6ee2b38a53b66ac9de24e5eaff03435a SOURCES/zabbix-5.0.7.tar.gz diff --git a/SOURCES/config.patch b/SOURCES/config.patch new file mode 100644 index 0000000..609dc06 --- /dev/null +++ b/SOURCES/config.patch @@ -0,0 +1,54 @@ +diff -urN 4.0.1.orig/ui/include/classes/core/CConfigFile.php 4.0.1/ui/include/classes/core/CConfigFile.php +--- 4.0.1.orig/ui/include/classes/core/CConfigFile.php 2018-10-29 19:00:25.270221980 +0200 ++++ 4.0.1/ui/include/classes/core/CConfigFile.php 2018-10-29 19:00:54.666586770 +0200 +@@ -24,7 +24,7 @@ + const CONFIG_NOT_FOUND = 1; + const CONFIG_ERROR = 2; + +- const CONFIG_FILE_PATH = '/conf/zabbix.conf.php'; ++ const CONFIG_FILE_PATH = '/etc/zabbix/web/zabbix.conf.php'; + + private static $supported_db_types = [ + ZBX_DB_MYSQL => true, +diff -urN 4.0.1.orig/ui/include/classes/core/ZBase.php 4.0.1/ui/include/classes/core/ZBase.php +--- 4.0.1.orig/ui/include/classes/core/ZBase.php 2018-10-29 19:00:25.270221980 +0200 ++++ 4.0.1/ui/include/classes/core/ZBase.php 2018-10-29 19:00:36.450360730 +0200 +@@ -320,7 +320,7 @@ + * @throws Exception + */ + protected function setMaintenanceMode() { +- require_once 'conf/maintenance.inc.php'; ++ require_once '/etc/zabbix/web/maintenance.inc.php'; + + if (defined('ZBX_DENY_GUI_ACCESS')) { + if (!isset($ZBX_GUI_ACCESS_IP_RANGE) || !in_array(CWebUser::getIp(), $ZBX_GUI_ACCESS_IP_RANGE)) { +@@ -289,7 +289,7 @@ + * Load zabbix config file. + */ + protected function loadConfigFile() { +- $configFile = $this->getRootDir().CConfigFile::CONFIG_FILE_PATH; ++ $configFile = CConfigFile::CONFIG_FILE_PATH; + $config = new CConfigFile($configFile); + $this->config = $config->load(); + } +diff -urN 4.0.1.orig/ui/include/classes/setup/CSetupWizard.php 4.0.1/ui/include/classes/setup/CSetupWizard.php +--- 4.0.1.orig/ui/include/classes/setup/CSetupWizard.php 2018-10-29 19:00:25.274222030 +0200 ++++ 4.0.1/ui/include/classes/setup/CSetupWizard.php 2018-10-29 19:00:36.450360730 +0200 +@@ -336,7 +336,7 @@ + private function stage5(): array { + $this->setConfig('ZBX_CONFIG_FILE_CORRECT', true); + +- $config_file_name = APP::getInstance()->getRootDir().CConfigFile::CONFIG_FILE_PATH; ++ $config_file_name = CConfigFile::CONFIG_FILE_PATH; + $config = new CConfigFile($config_file_name); + $config->config = [ + 'DB' => [ +@@ -507,7 +507,7 @@ + // make zabbix.conf.php downloadable + header('Content-Type: application/x-httpd-php'); + header('Content-Disposition: attachment; filename="'.basename(CConfigFile::CONFIG_FILE_PATH).'"'); +- $config = new CConfigFile(APP::getInstance()->getRootDir().CConfigFile::CONFIG_FILE_PATH); ++ $config = new CConfigFile(CConfigFile::CONFIG_FILE_PATH); + $config->config = [ + 'DB' => [ + 'TYPE' => $this->getConfig('DB_TYPE'), diff --git a/SOURCES/fping3-sourceip-option.patch b/SOURCES/fping3-sourceip-option.patch new file mode 100644 index 0000000..542a698 --- /dev/null +++ b/SOURCES/fping3-sourceip-option.patch @@ -0,0 +1,39 @@ +diff -Nru zabbix-3.0.2.orig/src/libs/zbxicmpping/icmpping.c zabbix-3.0.2/src/libs/zbxicmpping/icmpping.c +--- zabbix-3.0.2.orig/src/libs/zbxicmpping/icmpping.c 2016-04-20 18:51:21.000000000 +0900 ++++ zabbix-3.0.2/src/libs/zbxicmpping/icmpping.c 2016-04-20 22:28:59.000000000 +0900 +@@ -42,34 +42,7 @@ + + static void get_source_ip_option(const char *fping, const char **option, unsigned char *checked) + { +- FILE *f; +- char *p, tmp[MAX_STRING_LEN]; +- +- zbx_snprintf(tmp, sizeof(tmp), "%s -h 2>&1", fping); +- +- if (NULL == (f = popen(tmp, "r"))) +- return; +- +- while (NULL != fgets(tmp, sizeof(tmp), f)) +- { +- for (p = tmp; isspace(*p); p++) +- ; +- +- if ('-' == p[0] && 'I' == p[1] && (isspace(p[2]) || ',' == p[2])) +- { +- *option = "-I"; +- continue; +- } +- +- if ('-' == p[0] && 'S' == p[1] && (isspace(p[2]) || ',' == p[2])) +- { +- *option = "-S"; +- break; +- } +- } +- +- pclose(f); +- ++ *option = "-S"; + *checked = 1; + } + diff --git a/SOURCES/zabbix-agent.init b/SOURCES/zabbix-agent.init new file mode 100644 index 0000000..7a2a6cb --- /dev/null +++ b/SOURCES/zabbix-agent.init @@ -0,0 +1,97 @@ +#!/bin/sh +# +# chkconfig: - 86 14 +# description: Zabbix agent daemon +# processname: zabbix_agentd +# config: /etc/zabbix/zabbix_agentd.conf +# + +### BEGIN INIT INFO +# Provides: zabbix-agent +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Should-Start: zabbix zabbix-proxy +# Should-Stop: zabbix zabbix-proxy +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Start and stop Zabbix agent +# Description: Zabbix agent +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -x /usr/sbin/zabbix_agentd ]; then + exec=/usr/sbin/zabbix_agentd +else + exit 5 +fi + +prog=${exec##*/} +conf=/etc/zabbix/zabbix_agentd.conf +pidfile=$(grep -e "^PidFile=.*$" $conf | cut -d= -f2 | tr -d '\r') +timeout=10 + +if [ -f /etc/sysconfig/zabbix-agent ]; then + . /etc/sysconfig/zabbix-agent +fi + +if [ -n "$ZABBIX_AGENT_USER" ]; then + user_conf="--user=$ZABBIX_AGENT_USER" +else + user_conf='' +fi + +lockfile=/var/lock/subsys/zabbix-agent + +start() +{ + echo -n $"Starting Zabbix agent: " + daemon $user_conf $exec -c $conf + rv=$? + echo + [ $rv -eq 0 ] && touch $lockfile + return $rv +} + +stop() +{ + echo -n $"Shutting down Zabbix agent: " + killproc -p $pidfile -d $timeout $prog + rv=$? + echo + [ $rv -eq 0 ] && rm -f $lockfile + return $rv +} + +restart() +{ + stop + start +} + +case "$1" in + start|stop|restart) + $1 + ;; + force-reload) + restart + ;; + status) + status -p $pidfile $prog + ;; + try-restart|condrestart) + if status $prog >/dev/null ; then + restart + fi + ;; + reload) + action $"Service ${0##*/} does not support the reload action: " /bin/false + exit 3 + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}" + exit 2 + ;; +esac + diff --git a/SOURCES/zabbix-agent.service b/SOURCES/zabbix-agent.service new file mode 100644 index 0000000..64a7dd0 --- /dev/null +++ b/SOURCES/zabbix-agent.service @@ -0,0 +1,20 @@ +[Unit] +Description=Zabbix Agent +After=syslog.target +After=network.target + +[Service] +Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf" +EnvironmentFile=-/etc/sysconfig/zabbix-agent +Type=forking +Restart=on-failure +PIDFile=/run/zabbix/zabbix_agentd.pid +KillMode=control-group +ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE +ExecStop=/bin/kill -SIGTERM $MAINPID +RestartSec=10s +User=zabbix +Group=zabbix + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/zabbix-agent.sysconfig b/SOURCES/zabbix-agent.sysconfig new file mode 100644 index 0000000..6ebb06b --- /dev/null +++ b/SOURCES/zabbix-agent.sysconfig @@ -0,0 +1,4 @@ +# Configuration file for /etc/init.d/zabbix-agent service + +# User to run zabbix agent as +ZABBIX_AGENT_USER=zabbix diff --git a/SOURCES/zabbix-agent2.init b/SOURCES/zabbix-agent2.init new file mode 100644 index 0000000..e7a0224 --- /dev/null +++ b/SOURCES/zabbix-agent2.init @@ -0,0 +1,97 @@ +#!/bin/sh +# +# chkconfig: - 86 14 +# description: Zabbix agent 2 daemon +# processname: zabbix_agent2 +# config: /etc/zabbix/zabbix_agent2.conf +# + +### BEGIN INIT INFO +# Provides: zabbix-agent2 +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Should-Start: zabbix zabbix-proxy +# Should-Stop: zabbix zabbix-proxy +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Start and stop Zabbix agent 2 +# Description: Zabbix agent 2 +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -x /usr/sbin/zabbix_agent2 ]; then + exec=/usr/sbin/zabbix_agent2 +else + exit 5 +fi + +prog=${exec##*/} +conf=/etc/zabbix/zabbix_agent2.conf +pidfile=$(grep -e "^PidFile=.*$" $conf | cut -d= -f2 | tr -d '\r') +timeout=10 + +if [ -f /etc/sysconfig/zabbix-agent2 ]; then + . /etc/sysconfig/zabbix-agent2 +fi + +if [ -n "$ZABBIX_AGENT_USER" ]; then + user_conf="--user=$ZABBIX_AGENT_USER" +else + user_conf='' +fi + +lockfile=/var/lock/subsys/zabbix-agent2 + +start() +{ + echo -n $"Starting Zabbix agent 2: " + daemon $user_conf $exec -c $conf & + rv=$? + echo + [ $rv -eq 0 ] && touch $lockfile + return $rv +} + +stop() +{ + echo -n $"Shutting down Zabbix agent 2: " + killproc -p $pidfile -d $timeout $prog + rv=$? + echo + [ $rv -eq 0 ] && rm -f $lockfile + return $rv +} + +restart() +{ + stop + start +} + +case "$1" in + start|stop|restart) + $1 + ;; + force-reload) + restart + ;; + status) + status -p $pidfile $prog + ;; + try-restart|condrestart) + if status $prog >/dev/null ; then + restart + fi + ;; + reload) + action $"Service ${0##*/} does not support the reload action: " /bin/false + exit 3 + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}" + exit 2 + ;; +esac + diff --git a/SOURCES/zabbix-agent2.service b/SOURCES/zabbix-agent2.service new file mode 100644 index 0000000..c7d0288 --- /dev/null +++ b/SOURCES/zabbix-agent2.service @@ -0,0 +1,20 @@ +[Unit] +Description=Zabbix Agent 2 +After=syslog.target +After=network.target + +[Service] +Environment="CONFFILE=/etc/zabbix/zabbix_agent2.conf" +EnvironmentFile=-/etc/sysconfig/zabbix-agent2 +Type=simple +Restart=on-failure +PIDFile=/run/zabbix/zabbix_agent2.pid +KillMode=control-group +ExecStart=/usr/sbin/zabbix_agent2 -c $CONFFILE +ExecStop=/bin/kill -SIGTERM $MAINPID +RestartSec=10s +User=zabbix +Group=zabbix + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/zabbix-agent2.sysconfig b/SOURCES/zabbix-agent2.sysconfig new file mode 100644 index 0000000..900743c --- /dev/null +++ b/SOURCES/zabbix-agent2.sysconfig @@ -0,0 +1,4 @@ +# Configuration file for /etc/init.d/zabbix-agent2 service + +# User to run zabbix agent as +ZABBIX_AGENT_USER=zabbix diff --git a/SOURCES/zabbix-java-gateway.init b/SOURCES/zabbix-java-gateway.init new file mode 100644 index 0000000..6c1b55e --- /dev/null +++ b/SOURCES/zabbix-java-gateway.init @@ -0,0 +1,134 @@ +#! /bin/sh +# +# chkconfig: - 85 15 +# description: zabbix java gateway +# + +### BEGIN INIT INFO +# Provides: zabbix +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: start and stop zabbix java gateway +# Description: Zabbix Java Gateway +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Source Zabbix Java Gateway configuration +. /etc/zabbix/zabbix_java_gateway.conf + +if [ -r "/etc/sysconfig/zabbix-java-gateway" ]; then + . /etc/sysconfig/zabbix-java-gateway +fi + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +RETVAL=0 +EXECDIR=/usr/sbin/zabbix_java + +case "$1" in + start) + echo -n "Starting zabbix java gateway: " + if [ -n "$PID_FILE" -a -e "$PID_FILE" ]; then + echo "zabbix java gateway is already running" + exit 1 + fi + + JAVA=${JAVA:-java} + + JAVA_OPTIONS="-server $JAVA_OPTIONS" + if [ -z "$PID_FILE" ]; then + JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=logback-console.xml" + fi + + cd $EXECDIR + + CLASSPATH="lib" + for jar in {lib,bin}/*.jar; do + if [[ $jar != *junit* ]]; then + CLASSPATH="$CLASSPATH:$jar" + fi + done + + if [ -n "$PID_FILE" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.pidFile=$PID_FILE" + fi + if [ -n "$LISTEN_IP" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenIP=$LISTEN_IP" + fi + if [ -n "$LISTEN_PORT" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenPort=$LISTEN_PORT" + fi + if [ -n "$START_POLLERS" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.startPollers=$START_POLLERS" + fi + if [ -n "$TIMEOUT" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.timeout=$TIMEOUT" + fi + + tcp_timeout=${TIMEOUT:=3}000 + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dsun.rmi.transport.tcp.responseTimeout=$tcp_timeout" + + COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway" + + if [ -n "$PID_FILE" ]; then + PID=$(su -s /bin/bash -c "$COMMAND_LINE > /dev/null 2>&1 & echo \$!" zabbix) + if ps -p $PID > /dev/null 2>&1; then + echo $PID > $PID_FILE + else + echo "zabbix java gateway did not start" + exit 1 + fi + else + exec $COMMAND_LINE + RETVAL=$? + fi + ;; + stop) + echo -n "Shutting down zabbix java gateway: " + if [ -n "$PID_FILE" ]; then + if [ -e "$PID_FILE" ]; then + kill `cat $PID_FILE` && rm $PID_FILE + else + echo "zabbix java gateway is not running" + exit 1 + fi + else + echo "zabbix java gateway is not configured as a daemon: variable \$PID_FILE is not set" + exit 1 + fi + ;; + restart) + $0 stop + $0 start + RETVAL=$? + ;; + condrestart) + if [ -n "$PID_FILE" -a -e "$PID_FILE" ]; then + $0 stop + $0 start + fi + RETVAL=$? + ;; + status) + status -p $PID_FILE $0 + RETVAL=$? + exit $RETVAL + ;; + *) + echo "Usage: $0 {start|stop|restart|condrestart|status}" + exit 1 + ;; +esac + +[ "$RETVAL" -eq 0 ] && success $"$base startup" || failure $"$base startup" +echo +exit $RETVAL + diff --git a/SOURCES/zabbix-java-gateway.service b/SOURCES/zabbix-java-gateway.service new file mode 100644 index 0000000..59a0b03 --- /dev/null +++ b/SOURCES/zabbix-java-gateway.service @@ -0,0 +1,16 @@ +[Unit] +Description=Zabbix Java Gateway +After=syslog.target +After=network.target + +[Service] +Type=forking +KillMode=process +PIDFile=/run/zabbix/zabbix_java.pid +ExecStart=/usr/sbin/zabbix_java_gateway +SuccessExitStatus=143 +User=zabbix +Group=zabbix + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/zabbix-logrotate.in b/SOURCES/zabbix-logrotate.in new file mode 100644 index 0000000..01cf6e2 --- /dev/null +++ b/SOURCES/zabbix-logrotate.in @@ -0,0 +1,9 @@ +/var/log/zabbix/zabbix_COMPONENT.log { + weekly + rotate 12 + compress + delaycompress + missingok + notifempty + create 0664 zabbix zabbix +} diff --git a/SOURCES/zabbix-nginx.conf b/SOURCES/zabbix-nginx.conf new file mode 100644 index 0000000..d68d3bc --- /dev/null +++ b/SOURCES/zabbix-nginx.conf @@ -0,0 +1,56 @@ +server { +# listen 80; +# server_name example.com; + + root /usr/share/zabbix; + + index index.php; + + location = /favicon.ico { + log_not_found off; + } + + location / { + try_files $uri $uri/ =404; + } + + location /assets { + access_log off; + expires 10d; + } + + location ~ /\.ht { + deny all; + } + + location ~ /(api\/|conf[^\.]|include|locale) { + deny all; + return 404; + } + + location ~ [^/]\.php(/|$) { + fastcgi_pass unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + + fastcgi_param DOCUMENT_ROOT /usr/share/zabbix; + fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name; + fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name; + + include fastcgi_params; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + + fastcgi_intercept_errors on; + fastcgi_ignore_client_abort off; + fastcgi_connect_timeout 60; + fastcgi_send_timeout 180; + fastcgi_read_timeout 180; + fastcgi_buffer_size 128k; + fastcgi_buffers 4 256k; + fastcgi_busy_buffers_size 256k; + fastcgi_temp_file_write_size 256k; + } +} diff --git a/SOURCES/zabbix-php-fpm.conf b/SOURCES/zabbix-php-fpm.conf new file mode 100644 index 0000000..cb4b5e2 --- /dev/null +++ b/SOURCES/zabbix-php-fpm.conf @@ -0,0 +1,24 @@ +[zabbix] +user = apache +group = apache + +listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock +listen.acl_users = apache +listen.allowed_clients = 127.0.0.1 + +pm = dynamic +pm.max_children = 50 +pm.start_servers = 5 +pm.min_spare_servers = 5 +pm.max_spare_servers = 35 + +php_value[session.save_handler] = files +php_value[session.save_path] = /var/opt/rh/rh-php72/lib/php/session/ + +php_value[max_execution_time] = 300 +php_value[memory_limit] = 128M +php_value[post_max_size] = 16M +php_value[upload_max_filesize] = 2M +php_value[max_input_time] = 300 +php_value[max_input_vars] = 10000 +; php_value[date.timezone] = Europe/Riga diff --git a/SOURCES/zabbix-proxy.init b/SOURCES/zabbix-proxy.init new file mode 100644 index 0000000..d5741fa --- /dev/null +++ b/SOURCES/zabbix-proxy.init @@ -0,0 +1,88 @@ +#!/bin/sh +# +# chkconfig: - 85 15 +# description: Zabbix proxy daemon +# config: /etc/zabbix/zabbix_proxy.conf +# + +### BEGIN INIT INFO +# Provides: zabbix-proxy +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Start and stop Zabbix proxy +# Description: Zabbix proxy +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -x /usr/sbin/zabbix_proxy ]; then + exec=/usr/sbin/zabbix_proxy +else + exit 5 +fi + +prog=${exec##*/} +conf=/etc/zabbix/zabbix_proxy.conf +pidfile=$(grep -e "^PidFile=.*$" $conf | cut -d= -f2 | tr -d '\r') +timeout=10 + +if [ -f /etc/sysconfig/zabbix-proxy ]; then + . /etc/sysconfig/zabbix-proxy +fi + +lockfile=/var/lock/subsys/zabbix-proxy + +start() +{ + echo -n $"Starting Zabbix proxy: " + daemon $exec -c $conf + rv=$? + echo + [ $rv -eq 0 ] && touch $lockfile + return $rv +} + +stop() +{ + echo -n $"Shutting down Zabbix proxy: " + killproc -p $pidfile -d $timeout $prog + rv=$? + echo + [ $rv -eq 0 ] && rm -f $lockfile + return $rv +} + +restart() +{ + stop + start +} + +case "$1" in + start|stop|restart) + $1 + ;; + force-reload) + restart + ;; + status) + status -p $pidfile $prog + ;; + try-restart|condrestart) + if status $prog >/dev/null ; then + restart + fi + ;; + reload) + action $"Service ${0##*/} does not support the reload action: " /bin/false + exit 3 + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}" + exit 2 + ;; +esac + diff --git a/SOURCES/zabbix-proxy.service b/SOURCES/zabbix-proxy.service new file mode 100644 index 0000000..784783b --- /dev/null +++ b/SOURCES/zabbix-proxy.service @@ -0,0 +1,30 @@ +[Unit] +Description=Zabbix Proxy +After=syslog.target +After=network.target +After=mysql.service +After=mysqld.service +After=mariadb.service +After=postgresql.service +After=pgbouncer.service +After=postgresql-9.4.service +After=postgresql-9.5.service +After=postgresql-9.6.service +After=postgresql-10.service +After=postgresql-11.service +After=postgresql-12.service + +[Service] +Environment="CONFFILE=/etc/zabbix/zabbix_proxy.conf" +EnvironmentFile=-/etc/sysconfig/zabbix-proxy +Type=forking +Restart=on-failure +PIDFile=/run/zabbix/zabbix_proxy.pid +KillMode=control-group +ExecStart=/usr/sbin/zabbix_proxy -c $CONFFILE +ExecStop=/bin/kill -SIGTERM $MAINPID +RestartSec=10s +TimeoutSec=0 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/zabbix-server.init b/SOURCES/zabbix-server.init new file mode 100644 index 0000000..b227b2c --- /dev/null +++ b/SOURCES/zabbix-server.init @@ -0,0 +1,88 @@ +#!/bin/sh +# +# chkconfig: - 85 15 +# description: Zabbix server daemon +# config: /etc/zabbix/zabbix_server.conf +# + +### BEGIN INIT INFO +# Provides: zabbix +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Start and stop Zabbix server +# Description: Zabbix server +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +if [ -x /usr/sbin/zabbix_server ]; then + exec=/usr/sbin/zabbix_server +else + exit 5 +fi + +prog=${exec##*/} +conf=/etc/zabbix/zabbix_server.conf +pidfile=$(grep -e "^PidFile=.*$" $conf | cut -d= -f2 | tr -d '\r') +timeout=10 + +if [ -f /etc/sysconfig/zabbix-server ]; then + . /etc/sysconfig/zabbix-server +fi + +lockfile=/var/lock/subsys/zabbix-server + +start() +{ + echo -n $"Starting Zabbix server: " + daemon $exec -c $conf + rv=$? + echo + [ $rv -eq 0 ] && touch $lockfile + return $rv +} + +stop() +{ + echo -n $"Shutting down Zabbix server: " + killproc -p $pidfile -d $timeout $prog + rv=$? + echo + [ $rv -eq 0 ] && rm -f $lockfile + return $rv +} + +restart() +{ + stop + start +} + +case "$1" in + start|stop|restart) + $1 + ;; + force-reload) + restart + ;; + status) + status -p $pidfile $prog + ;; + try-restart|condrestart) + if status $prog >/dev/null ; then + restart + fi + ;; + reload) + action $"Service ${0##*/} does not support the reload action: " /bin/false + exit 3 + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}" + exit 2 + ;; +esac + diff --git a/SOURCES/zabbix-server.service b/SOURCES/zabbix-server.service new file mode 100644 index 0000000..9c56a31 --- /dev/null +++ b/SOURCES/zabbix-server.service @@ -0,0 +1,30 @@ +[Unit] +Description=Zabbix Server +After=syslog.target +After=network.target +After=mysql.service +After=mysqld.service +After=mariadb.service +After=postgresql.service +After=pgbouncer.service +After=postgresql-9.4.service +After=postgresql-9.5.service +After=postgresql-9.6.service +After=postgresql-10.service +After=postgresql-11.service +After=postgresql-12.service + +[Service] +Environment="CONFFILE=/etc/zabbix/zabbix_server.conf" +EnvironmentFile=-/etc/sysconfig/zabbix-server +Type=forking +Restart=on-failure +PIDFile=/run/zabbix/zabbix_server.pid +KillMode=control-group +ExecStart=/usr/sbin/zabbix_server -c $CONFFILE +ExecStop=/bin/kill -SIGTERM $MAINPID +RestartSec=10s +TimeoutSec=0 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/zabbix-tmpfiles.conf b/SOURCES/zabbix-tmpfiles.conf new file mode 100644 index 0000000..815ca92 --- /dev/null +++ b/SOURCES/zabbix-tmpfiles.conf @@ -0,0 +1 @@ +d /run/zabbix 0755 zabbix zabbix - - diff --git a/SOURCES/zabbix-web-fcgi.conf b/SOURCES/zabbix-web-fcgi.conf new file mode 100644 index 0000000..0716fe3 --- /dev/null +++ b/SOURCES/zabbix-web-fcgi.conf @@ -0,0 +1,35 @@ +# +# Zabbix monitoring system php web frontend +# + +Alias /zabbix /usr/share/zabbix + + + Options FollowSymLinks + AllowOverride None + Require all granted + + + DirectoryIndex index.php + + + + SetHandler "proxy:unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock|fcgi://localhost" + + + + + Require all denied + + + + Require all denied + + + + Require all denied + + + + Require all denied + diff --git a/SOURCES/zabbix-web22.conf b/SOURCES/zabbix-web22.conf new file mode 100644 index 0000000..6388fa6 --- /dev/null +++ b/SOURCES/zabbix-web22.conf @@ -0,0 +1,59 @@ +# +# Zabbix monitoring system php web frontend +# + +Alias /zabbix /usr/share/zabbix + + + Options FollowSymLinks + AllowOverride None + Order allow,deny + Allow from all + + + php_value max_execution_time 300 + php_value memory_limit 128M + php_value post_max_size 16M + php_value upload_max_filesize 2M + php_value max_input_time 300 + php_value max_input_vars 10000 + php_value always_populate_raw_post_data -1 + # php_value date.timezone Europe/Riga + + + + + Order deny,allow + Deny from all + + Order deny,allow + Deny from all + + + + + Order deny,allow + Deny from all + + Order deny,allow + Deny from all + + + + + Order deny,allow + Deny from all + + Order deny,allow + Deny from all + + + + + Order deny,allow + Deny from all + + Order deny,allow + Deny from all + + diff --git a/SOURCES/zabbix-web24.conf b/SOURCES/zabbix-web24.conf new file mode 100644 index 0000000..110d6e2 --- /dev/null +++ b/SOURCES/zabbix-web24.conf @@ -0,0 +1,38 @@ +# +# Zabbix monitoring system php web frontend +# + +Alias /zabbix /usr/share/zabbix + + + Options FollowSymLinks + AllowOverride None + Require all granted + + + php_value max_execution_time 300 + php_value memory_limit 128M + php_value post_max_size 16M + php_value upload_max_filesize 2M + php_value max_input_time 300 + php_value max_input_vars 10000 + php_value always_populate_raw_post_data -1 + # php_value date.timezone Europe/Riga + + + + + Require all denied + + + + Require all denied + + + + Require all denied + + + + Require all denied + diff --git a/SOURCES/zabbix_java_gateway-sysd b/SOURCES/zabbix_java_gateway-sysd new file mode 100644 index 0000000..ee8e332 --- /dev/null +++ b/SOURCES/zabbix_java_gateway-sysd @@ -0,0 +1,85 @@ +#!/bin/bash + +if [ -r /etc/zabbix/zabbix_java_gateway.conf ]; then + . /etc/zabbix/zabbix_java_gateway.conf +fi + +if [ -z $GATEWAY_HOME ]; then + GATEWAY_HOME="/usr/share/zabbix-java-gateway" +fi + +if [ -r "/etc/sysconfig/zabbix-java-gateway" ]; then + . /etc/sysconfig/zabbix-java-gateway +fi + +if [ -n "$PID_FILE" -a -f "$PID_FILE" ]; then + PID=`cat "$PID_FILE"` + if ps -p "$PID" > /dev/null 2>&1; then + echo "Zabbix Java Gateway is already running" + exit 1 + fi + rm -f "$PID_FILE" +fi + +JAVA=${JAVA:-java} +JAVA_OPTIONS="-server $JAVA_OPTIONS" +JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" + +cd $GATEWAY_HOME + +CLASSPATH="lib" +for jar in lib/*.jar bin/*.jar; do + CLASSPATH="$CLASSPATH:$jar" +done + +if [ -n "$PID_FILE" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.pidFile=$PID_FILE" +fi +if [ -n "$LISTEN_IP" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenIP=$LISTEN_IP" +fi +if [ -n "$LISTEN_PORT" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenPort=$LISTEN_PORT" +fi +if [ -n "$START_POLLERS" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.startPollers=$START_POLLERS" +fi +if [ -n "$TIMEOUT" ]; then + ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.timeout=$TIMEOUT" +fi + +tcp_timeout=${TIMEOUT:=3}000 +ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dsun.rmi.transport.tcp.responseTimeout=$tcp_timeout" + +COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway" + +if [ -n "$PID_FILE" ]; then + + # check that the PID file can be created + + touch "$PID_FILE" + if [ $? -ne 0 ]; then + echo "Zabbix Java Gateway did not start: cannot create PID file" + exit 1 + fi + + # start the gateway and output pretty errors to the console + + STDOUT=`$COMMAND_LINE & echo $! > "$PID_FILE"` + if [ -n "$STDOUT" ]; then + echo "$STDOUT" + fi + + # verify that the gateway started successfully + + PID=`cat "$PID_FILE"` + ps -p "$PID" > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Zabbix Java Gateway did not start" + rm -f "$PID_FILE" + exit 1 + fi + +else + exec $COMMAND_LINE +fi diff --git a/SPECS/zabbix.spec b/SPECS/zabbix.spec new file mode 100644 index 0000000..feeb5e0 --- /dev/null +++ b/SPECS/zabbix.spec @@ -0,0 +1,1515 @@ +Name: zabbix +Version: 5.0.7 +Release: %{?alphatag:0.}1%{?alphatag}%{?dist} +Summary: The Enterprise-class open source monitoring solution +Group: Applications/Internet +License: GPLv2+ +URL: http://www.zabbix.com/ +Source0: %{name}-%{version}%{?alphatag}.tar.gz +Source1: zabbix-web22.conf +Source2: zabbix-web24.conf +Source3: zabbix-logrotate.in +Source4: zabbix-java-gateway.init +Source5: zabbix-agent.init +Source6: zabbix-server.init +Source7: zabbix-proxy.init +Source10: zabbix-agent.service +Source11: zabbix-server.service +Source12: zabbix-proxy.service +Source13: zabbix-java-gateway.service +Source14: zabbix_java_gateway-sysd +Source15: zabbix-tmpfiles.conf +Source16: zabbix-php-fpm.conf +Source17: zabbix-web-fcgi.conf +Source18: zabbix-nginx.conf +Source19: zabbix-agent2.service +Source20: zabbix-agent.sysconfig +Source21: zabbix-agent2.init +Source22: zabbix-agent2.sysconfig +Patch0: config.patch +Patch1: fping3-sourceip-option.patch + + +Buildroot: %{_tmppath}/zabbix-%{version}-%{release}-root-%(%{__id_u} -n) + +%ifarch x86_64 +%if 0%{?rhel} >= 6 +%define build_agent2 1 +%endif +%endif + +# FIXME: Building debuginfo is broken on RHEL-8. Disabled for now. +%if 0%{?rhel} == 8 +%define debug_package %{nil} +%endif + +BuildRequires: make +%if 0%{?rhel} >= 7 +BuildRequires: systemd +%if 0%{?rhel} >= 8 +BuildRequires: mariadb-connector-c-devel +BuildRequires: libssh-devel >= 0.9.0 +BuildRequires: postgresql-devel >= 12.0 +%else +BuildRequires: mysql-devel >= 5.5 +BuildRequires: libssh2-devel >= 1.0.0 +BuildRequires: postgresql-devel +%endif +BuildRequires: sqlite-devel +%endif +BuildRequires: net-snmp-devel +BuildRequires: openldap-devel +BuildRequires: gnutls-devel +BuildRequires: unixODBC-devel +BuildRequires: curl-devel >= 7.13.1 +BuildRequires: OpenIPMI-devel >= 2 +BuildRequires: java-devel >= 1.6.0 +BuildRequires: libxml2-devel +BuildRequires: pcre-devel +BuildRequires: libevent-devel +%if 0%{?rhel} >= 6 +BuildRequires: openssl-devel >= 1.0.1 +%endif + +%description +Zabbix is the ultimate enterprise-level software designed for +real-time monitoring of millions of metrics collected from tens of +thousands of servers, virtual machines and network devices. + +%package agent +Summary: Old Zabbix Agent +Group: Applications/Internet +Requires: logrotate +Requires(pre): /usr/sbin/useradd +%if 0%{?rhel} >= 7 +Requires(post): systemd +Requires(preun): systemd +Requires(preun): systemd +%else +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +%endif +Obsoletes: zabbix + +%if 0%{?build_agent2} != 1 +%description agent +Zabbix agent to be installed on monitored systems. + +%else +%description agent +Old implementation of zabbix agent. +To be installed on monitored systems. + +%package agent2 +Summary: New Zabbix Agent +Group: Applications/Internet +Requires: logrotate +%if 0%{?rhel} >= 7 +Requires(post): systemd +Requires(preun): systemd +Requires(preun): systemd +%else +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +%endif +Obsoletes: zabbix + +%description agent2 +New implementation of zabbix agent. +To be installed on monitored systems. +%endif + +%package get +Summary: Zabbix Get +Group: Applications/Internet + +%description get +Zabbix get command line utility. + +%package sender +Summary: Zabbix Sender +Group: Applications/Internet + +%description sender +Zabbix sender command line utility. + +%if 0%{?rhel} >= 7 +%package js +Summary: Zabbix JS +Group: Applications/Internet + +%description js +Zabbix js command line utility. + +%package proxy-mysql +Summary: Zabbix proxy for MySQL or MariaDB database +Group: Applications/Internet +Requires: fping +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Provides: zabbix-proxy = %{version}-%{release} +Provides: zabbix-proxy-implementation = %{version}-%{release} +Obsoletes: zabbix +Obsoletes: zabbix-proxy + +%description proxy-mysql +Zabbix proxy with MySQL or MariaDB database support. + +%package proxy-pgsql +Summary: Zabbix proxy for PostgreSQL database +Group: Applications/Internet +Requires: fping +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Provides: zabbix-proxy = %{version}-%{release} +Provides: zabbix-proxy-implementation = %{version}-%{release} +Obsoletes: zabbix +Obsoletes: zabbix-proxy + +%description proxy-pgsql +Zabbix proxy with PostgreSQL database support. + +%package proxy-sqlite3 +Summary: Zabbix proxy for SQLite3 database +Group: Applications/Internet +Requires: fping +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Provides: zabbix-proxy = %{version}-%{release} +Provides: zabbix-proxy-implementation = %{version}-%{release} +Obsoletes: zabbix +Obsoletes: zabbix-proxy + +%description proxy-sqlite3 +Zabbix proxy with SQLite3 database support. + +%package server-mysql +Summary: Zabbix server for MySQL or MariaDB database +Group: Applications/Internet +Requires: fping +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Provides: zabbix-server = %{version}-%{release} +Provides: zabbix-server-implementation = %{version}-%{release} +Obsoletes: zabbix +Obsoletes: zabbix-server + +%description server-mysql +Zabbix server with MySQL or MariaDB database support. + +%package server-pgsql +Summary: Zabbix server for PostgresSQL database +Group: Applications/Internet +Requires: fping +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +Provides: zabbix-server = %{version}-%{release} +Provides: zabbix-server-implementation = %{version}-%{release} +Obsoletes: zabbix +Obsoletes: zabbix-server +%description server-pgsql +Zabbix server with PostgresSQL database support. + +%package web +Summary: Zabbix web frontend common package +Group: Application/Internet +BuildArch: noarch +Requires: dejavu-sans-fonts +Requires(post): %{_sbindir}/update-alternatives +Requires(preun): %{_sbindir}/update-alternatives + +%if 0%{?rhel} >= 8 +%description web +Zabbix web frontend common package +%endif + +%if 0%{?rhel} == 7 +%description web +Zabbix web frontend common package + +Due to lack of official php7.2+ packages on RHEL/CentOS 7, +direct dependencies on php and it's modules have been removed from zabbix-web package. + +Suggest enabling redhat software collections repositories +and installing zabbix-web-mysql-scl or zabbix-web-pgsql-scl package. +%endif + +%if 0%{?rhel} >= 8 +%package web-deps +Summary: PHP dependencies metapackage for frontend +Requires: php-gd >= 7.2 +Requires: php-bcmath >= 7.2 +Requires: php-mbstring >= 7.2 +Requires: php-xml >= 7.2 +Requires: php-ldap >= 7.2 +Requires: php-json >= 7.2 +Requires: php-fpm >= 7.2 +Requires: zabbix-web = %{version}-%{release} +Requires: zabbix-web-database = %{version}-%{release} + +%description web-deps +PHP dependencies metapackage for frontend + +%package web-mysql +Summary: Zabbix web frontend for MySQL +Group: Applications/Internet +BuildArch: noarch +Requires: php-mysqlnd +Requires: zabbix-web = %{version}-%{release} +Requires: zabbix-web-deps = %{version}-%{release} +Provides: zabbix-web-database = %{version}-%{release} + +%description web-mysql +Zabbix web frontend for MySQL + +%package web-pgsql +Summary: Zabbix web frontend for PostgreSQL +Group: Applications/Internet +BuildArch: noarch +Requires: php-pgsql +Requires: zabbix-web = %{version}-%{release} +Requires: zabbix-web-deps = %{version}-%{release} +Provides: zabbix-web-database = %{version}-%{release} + +%description web-pgsql +Zabbix web frontend for PostgreSQL + +%package apache-conf +Summary: Automatic zabbix frontend configuration with apache +Group: Applications/Internet +BuildArch: noarch +Requires: zabbix-web-deps = %{version}-%{release} +Requires: httpd + +%description apache-conf +Zabbix frontend configuration for apache + +%package nginx-conf +Summary: Zabbix frontend configuration for nginx and php-fpm +Group: Applications/Internet +BuildArch: noarch +Requires: zabbix-web-deps = %{version}-%{release} +Requires: nginx + +%description nginx-conf +Zabbix frontend configuration for nginx and php-fpm +%endif +# rhel >= 8 + +%package web-japanese +Summary: Japanese font settings for Zabbix frontend +Group: Applications/Internet +BuildArch: noarch +%if 0%{?rhel} >= 8 +Requires: google-noto-sans-cjk-ttc-fonts +Requires: glibc-langpack-ja +%else +Requires: vlgothic-p-fonts +%endif +Requires: zabbix-web = %{version}-%{release} +Requires(post): %{_sbindir}/update-alternatives +Requires(preun): %{_sbindir}/update-alternatives + +%description web-japanese +Japanese font configuration for Zabbix web frontend + +%if 0%{?rhel} == 7 +%package web-deps-scl +Summary: Convenience package for installing php dependencies of zabbix-web package from redhat software collections +Group: Applications/Internet +BuildArch: noarch +Requires: rh-php72 +Requires: rh-php72-php-gd +Requires: rh-php72-php-bcmath +Requires: rh-php72-php-mbstring +Requires: rh-php72-php-xml +Requires: rh-php72-php-ldap +Requires: rh-php72-php-fpm +Requires: zabbix-web-database-scl = %{version}-%{release} + +%description web-deps-scl +Convenience package for installing php dependencies of zabbix-web package from redhat software collections + +%package web-mysql-scl +Summary: Zabbix web frontend for MySQL (scl version) +Group: Applications/Internet +BuildArch: noarch +Requires: rh-php72-php-mysqlnd +Requires: zabbix-web = %{version}-%{release} +Requires: zabbix-web-deps-scl = %{version}-%{release} +Provides: zabbix-web-database-scl = %{version}-%{release} + +%description web-mysql-scl +Convenience package for installing zabbix-web-mysql, and php dependencies from redhat software collections + +%package web-pgsql-scl +Summary: Zabbix web frontend for PostgreSQL (scl version) +Group: Applications/Internet +BuildArch: noarch +Requires: rh-php72-php-pgsql +Requires: zabbix-web = %{version}-%{release} +Requires: zabbix-web-deps-scl = %{version}-%{release} +Provides: zabbix-web-database-scl = %{version}-%{release} + +%description web-pgsql-scl +Convenience package for installing zabbix-web-pgsql, and php dependencies from redhat software collections + +%package apache-conf-scl +Summary: Zabbix frontend configuration for apache (scl version) +Group: Applications/Internet +BuildArch: noarch +Requires: zabbix-web-deps-scl = %{version}-%{release} +Requires: httpd + +%description apache-conf-scl +Zabbix frontend configuration for apache (scl version) + +%package nginx-conf-scl +Summary: Zabbix frontend configuration for nginx (scl version) +Group: Applications/Internet +BuildArch: noarch +Requires: zabbix-web-deps-scl = %{version}-%{release} +Requires: rh-nginx116-nginx + +%description nginx-conf-scl +Zabbix frontend configuration for nginx (scl version) +%endif +# rhel == 7 + +%package java-gateway +Summary: Zabbix java gateway +Group: Applications/Internet +%if 0%{?rhel} >= 7 +Requires: java-headless >= 1.6.0 +%else +Requires: java >= 1.6.0 +%endif +%if 0%{?rhel} >= 7 +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(preun): /sbin/service +Requires(postun): /sbin/service +%endif +Obsoletes: zabbix + +%description java-gateway +Zabbix java gateway +%endif +# rhel >= 7 + +%prep +%setup0 -q -n %{name}-%{version}%{?alphatag} +%patch0 -p1 +%if 0%{?rhel} >= 7 +%patch1 -p1 +%endif + +## remove font file +rm -f ui/assets/fonts/DejaVuSans.ttf + +# replace font in defines.inc.php +sed -i -r "s/(define\(.*_FONT_NAME.*)DejaVuSans/\1graphfont/" \ + ui/include/defines.inc.php + +# remove .htaccess files +rm -f ui/app/.htaccess +rm -f ui/conf/.htaccess +rm -f ui/include/.htaccess +rm -f ui/local/.htaccess + +# remove translation source files and scripts +find ui/locale -name '*.po' | xargs rm -f +find ui/locale -name '*.sh' | xargs rm -f + +# traceroute command path for global script +sed -i -e 's|/usr/bin/traceroute|/bin/traceroute|' database/mysql/data.sql +sed -i -e 's|/usr/bin/traceroute|/bin/traceroute|' database/postgresql/data.sql +sed -i -e 's|/usr/bin/traceroute|/bin/traceroute|' database/sqlite3/data.sql + +# change log directory for Java Gateway +sed -i -e 's|/tmp/zabbix_java.log|/var/log/zabbix/zabbix_java_gateway.log|g' src/zabbix_java/lib/logback.xml + +%if 0%{?rhel} >= 7 +# copy sql files for servers +cat database/mysql/schema.sql > database/mysql/create.sql +cat database/mysql/images.sql >> database/mysql/create.sql +cat database/mysql/data.sql >> database/mysql/create.sql +gzip database/mysql/create.sql + +cat database/postgresql/schema.sql > database/postgresql/create.sql +cat database/postgresql/images.sql >> database/postgresql/create.sql +cat database/postgresql/data.sql >> database/postgresql/create.sql +gzip database/postgresql/create.sql +gzip database/postgresql/timescaledb.sql + +# sql files for proxyes +gzip database/mysql/schema.sql +gzip database/postgresql/schema.sql +gzip database/sqlite3/schema.sql +%endif + +%build + +build_flags=" + --enable-dependency-tracking + --sysconfdir=/etc/zabbix + --libdir=%{_libdir}/zabbix + --enable-agent +%if 0%{?build_agent2} + --enable-agent2 +%endif + --enable-ipv6 + --with-net-snmp + --with-ldap + --with-libcurl + --with-openipmi + --with-unixodbc +%if 0%{?rhel} >= 8 + --with-ssh +%else + --with-ssh2 +%endif + --with-libxml2 + --with-libevent + --with-libpcre +" + +%if 0%{?rhel} >= 6 +build_flags="$build_flags --with-openssl" +%endif + +%if 0%{?rhel} >= 7 +%configure $build_flags --enable-proxy --with-sqlite3 +make %{?_smp_mflags} +mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_sqlite3 + +build_flags="$build_flags --enable-server --enable-proxy --enable-java" + +%configure $build_flags --with-mysql +make %{?_smp_mflags} +mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_mysql +mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_mysql + +%configure $build_flags --with-postgresql +make %{?_smp_mflags} +mv src/zabbix_server/zabbix_server src/zabbix_server/zabbix_server_pgsql +mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_pgsql + +touch src/zabbix_server/zabbix_server +touch src/zabbix_proxy/zabbix_proxy +%else +%configure $build_flags +%endif + +%install + +rm -rf $RPM_BUILD_ROOT + +# install +%if 0%{?build_agent2} +make DESTDIR=$RPM_BUILD_ROOT GOBIN=$RPM_BUILD_ROOT%{_sbindir} install +%else +make DESTDIR=$RPM_BUILD_ROOT install +%endif + +# install necessary directories +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/zabbix + +# install server and proxy binaries +%if 0%{?rhel} >= 7 +install -m 0755 -p src/zabbix_server/zabbix_server_* $RPM_BUILD_ROOT%{_sbindir}/ +rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_server +install -m 0755 -p src/zabbix_proxy/zabbix_proxy_* $RPM_BUILD_ROOT%{_sbindir}/ +rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy + +# delete unnecessary files from java gateway +rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/settings.sh +rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/startup.sh +rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/shutdown.sh + +# install scripts and modules directories +mkdir -p $RPM_BUILD_ROOT/usr/lib/zabbix +mv $RPM_BUILD_ROOT%{_datadir}/zabbix/alertscripts $RPM_BUILD_ROOT/usr/lib/zabbix +mv $RPM_BUILD_ROOT%{_datadir}/zabbix/externalscripts $RPM_BUILD_ROOT/usr/lib/zabbix + +mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT/%{_sysconfdir}/zabbix/zabbix_java_gateway_logback.xml +rm $RPM_BUILD_ROOT%{_sbindir}/zabbix_java/lib/logback-console.xml +mv $RPM_BUILD_ROOT%{_sbindir}/zabbix_java $RPM_BUILD_ROOT/%{_datadir}/zabbix-java-gateway +install -m 0755 -p %{SOURCE14} $RPM_BUILD_ROOT%{_sbindir}/zabbix_java_gateway +%endif + +%if 0%{?rhel} >= 7 +# install frontend files +find ui -name '*.orig' | xargs rm -f +cp -a ui/* $RPM_BUILD_ROOT%{_datadir}/zabbix + +# install frontend configuration files +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/web +touch $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/web/zabbix.conf.php +mv $RPM_BUILD_ROOT%{_datadir}/zabbix/conf/maintenance.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/web/ + +# install web server config files +%if 0%{?rhel} >= 8 +install -Dm 0644 -p %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/zabbix.conf +install -Dm 0644 -p %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/nginx/conf.d/zabbix.conf +%endif + +%if 0%{?rhel} >= 7 +install -Dm 0644 -p %{SOURCE17} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/zabbix.conf +%endif + +%if 0%{?rhel} == 7 +install -Dm 0644 -p %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/opt/rh/rh-php72/php-fpm.d/zabbix.conf +install -Dm 0644 -p %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf +%endif + +mv $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_proxy.conf.d $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_proxy.d +mv $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_server.conf.d $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_server.d +%endif + +# install configuration files +mv $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agentd.conf.d $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agentd.d +%if 0%{?build_agent2} +mkdir $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agent2.d +%endif + +install -dm 755 $RPM_BUILD_ROOT%{_docdir}/zabbix-agent-%{version} + +cat conf/zabbix_agentd.conf | sed \ + -e '/^# PidFile=/a \\nPidFile=%{_localstatedir}/run/zabbix/zabbix_agentd.pid' \ + -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_agentd.log|g' \ + -e '/^# LogFileSize=.*/a \\nLogFileSize=0' \ + -e '/^# Include=$/a \\nInclude=%{_sysconfdir}/zabbix/zabbix_agentd.d/*.conf' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agentd.conf + + +%if 0%{?build_agent2} +cat src/go/conf/zabbix_agent2.conf | sed \ + -e '/^# PidFile=/a \\nPidFile=%{_localstatedir}/run/zabbix/zabbix_agent2.pid' \ + -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_agent2.log|g' \ + -e '/^# LogFileSize=.*/a \\nLogFileSize=0' \ + -e '/^# Include=$/a \\nInclude=%{_sysconfdir}/zabbix/zabbix_agent2.d/*.conf' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_agent2.conf + +cp man/zabbix_agent2.man $RPM_BUILD_ROOT%{_mandir}/man8/zabbix_agent2.8 +%endif + +%if 0%{?rhel} >= 7 +cat conf/zabbix_server.conf | sed \ + -e '/^# PidFile=/a \\nPidFile=%{_localstatedir}/run/zabbix/zabbix_server.pid' \ + -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_server.log|g' \ + -e '/^# LogFileSize=/a \\nLogFileSize=0' \ + -e '/^# AlertScriptsPath=/a \\nAlertScriptsPath=/usr/lib/zabbix/alertscripts' \ + -e '/^# ExternalScripts=/a \\nExternalScripts=/usr/lib/zabbix/externalscripts' \ + -e 's|^DBUser=root|DBUser=zabbix|g' \ + -e '/^# SNMPTrapperFile=.*/a \\nSNMPTrapperFile=/var/log/snmptrap/snmptrap.log' \ + -e '/^# SocketDir=.*/a \\nSocketDir=/var/run/zabbix' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_server.conf + +cat conf/zabbix_proxy.conf | sed \ + -e '/^# PidFile=/a \\nPidFile=%{_localstatedir}/run/zabbix/zabbix_proxy.pid' \ + -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_proxy.log|g' \ + -e '/^# LogFileSize=/a \\nLogFileSize=0' \ + -e '/^# ExternalScripts=/a \\nExternalScripts=/usr/lib/zabbix/externalscripts' \ + -e 's|^DBUser=root|DBUser=zabbix|g' \ + -e '/^# SNMPTrapperFile=.*/a \\nSNMPTrapperFile=/var/log/snmptrap/snmptrap.log' \ + -e '/^# SocketDir=.*/a \\nSocketDir=/var/run/zabbix' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_proxy.conf + +cat src/zabbix_java/settings.sh | sed \ + -e 's|^PID_FILE=.*|PID_FILE="/var/run/zabbix/zabbix_java.pid"|g' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/zabbix/zabbix_java_gateway.conf +%endif + +# install logrotate configuration files +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +%if 0%{?rhel} >= 7 +cat %{SOURCE3} | sed \ + -e 's|COMPONENT|server|g' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-server +cat %{SOURCE3} | sed \ + -e 's|COMPONENT|proxy|g' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-proxy +%endif +cat %{SOURCE3} | sed \ + -e 's|COMPONENT|agentd|g' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent +%if 0%{?build_agent2} +cat %{SOURCE3} | sed \ + -e 's|COMPONENT|agent2|g' \ + > $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent2 +%endif + +# install startup scripts +%if 0%{?rhel} >= 7 +install -Dm 0644 -p %{SOURCE10} $RPM_BUILD_ROOT%{_unitdir}/zabbix-agent.service +install -Dm 0644 -p %{SOURCE11} $RPM_BUILD_ROOT%{_unitdir}/zabbix-server.service +install -Dm 0644 -p %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/zabbix-proxy.service +install -Dm 0644 -p %{SOURCE13} $RPM_BUILD_ROOT%{_unitdir}/zabbix-java-gateway.service +%else +install -Dm 0755 -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/zabbix-agent +%endif + +%if 0%{?build_agent2} +%if 0%{?rhel} >= 7 +install -Dm 0644 -p %{SOURCE19} $RPM_BUILD_ROOT%{_unitdir}/zabbix-agent2.service +%else +install -Dm 0755 -p %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/zabbix-agent2 +install -Dm 0644 -p %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/zabbix-agent2 +%endif +%endif + +%if 0%{?rhel} <= 6 +install -Dm 0644 -p %{SOURCE20} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/zabbix-agent +%endif + +# install systemd-tmpfiles conf +%if 0%{?rhel} >= 7 +install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbix-agent.conf +%if 0%{?build_agent2} +install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbix_agent2.conf +%endif +install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbix-server.conf +install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbix-proxy.conf +install -Dm 0644 -p %{SOURCE15} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/zabbix-java-gateway.conf +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre agent +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%post agent +%if 0%{?rhel} >= 7 +%systemd_post zabbix-agent.service +%else +/sbin/chkconfig --add zabbix-agent || : +%endif + +%posttrans agent +# preserve old userparameter_mysql.conf file during upgrade +if [ -f %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf.rpmsave ] && [ ! -f %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf ]; then + cp -vn %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf.rpmsave %{_sysconfdir}/zabbix/zabbix_agentd.d/userparameter_mysql.conf +fi +: + +%if 0%{?build_agent2} +%pre agent2 +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%post agent2 +%systemd_post zabbix-agent2.service +# make sure that agent2 log file is create with proper attributes (ZBX-18243) +if [ $1 == 1 ] && [ ! -f %{_localstatedir}/log/zabbix/zabbix_agent2.log ]; then + touch %{_localstatedir}/log/zabbix/zabbix_agent2.log + chown zabbix:zabbix %{_localstatedir}/log/zabbix/zabbix_agent2.log +fi +: +%endif + +%if 0%{?rhel} >= 7 +%pre java-gateway +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%pre proxy-mysql +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%pre proxy-pgsql +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%pre proxy-sqlite3 +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%pre server-mysql +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%pre server-pgsql +getent group zabbix > /dev/null || groupadd -r zabbix +getent passwd zabbix > /dev/null || \ + useradd -r -g zabbix -d %{_localstatedir}/lib/zabbix -s /sbin/nologin \ + -c "Zabbix Monitoring System" zabbix +: + +%post proxy-mysql +%systemd_post zabbix-proxy.service +/usr/sbin/update-alternatives --install %{_sbindir}/zabbix_proxy \ + zabbix-proxy %{_sbindir}/zabbix_proxy_mysql 10 +: + +%post proxy-pgsql +%systemd_post zabbix-proxy.service +/usr/sbin/update-alternatives --install %{_sbindir}/zabbix_proxy \ + zabbix-proxy %{_sbindir}/zabbix_proxy_pgsql 10 +: + +%post proxy-sqlite3 +%systemd_post zabbix-proxy.service +/usr/sbin/update-alternatives --install %{_sbindir}/zabbix_proxy \ + zabbix-proxy %{_sbindir}/zabbix_proxy_sqlite3 10 +: + +%post server-mysql +%systemd_post zabbix-server.service +/usr/sbin/update-alternatives --install %{_sbindir}/zabbix_server \ + zabbix-server %{_sbindir}/zabbix_server_mysql 10 +: + +%post server-pgsql +%systemd_post zabbix-server.service +/usr/sbin/update-alternatives --install %{_sbindir}/zabbix_server \ + zabbix-server %{_sbindir}/zabbix_server_pgsql 10 +: + +%post web +# The fonts directory was moved into assets subdirectory at one point. +# +# This broke invocation of update-alternatives command below, because the target link for zabbix-web-font changed +# from zabbix/fonts/graphfont.ttf to zabbix/assets/fonts/graphfont.ttf +# +# We handle this movement by deleting /var/lib/alternatives/zabbix-web-font file if it contains the old target link. +# We also remove symlink at zabbix/fonts/graphfont.ttf to have the old fonts directory be deleted during update. +if [ -f /var/lib/alternatives/zabbix-web-font ] && \ + [ -z "$(grep %{_datadir}/zabbix/assets/fonts/graphfont.ttf /var/lib/alternatives/zabbix-web-font)" ] +then + rm /var/lib/alternatives/zabbix-web-font + if [ -h %{_datadir}/zabbix/fonts/graphfont.ttf ]; then + rm %{_datadir}/zabbix/fonts/graphfont.ttf + fi +fi +/usr/sbin/update-alternatives --install %{_datadir}/zabbix/assets/fonts/graphfont.ttf \ + zabbix-web-font %{_datadir}/fonts/dejavu/DejaVuSans.ttf 10 +: + +%post web-japanese +/usr/sbin/update-alternatives --install %{_datadir}/zabbix/assets/fonts/graphfont.ttf zabbix-web-font \ +%if 0%{?rhel} >= 8 + %{_datadir}/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc 20 +%else + %{_datadir}/fonts/vlgothic/VL-PGothic-Regular.ttf 20 +%endif +: + +%if 0%{?rhel} >= 8 +# The user apache must be available for these to work. +# It is provided by httpd or php-fpm packages. +%post apache-conf +if [ -d /etc/zabbix/web ]; then + chown apache:apache /etc/zabbix/web/ +fi +: +%endif + +%if 0%{?rhel} >= 8 +%post nginx-conf +if [ -d /etc/zabbix/web ]; then + chown apache:apache /etc/zabbix/web/ +fi +: +%endif + +%if 0%{?rhel} == 7 +%post web-deps-scl +if [ -d /etc/zabbix/web ]; then + chown apache:apache /etc/zabbix/web/ +fi +: +%endif +%endif + +%preun agent +if [ "$1" = 0 ]; then +%if 0%{?rhel} >= 7 +%systemd_preun zabbix-agent.service +%else +/sbin/service zabbix-agent stop >/dev/null 2>&1 +/sbin/chkconfig --del zabbix-agent +%endif +fi +: + +%if 0%{?build_agent2} +%preun agent2 +%systemd_preun zabbix-agent2.service +: +%endif + +%if 0%{?rhel} >= 7 +%post java-gateway +%systemd_post zabbix-java-gateway.service +: + +%preun proxy-mysql +if [ "$1" = 0 ]; then +%systemd_preun zabbix-proxy.service +/usr/sbin/update-alternatives --remove zabbix-proxy \ +%{_sbindir}/zabbix_proxy_mysql +fi +: + +%preun proxy-pgsql +if [ "$1" = 0 ]; then +%systemd_preun zabbix-proxy.service +/usr/sbin/update-alternatives --remove zabbix-proxy \ + %{_sbindir}/zabbix_proxy_pgsql +fi +: + +%preun proxy-sqlite3 +if [ "$1" = 0 ]; then +%systemd_preun zabbix-proxy.service +/usr/sbin/update-alternatives --remove zabbix-proxy \ + %{_sbindir}/zabbix_proxy_sqlite3 +fi +: + +%preun java-gateway +if [ $1 -eq 0 ]; then +%systemd_preun zabbix-java-gateway.service +fi +: + +%preun server-mysql +if [ "$1" = 0 ]; then +%systemd_preun zabbix-server.service +/usr/sbin/update-alternatives --remove zabbix-server \ + %{_sbindir}/zabbix_server_mysql +fi +: + +%preun server-pgsql +if [ "$1" = 0 ]; then +%systemd_preun zabbix-server.service +/usr/sbin/update-alternatives --remove zabbix-server \ + %{_sbindir}/zabbix_server_pgsql +fi +: + +%preun web +if [ "$1" = 0 ]; then +/usr/sbin/update-alternatives --remove zabbix-web-font \ + %{_datadir}/fonts/dejavu/DejaVuSans.ttf +fi +: + +%preun web-japanese +if [ "$1" = 0 ]; then +/usr/sbin/update-alternatives --remove zabbix-web-font \ +%if 0%{?rhel} >= 8 + %{_datadir}/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc +%else + %{_datadir}/fonts/vlgothic/VL-PGothic-Regular.ttf +%endif +fi +: +%endif + +%postun agent +%if 0%{?rhel} >= 7 +%systemd_postun_with_restart zabbix-agent.service +%else +if [ $1 -ge 1 ]; then +/sbin/service zabbix-agent try-restart >/dev/null 2>&1 || : +fi +%endif + +%if 0%{?build_agent2} +%postun agent2 +%systemd_postun_with_restart zabbix-agent2.service +%endif + +%if 0%{?rhel} >= 7 +%postun proxy-mysql +%systemd_postun_with_restart zabbix-proxy.service +: + +%postun proxy-pgsql +%systemd_postun_with_restart zabbix-proxy.service +: + +%postun proxy-sqlite3 +%systemd_postun_with_restart zabbix-proxy.service +: + +%postun java-gateway +%systemd_postun_with_restart zabbix-java-gateway.service +: + +%postun server-mysql +%systemd_postun_with_restart zabbix-server.service +: + +%postun server-pgsql +%systemd_postun_with_restart zabbix-server.service +: +%endif + +%files agent +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README conf/zabbix_agentd/userparameter_mysql.conf +%config(noreplace) %{_sysconfdir}/zabbix/zabbix_agentd.conf +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent +%dir %{_sysconfdir}/zabbix/zabbix_agentd.d +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_sbindir}/zabbix_agentd +%{_mandir}/man8/zabbix_agentd.8* +%if 0%{?rhel} >= 7 +%{_unitdir}/zabbix-agent.service +%{_prefix}/lib/tmpfiles.d/zabbix-agent.conf +%else +%{_sysconfdir}/init.d/zabbix-agent +%config(noreplace) %{_sysconfdir}/sysconfig/zabbix-agent +%endif + +%if 0%{?build_agent2} +%files agent2 +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%config(noreplace) %{_sysconfdir}/zabbix/zabbix_agent2.conf +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent2 +%dir %{_sysconfdir}/zabbix/zabbix_agent2.d +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_sbindir}/zabbix_agent2 +%{_mandir}/man8/zabbix_agent2.8* +%if 0%{?rhel} >= 7 +%{_unitdir}/zabbix-agent2.service +%{_prefix}/lib/tmpfiles.d/zabbix_agent2.conf +%else +%{_sysconfdir}/init.d/zabbix-agent2 +%config(noreplace) %{_sysconfdir}/sysconfig/zabbix-agent2 +%endif +%endif + +%files get +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%{_bindir}/zabbix_get +%{_mandir}/man1/zabbix_get.1* + +%files sender +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%{_bindir}/zabbix_sender +%{_mandir}/man1/zabbix_sender.1* + +%if 0%{?rhel} >= 7 +%files js +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%{_bindir}/zabbix_js + +%files java-gateway +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%config(noreplace) %{_sysconfdir}/zabbix/zabbix_java_gateway.conf +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_datadir}/zabbix-java-gateway +%{_sbindir}/zabbix_java_gateway +%{_unitdir}/zabbix-java-gateway.service +%{_prefix}/lib/tmpfiles.d/zabbix-java-gateway.conf +%config(noreplace) %{_sysconfdir}/zabbix/zabbix_java_gateway_logback.xml + +%files proxy-mysql +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%doc database/mysql/schema.sql.gz +%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf +%dir /usr/lib/zabbix/externalscripts +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_mandir}/man8/zabbix_proxy.8* +%{_unitdir}/zabbix-proxy.service +%{_prefix}/lib/tmpfiles.d/zabbix-proxy.conf +%{_sbindir}/zabbix_proxy_mysql + +%files proxy-pgsql +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%doc database/postgresql/schema.sql.gz +%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf +%dir /usr/lib/zabbix/externalscripts +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_mandir}/man8/zabbix_proxy.8* +%{_unitdir}/zabbix-proxy.service +%{_prefix}/lib/tmpfiles.d/zabbix-proxy.conf +%{_sbindir}/zabbix_proxy_pgsql + +%files proxy-sqlite3 +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%doc database/sqlite3/schema.sql.gz +%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf +%dir /usr/lib/zabbix/externalscripts +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_mandir}/man8/zabbix_proxy.8* +%{_unitdir}/zabbix-proxy.service +%{_prefix}/lib/tmpfiles.d/zabbix-proxy.conf +%{_sbindir}/zabbix_proxy_sqlite3 + +%files server-mysql +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%doc database/mysql/create.sql.gz +%doc database/mysql/double.sql +%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf +%dir /usr/lib/zabbix/alertscripts +%dir /usr/lib/zabbix/externalscripts +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_mandir}/man8/zabbix_server.8* +%{_unitdir}/zabbix-server.service +%{_prefix}/lib/tmpfiles.d/zabbix-server.conf +%{_sbindir}/zabbix_server_mysql + +%files server-pgsql +%defattr(-,root,root,-) +%doc AUTHORS ChangeLog COPYING NEWS README +%doc database/postgresql/create.sql.gz +%doc database/postgresql/double.sql +%doc database/postgresql/timescaledb.sql.gz +%attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf +%dir /usr/lib/zabbix/alertscripts +%dir /usr/lib/zabbix/externalscripts +%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/zabbix +%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/run/zabbix +%{_mandir}/man8/zabbix_server.8* +%{_unitdir}/zabbix-server.service +%{_prefix}/lib/tmpfiles.d/zabbix-server.conf +%{_sbindir}/zabbix_server_pgsql + +%files web +%defattr(-,root,root,-) +%dir %{_sysconfdir}/zabbix/web +%ghost %config(noreplace) %{_sysconfdir}/zabbix/web/zabbix.conf.php +%if 0%{?rhel} >= 8 +%config(noreplace) %{_sysconfdir}/php-fpm.d/zabbix.conf +%endif +%doc AUTHORS ChangeLog COPYING NEWS README +%config(noreplace) %{_sysconfdir}/zabbix/web/maintenance.inc.php +%{_datadir}/zabbix + +%if 0%{?rhel} >= 8 +%files web-deps +%config(noreplace) %{_sysconfdir}/php-fpm.d/zabbix.conf +%endif + +%files web-japanese +%defattr(-,root,root,-) + +%if 0%{?rhel} >= 8 +%files web-mysql +%defattr(-,root,root,-) + +%files web-pgsql +%defattr(-,root,root,-) + +%files apache-conf +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf + +%files nginx-conf +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/nginx/conf.d/zabbix.conf +%endif + +%if 0%{?rhel} == 7 +%files web-deps-scl +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/opt/rh/rh-php72/php-fpm.d/zabbix.conf + +%files web-mysql-scl +%defattr(-,root,root,-) + +%files web-pgsql-scl +%defattr(-,root,root,-) + +%files apache-conf-scl +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf + +%files nginx-conf-scl +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf +%endif +%endif + +%changelog +* Mon Dec 21 2020 Zabbix Packager - 5.0.7-1 +- update to 5.0.7 + +* Mon Nov 30 2020 Zabbix Packager - 5.0.6-1 +- update to 5.0.6 + +* Mon Oct 26 2020 Zabbix Packager - 5.0.5-1 +- update to 5.0.5 + +* Mon Sep 28 2020 Zabbix Packager - 5.0.4-1 +- update to 5.0.4 +- added separate zabbix-web-deps package +- creating empty log file for agent2 (ZBX-18243) +- reverted ZBX-18221 changes from 5.0.3-1 on rhel/centos 7 + +* Mon Aug 24 2020 Zabbix Packager - 5.0.3-1 +- update to 5.0.3 +- building server and proxy with postgresql 12 on rhel/centos 7 (ZBX-18221) +- added various After=postgresql* directives to server & proxy service files (ZBX-17492) + +* Mon Jul 13 2020 Zabbix Packager - 5.0.2-1 +- update to 5.0.2 +- removed ZBX-17801 patch +- added "if build_agent2" around zabbix_agent2.conf installation (ZBX-17818) + +* Thu May 28 2020 Zabbix Packager - 5.0.1-1 +- update to 5.0.1 +- changed mysql build dependency on rhel/centos-8 from mysql-devel to mariadb-connector-c-devel (ZBX-17738) +- added patch that fixes (ZBX-17801) + +* Mon May 11 2020 Zabbix Packager - 5.0.0-1 +- update to 5.0.0 + +* Tue May 05 2020 Zabbix Packager - 5.0.0-0.7rc1 +- update to 5.0.0rc1 +- moved frontends/php to ui directory + +* Mon Apr 27 2020 Zabbix Packager - 5.0.0-0.6beta2 +- update to 5.0.0beta2 + +* Tue Apr 14 2020 Zabbix Packager - 5.0.0-0.5beta1 +- update to 5.0.0beta1 +- added agent2 on rhel/centos 7 + +* Mon Mar 30 2020 Zabbix Packager - 5.0.0-0.4alpha4 +- update to 5.0.0alpha4 +- removed proxy, java-gateway & js packages on rhel 5 & 6 due to minimum supported database version increase + +* Mon Mar 16 2020 Zabbix Packager - 5.0.0-0.3alpha3 +- update to 5.0.0alpha3 +- using libssh instead of libssh2 (rhel/centos 8) +- removed explicit dependency on php from zabbix-web (rhel/centos 8) +- removed explicit dependency on httpd from zabbix-web (rhel/centos 7) +- added zabbix-apache-conf (rhel/centos 7) +- using zabbix-web-database-scl as zabbix-(apache/nginx)-conf package dependency (rhel/centos 7) + +* Mon Feb 17 2020 Zabbix Packager - 5.0.0-0.2alpha2 +- update to 5.0.0alpha2 +- fixed font configuration in pre/post scriptlets on rhel-8 + +* Wed Feb 05 2020 Zabbix Packager - 5.0.0-0.2alpha1 +- added *-scl packages to help with resolving php7.2+ and nginx dependencies of zabbix frontend on rhel/centos 7 +- added posttrans script that preserves /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf file +- added config(noreplace) to /etc/sysconfig/zabbix-agent +- added explicit version to php-module dependencies in zabbix-web package on rhel/centos 8 + +* Mon Jan 27 2020 Zabbix Packager - 5.0.0-0.1alpha1 +- update to 5.0.0alpha1 + +* Tue Jan 07 2020 Zabbix Packager - 4.4.4-2 +- build of rhel-5 packages to be resigned with gpg version 3 + +* Thu Dec 19 2019 Zabbix Packager - 4.4.4-1 +- update to 4.4.4 +- added After=.service directives to server and proxy service files + +* Wed Nov 27 2019 Zabbix Packager - 4.4.3-1 +- update to 4.4.3 +- added User=zabbix and Group=zabbix directives to agent service file + +* Mon Nov 25 2019 Zabbix Packager - 4.4.2-1 +- update to 4.4.2 + +* Mon Oct 28 2019 Zabbix Packager - 4.4.1-1 +- update to 4.4.1 + +* Mon Oct 07 2019 Zabbix Packager 4.4.0-1 +- update to 4.4.0 + +* Thu Oct 03 2019 Zabbix Packager - 4.4.0-0.5rc1 +- update to 4.4.0rc1 + +* Tue Sep 24 2019 Zabbix Packager - 4.4.0-0.4beta1 +- update to 4.4.0beta1 +- added zabbix-agent2 package + +* Wed Sep 18 2019 Zabbix Packager - 4.4.0-0.3alpha3 +- update to 4.4.0alpha3 + +* Thu Aug 15 2019 Zabbix Packager - 4.4.0-0.2alpha2 +- update to 4.4.0alpha2 +- using google-noto-sans-cjk-ttc-fonts for graphfont in web-japanese package on rhel-8 +- added php-fpm as dependency of zabbix-web packages on rhel-8 + +* Wed Jul 17 2019 Zabbix Packager - 4.4.0-0.1alpha1 +- update to 4.4.0alpha1 +- removed apache config from zabbix-web package +- added dedicated zabbix-apache-conf and zabbix-nginx-conf packages + +* Fri Mar 29 2019 Zabbix Packager - 4.2.0-1 +- update to 4.2.0 +- removed jabber notifications support and dependency on iksemel library + +* Tue Mar 26 2019 Zabbix Packager - 4.2.0-0.6rc2 +- update to 4.2.0rc2 + +* Mon Mar 18 2019 Zabbix Packager - 4.2.0-0.5rc1 +- update to 4.2.0rc1 + +* Mon Mar 04 2019 Zabbix Packager - 4.2.0-0.4beta2 +- update to 4.2.0beta2 + +* Mon Feb 18 2019 Zabbix Packager - 4.2.0-0.1beta1 +- update to 4.2.0beta1 + +* Tue Feb 05 2019 Zabbix Packager - 4.2.0-0.3alpha3 +- build of 4.2.0alpha3 with *.mo files + +* Wed Jan 30 2019 Zabbix Packager - 4.2.0-0.2alpha3 +- added timescaledb.sql.gz to zabbix-server-pgsql package + +* Mon Jan 28 2019 Zabbix Packager - 4.2.0-0.1alpha3 +- update to 4.2.0alpha3 + +* Fri Dec 21 2018 Zabbix Packager - 4.2.0-0.2alpha2 +- update to 4.2.0alpha2 + +* Tue Nov 27 2018 Zabbix Packager - 4.2.0-0.1alpha1 +- update to 4.2.0alpha1 + +* Mon Oct 29 2018 Zabbix Packager - 4.0.1-1 +- update to 4.0.1 + +* Mon Oct 01 2018 Zabbix Packager - 4.0.0-2 +- update to 4.0.0 + +* Fri Sep 28 2018 Zabbix Packager - 4.0.0-1.1rc3 +- update to 4.0.0rc3 + +* Tue Sep 25 2018 Zabbix Packager - 4.0.0-1.1rc2 +- update to 4.0.0rc2 + +* Wed Sep 19 2018 Zabbix Packager - 4.0.0-1.1rc1 +- update to 4.0.0rc1 + +* Mon Sep 10 2018 Zabbix Packager - 4.0.0-1.1beta2 +- update to 4.0.0beta2 + +* Tue Aug 28 2018 Zabbix Packager - 4.0.0-1.1beta1 +- update to 4.0.0beta1 + +* Mon Jul 23 2018 Zabbix Packager - 4.0.0-1.1alpha9 +- update to 4.0.0alpha9 +- add PHP variable max_input_vars = 10000, overriding default 1000 + +* Mon Jun 18 2018 Zabbix Packager - 4.0.0-1.1alpha8 +- update to 4.0.0alpha8 + +* Wed May 30 2018 Zabbix Packager - 4.0.0-1.1alpha7 +- update to 4.0.0alpha7 + +* Fri Apr 27 2018 Zabbix Packager - 4.0.0-1.1alpha6 +- update to 4.0.0alpha6 +- add support for Ubuntu 18.04 (Bionic) +- move enabling JMX interface on Zabbix java gateway to zabbix_java_gateway.conf + +* Mon Mar 26 2018 Vladimir Levijev - 4.0.0-1.1alpha5 +- update to 4.0.0alpha5 + +* Tue Feb 27 2018 Vladimir Levijev - 4.0.0-1.1alpha4 +- update to 4.0.0alpha4 + +* Mon Feb 05 2018 Vladimir Levijev - 4.0.0-1.1alpha3 +- update to 4.0.0alpha3 + +* Tue Jan 09 2018 Vladimir Levijev - 4.0.0-1.1alpha2 +- update to 4.0.0alpha2 + +* Tue Dec 19 2017 Vladimir Levijev - 4.0.0-1alpha1 +- update to 4.0.0alpha1 + +* Thu Nov 09 2017 Vladimir Levijev - 3.4.4-2 +- add missing translation (.mo) files + +* Tue Nov 07 2017 Vladimir Levijev - 3.4.4-1 +- update to 3.4.4 +- fix issue with new line character in pid file that resulted in failure when shutting down daemons on RHEL 5 + +* Tue Oct 17 2017 Vladimir Levijev - 3.4.3-1 +- update to 3.4.3 + +* Mon Sep 25 2017 Vladimir Levijev - 3.4.2-1 +- update to 3.4.2 + +* Mon Aug 28 2017 Vladimir Levijev - 3.4.1-1 +- update to 3.4.1 +- change SocketDir to /var/run/zabbix + +* Mon Aug 21 2017 Vladimir Levijev - 3.4.0-1 +- update to 3.4.0 + +* Wed Apr 26 2017 Kodai Terashima - 3.4.0-1alpha1 +- update to 3.4.0alpla1 r68116 +- add libpcre and libevent for compile option + +* Sun Apr 23 2017 Kodai Terashima - 3.2.5-1 +- update to 3.2.5 +- add TimeoutSec=0 to systemd service file + +* Thu Mar 02 2017 Kodai Terashima - 3.2.4-2 +- remove TimeoutSec for systemd + +* Mon Feb 27 2017 Kodai Terashima - 3.2.4-1 +- update to 3.2.4 +- add TimeoutSec for systemd service file + +* Wed Dec 21 2016 Kodai Terashima - 3.2.3-1 +- update to 3.2.3 + +* Thu Dec 08 2016 Kodai Terashima - 3.2.2-1 +- update to 3.2.2 + +* Sun Oct 02 2016 Kodai Terashima - 3.2.1-1 +- update to 3.2.1 +- use zabbix user and group for Java Gateway +- add SuccessExitStatus=143 for Java Gateway servie file + +* Tue Sep 13 2016 Kodai Terashima - 3.2.0-1 +- update to 3.2.0 +- add *.conf for Include parameter in agent configuration file + +* Mon Sep 12 2016 Kodai Terashima - 3.2.0rc2-1 +- update to 3.2.0rc2 + +* Fri Sep 09 2016 Kodai Terashima - 3.2.0rc1-1 +- update to 3.2.0rc1 + +* Thu Sep 01 2016 Kodai Terashima - 3.2.0beta2-1 +- update to 3.2.0beta2 + +* Fri Aug 26 2016 Kodai Terashima - 3.2.0beta1-1 +- update to 3.2.0beta1 + +* Fri Aug 12 2016 Kodai Terashima - 3.2.0alpha1-1 +- update to 3.2.0alpha1 + +* Sun Jul 24 2016 Kodai Terashima - 3.0.4-1 +- update to 3.0.4 + +* Sun May 22 2016 Kodai Terashima - 3.0.3-1 +- update to 3.0.3 +- fix java gateway systemd script to use java options + +* Wed Apr 20 2016 Kodai Terashima - 3.0.2-1 +- update to 3.0.2 +- remove ZBX-10459.patch + +* Sat Apr 02 2016 Kodai Terashima - 3.0.1-2 +- fix proxy packges doesn't have schema.sql.gz +- add server and web packages for RHEL6 +- add ZBX-10459.patch + +* Sun Feb 28 2016 Kodai Terashima - 3.0.1-1 +- update to 3.0.1 +- remove DBSocker parameter + +* Sat Feb 20 2016 Kodai Terashima - 3.0.0-2 +- agent, proxy and java-gateway for RHEL 5 and 6 + +* Mon Feb 15 2016 Kodai Terashima - 3.0.0-1 +- update to 3.0.0 + +* Thu Feb 11 2016 Kodai Terashima - 3.0.0rc2 +- update to 3.0.0rc2 +- add TIMEOUT parameter for java gateway conf + +* Thu Feb 04 2016 Kodai Terashima - 3.0.0rc1 +- update to 3.0.0rc1 + +* Sat Jan 30 2016 Kodai Terashima - 3.0.0beta2 +- update to 3.0.0beta2 + +* Thu Jan 21 2016 Kodai Terashima - 3.0.0beta1 +- update to 3.0.0beta1 + +* Thu Jan 14 2016 Kodai Terashima - 3.0.0alpha6 +- update to 3.0.0alpla6 +- remove zabbix_agent conf and binary + +* Wed Jan 13 2016 Kodai Terashima - 3.0.0alpha5 +- update to 3.0.0alpha5 + +* Fri Nov 13 2015 Kodai Terashima - 3.0.0alpha4-1 +- update to 3.0.0alpha4 + +* Thu Oct 29 2015 Kodai Terashima - 3.0.0alpha3-2 +- fix web-pgsql package dependency +- add --with-openssl option + +* Mon Oct 19 2015 Kodai Terashima - 3.0.0alpha3-1 +- update to 3.0.0alpha3 + +* Tue Sep 29 2015 Kodai Terashima - 3.0.0alpha2-3 +- add IfModule for mod_php5 in apache configuration file +- fix missing proxy_mysql alternatives symlink +- chagne snmptrap log filename +- remove include dir from server and proxy conf + +* Fri Sep 18 2015 Kodai Terashima - 3.0.0alpha2-2 +- fix create.sql doesn't contain schema.sql & images.sql + +* Tue Sep 15 2015 Kodai Terashima - 3.0.0alpha2-1 +- update to 3.0.0alpha2 + +* Sat Aug 22 2015 Kodai Terashima - 2.5.0-1 +- create spec file from scratch +- update to 2.5.0