Compare commits

...
Sign in to create a new pull request.

12 commits

Author SHA1 Message Date
Volker Fröhlich
55258a9539 Build without Jabber support and new version 2.2.23 2018-09-26 01:09:46 +02:00
Volker Froehlich
4bb44bdcb7 New version 2.2.21 2017-12-29 11:05:37 +01:00
Volker Fröhlich
b5930f2e3f New version 2.2.20 2017-09-26 12:18:06 +02:00
Volker Fröhlich
aef02d356f New version 2.2.18 2017-06-24 01:04:14 +02:00
Volker Fröhlich
0cc423854f New version 2.2.16 2016-12-09 00:41:06 +01:00
Volker Fröhlich
4e211bb7d5 New version 2.2.15 2016-10-05 16:28:09 +02:00
Volker Fröhlich
6baa58eae8 Remove incorrect reference to fping patch from changelog 2016-07-24 16:29:06 +02:00
Volker Fröhlich
ba0a5d3f89 New version 2.2.14 2016-07-24 16:27:36 +02:00
Volker Fröhlich
0934626b8c New version 2.2.14 2016-07-24 16:26:06 +02:00
Volker Fröhlich
0d0b29a69a New version 2.2.11 2015-11-12 16:29:44 +01:00
Orion Poplawski
3c993bbcbe Update to 2.2.10
- Fix su removal from logrotate scripts
- Try to handle multiple agent init scripts better
2015-09-15 08:46:43 -06:00
Volker Fröhlich
4210d743d7 Check-in 2014-01-28 17:41:20 +01:00
20 changed files with 1672 additions and 0 deletions

10
.gitignore vendored
View file

@ -0,0 +1,10 @@
/zabbix-2.2.1-free.tar.gz
/zabbix-2.2.10.tar.gz
/zabbix-2.2.11.tar.gz
/zabbix-2.2.14.tar.gz
/zabbix-2.2.15.tar.gz
/zabbix-2.2.16.tar.gz
/zabbix-2.2.18.tar.gz
/zabbix-2.2.20.tar.gz
/zabbix-2.2.21.tar.gz
/zabbix-2.2.23.tar.gz

View file

@ -0,0 +1 @@
SHA512 (zabbix-2.2.23.tar.gz) = 178e193f83dbaaa8aa0a0b87dd621acf7aa24e0d84d0010532b419139ed02e3cf892e4e772362bb855efb5966a64b9da8d3512eb91e759835039dc8c3529ea56

View file

@ -0,0 +1,11 @@
diff -up zabbix-2.0.1/frontends/php/include/screens.inc.php.orig zabbix-2.0.1/frontends/php/include/screens.inc.php
--- zabbix-2.0.1/frontends/php/include/screens.inc.php.orig 2012-06-27 23:03:03.000000000 +0200
+++ zabbix-2.0.1/frontends/php/include/screens.inc.php 2012-07-12 16:29:02.000000000 +0200
@@ -25,7 +25,6 @@ require_once dirname(__FILE__).'/js.inc.
function screen_resources($resource = null) {
$resources = array(
- SCREEN_RESOURCE_CLOCK => _('Clock'),
SCREEN_RESOURCE_DATA_OVERVIEW => _('Data overview'),
SCREEN_RESOURCE_GRAPH => _('Graph'),
SCREEN_RESOURCE_ACTIONS => _('History of actions'),

View file

@ -0,0 +1,12 @@
diff -Nur zabbix-2.0.3/frontends/php/include/defines.inc.php zabbix-2.0.3-fonts/frontends/php/include/defines.inc.php
--- zabbix-2.0.3/frontends/php/include/defines.inc.php 2012-10-03 16:41:36.000000000 +0200
+++ zabbix-2.0.3-fonts/frontends/php/include/defines.inc.php 2012-10-05 23:47:17.341790748 +0200
@@ -34,7 +34,7 @@
define('ZBX_WIDGET_ROWS', 20);
-define('ZBX_FONTPATH', realpath('fonts')); // where to search for font (GD > 2.0.18)
+define('ZBX_FONTPATH', '/usr/share/fonts/dejavu'); // where to search for font (GD > 2.0.18)
define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
define('ZBX_GRAPH_LEGEND_HEIGHT', 120); // when graph height is less then this value, some legend will not show up

72
zabbix-2.1.9-config.patch Normal file
View file

@ -0,0 +1,72 @@
diff -Nur zabbix-2.1.9/frontends/php/include/classes/class.cconfigfile.php zabbix-2.1.9-config/frontends/php/include/classes/class.cconfigfile.php
--- zabbix-2.1.9/frontends/php/include/classes/class.cconfigfile.php 2013-11-04 17:35:47.000000000 +0100
+++ zabbix-2.1.9-config/frontends/php/include/classes/class.cconfigfile.php 2013-11-04 21:53:08.374100475 +0100
@@ -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';
public $configFile = null;
public $config = array();
diff -Nur zabbix-2.1.9/frontends/php/include/classes/core/ZBase.php zabbix-2.1.9-config/frontends/php/include/classes/core/ZBase.php
--- zabbix-2.1.9/frontends/php/include/classes/core/ZBase.php 2013-11-04 17:35:47.000000000 +0100
+++ zabbix-2.1.9-config/frontends/php/include/classes/core/ZBase.php 2013-11-04 21:53:08.376100479 +0100
@@ -272,7 +272,7 @@
* @throws Exception
*/
protected function setMaintenanceMode() {
- require_once $this->getRootDir().'/conf/maintenance.inc.php';
+ require_once '/etc/zabbix/web/maintenance.inc.php';
if (defined('ZBX_DENY_GUI_ACCESS')) {
$user_ip = (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
@@ -288,7 +288,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 -Nur zabbix-2.1.9/frontends/php/include/setup.inc.php zabbix-2.1.9-config/frontends/php/include/setup.inc.php
--- zabbix-2.1.9/frontends/php/include/setup.inc.php 2013-11-04 17:35:47.000000000 +0100
+++ zabbix-2.1.9-config/frontends/php/include/setup.inc.php 2013-11-04 22:14:15.383310708 +0100
@@ -429,7 +429,7 @@
function stage6() {
$this->setConfig('ZBX_CONFIG_FILE_CORRECT', true);
- $config = new CConfigFile(Z::getInstance()->getRootDir().CConfigFile::CONFIG_FILE_PATH);
+ $config = new CConfigFile(CConfigFile::CONFIG_FILE_PATH);
$config->config = array(
'DB' => array(
'TYPE' => $this->getConfig('DB_TYPE'),
@@ -496,7 +496,7 @@
$this->HIDE_CANCEL_BUTTON = !$this->DISABLE_NEXT_BUTTON;
- $table = array('Configuration file', BR(), '"'.Z::getInstance()->getRootDir().CConfigFile::CONFIG_FILE_PATH.'"',
+ $table = array('Configuration file', BR(), '"'.CConfigFile::CONFIG_FILE_PATH.'"',
BR(), 'created: ', $this->getConfig('ZBX_CONFIG_FILE_CORRECT', false)
? new CSpan(_('OK'), 'ok')
: new CSpan(_('Fail'), 'fail')
@@ -509,7 +509,7 @@
? array($error_text, BR(), 'Please install it manually, or fix permissions on the conf directory.', BR(), BR(),
'Press the "Download configuration file" button, download the configuration file ',
'and save it as ', BR(),
- '"'.Z::getInstance()->getRootDir().CConfigFile::CONFIG_FILE_PATH.'"', BR(), BR(),
+ '"'.CConfigFile::CONFIG_FILE_PATH.'"', BR(), BR(),
new CSubmit('save_config', 'Download configuration file'),
BR(), BR()
)
@@ -615,7 +615,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(Z::getInstance()->getRootDir().CConfigFile::CONFIG_FILE_PATH);
+ $config = new CConfigFile(CConfigFile::CONFIG_FILE_PATH);
$config->config = array(
'DB' => array(
'TYPE' => $this->getConfig('DB_TYPE'),

89
zabbix-agentd.init Normal file
View file

@ -0,0 +1,89 @@
#!/bin/sh
#
# chkconfig: - 86 14
# description: Zabbix agent daemon
#
### BEGIN INIT INFO
# Provides: zabbix-agent
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start: zabbix-server zabbix-proxy
# Should-Stop: zabbix-server zabbix-proxy
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Start and stop Zabbix agent
# Description: Zabbix agent daemon
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec=/usr/sbin/zabbix_agentd
prog=${exec##*/}
syscf=${0##*/}
lockfile=/var/lock/subsys/$syscf
[ -f /etc/sysconfig/$syscf ] && . /etc/sysconfig/$syscf
config=${CFG_FILE:-/etc/zabbix_agentd.conf}
if [ ! -f $config ]; then
echo "Not starting Zabbix agent: Config file $config not found!"
echo "Check /etc/sysconfig/$syscf"
exit 3
fi
pidfile=$(grep -e "^PidFile=.*$" $config | cut -d= -f2)
param="-c $config"
start()
{
echo -n $"Starting Zabbix agent: "
daemon --user zabbix --pidfile "$pidfile" $exec $param
rv=$?
echo
[ $rv -eq 0 ] && touch $lockfile
return $rv
}
stop()
{
echo -n $"Shutting down Zabbix agent: "
killproc -p "$pidfile" $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" -l $prog $exec
;;
try-restart|condrestart)
if status -p "$pidfile" -l $prog $exec >/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

12
zabbix-agentd.service Normal file
View file

@ -0,0 +1,12 @@
[Unit]
Description=Zabbix Monitor Agent
After=syslog.target network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/zabbix_agentd
RemainAfterExit=yes
User=zabbix
[Install]
WantedBy=multi-user.target

228
zabbix-fedora-epel.README Normal file
View file

@ -0,0 +1,228 @@
=Custom in Fedora/EPEL=
==Pinger files==
Since /tmp is not a good place to spool files, the pinger files shall now reside
in /var/lib/zabbixsrv/tmp. This directory is automatically created and proxy and
server configuration files are changed accordingly from 2.0.8 on.
==Web configuration==
Web configuration resides in /etc/zabbix/web. The configuration file can be
created manually or by walking through the frontend setup tool, as soon as your
httpd configuration allows. The directory also contains maintenance.inc.php!
==Log files==
Log files are located in /var/log/zabbix for the agent and /var/log/zabbixsrv.
for server and proxy.
==Where's my Flash watch?==
It's not included in Fedora! Fedora's policy does not allow to include blobs:
https://support.zabbix.com/browse/ZBX-4794
==No htaccess files==
Fedora ships an Apache configuration file instead. This solutions performs
better and is easier to maintain.
==Two users and groups==
There's a certain security risk involved, running agent and proxy/server as the
same user. This package therefore introduces an additional zabbixsrv user, used
for proxy and server. Please check the permissions of your scripts and group
memberships, if necessary.
==Using the Alternatives system instead of conflicting sub-packages==
You can now install Zabbix proxies or servers compiled for different database
back-ends on the same system. While this is not intended to happily switch back
and forth, it allows you to:
- Stop the daemon
- "Run alternatives --config zabbix-server" or
"alternatives --config zabbix-proxy"
- Make your choice
- If you're using systemd, run systemctl reload
- Adjust the configuration file
- Start the daemon
- In some cases you have to use "restart" instead of "start".
The reason is not yet clear to me.
"Alternatives" considers the first installed implementation of server or proxy as
default, respectively.
Don't forget to reconfigure the front-end when you switch the server to a
different DB implementation!
==How to run multiple instances of a Zabbix daemon with init scripts==
If you want to run multiple instances on the same host, do the following:
- Copy or symlink the init scripts
- Create a file of the same name as the new init script in /etc/sysconfig
- Define CFG_FILE="</path/to/daemon_config_file>" in this file
- Create the file defined as CFG_FILE and adjust settings; in particular:
- DB settings if you set up multiple instances of server and proxy daemons;
IMPORTANT: Two daemons using the same database at the same time could act
destructive!
- PidFile
- ListenPort and/or ListenIP, if you plan for simultaneous operation;
Don't forget to review your firewall settings!
- LogFile, if you don't use syslog
- Optionally run the following to register the new instance as a service and
start it up automatically:
chkconfig --add <init_script_name>
chkconfig <init_script_name> on
- service <init_script_name> start
==Configuration changes==
Zabbix 2.0/2.2 place configuration files directly in /etc. Symlinks preserve
compatibility. maintenance.inc.php moved from /usr/share/zabbix/conf to
/etc/zabbix/web.
==Media scripts and external scripts==
The directories for external scripts and media scripts have moved to
/var/lib/zabbixsrv. Symlinks preserve compatibility.
/var/lib/zabbix is now intended for scripts run by the agent. Please move your
server or proxy scripts to /var/lib/zabbixsrv. Be sure to check permissions and
ownership.
==No Java bridge==
The Zabbix Java bridge can not be included now, due to legal issue with one of
the modules (json). See https://support.zabbix.com/browse/ZBX-4800 and feel free
to vote on it.
==No SQLite front-end or server implementation==
Sadly it doesn't work with how Fedora's/EPEL's PHP is compiled.
=SELinux=
The settings necessary for you vary, depending on how you set up your system/s.
Most of the time, the only adjustments necessary should be on the machine that
holds the frontend:
#Allow to connect the frontend to a database by other means than sockets
setsebool -P httpd_can_network_connect_db 1
#Allow the frontend to create a connection to the server listening port
#That's the check the frontend uses to see whether the server is running.
#This option effectively supersedes the previous
setsebool -P httpd_can_network_connect 1
Using sebools is a somewhat coarse method of allowing things.
A more fine-grained approach for the latter would be to grab an actual
avc denial from the audit log, pipe it through audit2allow, put it in a
module package and load that:
echo "avc: denied { name_connect } for pid=20619 comm="httpd" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket" | audit2allow -M zabbix_conn_httpd; sudo semodule -i zabbix_conn_httpd.pp
If you're using ping from the frontend:
echo "avc: denied { setpgid } for pid=31880 comm="zabbix_server_p" scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:system_r:zabbix_t:s0 tclass=process" | audit2allow -M zabbix_ping_frontend; sudo semodule -i zabbix_ping_frontend.pp
=Additional packaging changes in Fedora/EPEL since 2.0=
==Zabbix 2.2 conflicts 1.8 and 2.0==
Please see the below section for the reason!
==Agent init script/unit file name==
For the sake of consistency between distributions, the agent init script,
respectively the systemd unit file, was renamed to zabbix-agentd -- mind the
trailing "d"! Symlinks with the old names are in place. Keep in mind, if
you created a configuration file in /etc/sysconfig, the sourced file must
the name of the init script you invoke! Consequently, if you decide to use
zabbix-agentd in the future, copy or symlink this file.
==zabbixsrv now has its own user group==
zabbixsrv used to be a member of the zabbix user group. Completely fresh
installations will create the zabbixsrv group and assign it as the primary
group. If the user zabbixsrv already exists (upgrade from 2.0), the user group
is replaced.
==Log and lock file locations, group membership==
All logs used to be in /var/log/zabbix. With zabbixsrv having its own
user group, the logs are now split between /var/log/zabbix for the agent and
/var/log/zabbixsrv for server and proxy.
=Additional packaging changes in Fedora/EPEL since 1.8=
==Zabbix 2.0 packages conflict Zabbix 1.8; 2.2 conflicts 1.8 and 2.0==
This measure was taken because this major version introduces various database
schema changes. A silent update would render Zabbix non-operational and possibly
break the database. Besides that, Zabbix 2.0/2.2 server only works with the
respective major versions of servers and proxies. Distributed setups must
therefore be updated at the same time to keep working.
http://www.zabbix.com/documentation/2.0/manual/appendix/compatibility
http://www.zabbix.com/documentation/2.2/manual/appendix/compatibility
--------------------------------------------------------------------------------
=Guide for upgrading to 2.2 from 2.0=
https://www.zabbix.com/documentation/2.2/manual/installation/upgrade
https://www.zabbix.com/documentation/2.2/manual/installation/upgrade_notes_220
Be sure to read the upgrades notes of the latest minor release too!
- Review all rpmnew and rpmsave files; merge where necessary
- Review permissions, ownerships and group memberships for zabbixsrv
- Migrate server and proxy logs to the new location, if you want
- Back up the Zabbix database (really!)
- Remove custom database changes, if any
- Make sure the database user has sufficing permissions
(ALTER TABLE, DROP INDEX, DROP TABLE, ...)
- Start the server
- Check the server log for progress and possible errors
The schema conversion should finish within minutes or hours
=Guide for upgrading to 2.0 from 1.8=
https://www.zabbix.com/documentation/2.0/manual/installation/upgrade_notes?s[]=upgrade&s[]=notes&s[]=2&s[]=0
Be sure to read the upgrades notes of the latest minor release too!
The below should be the relevant steps, picked from
http://www.zabbix.com/documentation/2.0/manual/installation/upgrade
- Review all rpmnew and rpmsave files; merge where necessary
- Review permissions, ownerships and group memberships for zabbixsrv
- Back up the Zabbix database (really!)
- Remove custom database changes, if any
- Make sure the database user has sufficing permissions
(ALTER TABLE, DROP INDEX, DROP TABLE, ...)
- Run the fitting database update script/s
- The scripts can run very long, depending on the content of your database and
your hardware;
- Check the output of the script for errors
Volker Fröhlich volker27@gmx.at Jan 5 2013

8
zabbix-logrotate.in Normal file
View file

@ -0,0 +1,8 @@
/var/log/USER/zabbix_COMPONENT.log {
missingok
monthly
notifempty
compress
create 0664 USER USER
su USER USER
}

View file

@ -0,0 +1,12 @@
[Unit]
Description=Zabbix MySQL Proxy
After=syslog.target network.target mysqld.service
[Service]
Type=oneshot
ExecStart=/usr/sbin/zabbix_proxy
RemainAfterExit=yes
User=zabbixsrv
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,12 @@
[Unit]
Description=Zabbix PostgreSQL Proxy
After=syslog.target network.target postgresql.service
[Service]
Type=oneshot
ExecStart=/usr/sbin/zabbix_proxy
RemainAfterExit=yes
User=zabbixsrv
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,12 @@
[Unit]
Description=Zabbix SQLite3 Proxy
After=syslog.target network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/zabbix_proxy
RemainAfterExit=yes
User=zabbixsrv
[Install]
WantedBy=multi-user.target

87
zabbix-proxy.init Normal file
View file

@ -0,0 +1,87 @@
#!/bin/sh
#
# chkconfig: - 85 15
# description: Zabbix proxy daemon
#
### 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 daemon
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec=/usr/sbin/zabbix_proxy
prog=${exec##*/}
syscf=${0##*/}
lockfile=/var/lock/subsys/$syscf
[ -f /etc/sysconfig/$syscf ] && . /etc/sysconfig/$syscf
config=${CFG_FILE:-/etc/zabbix_proxy.conf}
if [ ! -f $config ]; then
echo "Not starting Zabbix proxy: Config file $config not found!"
echo "Check /etc/sysconfig/$syscf"
exit 3
fi
pidfile=$(grep -e "^PidFile=.*$" $config | cut -d= -f2)
param="-c $config"
start()
{
echo -n $"Starting Zabbix proxy: "
daemon --user zabbixsrv --pidfile "$pidfile" $exec $param
rv=$?
echo
[ $rv -eq 0 ] && touch $lockfile
return $rv
}
stop()
{
echo -n $"Shutting down Zabbix proxy: "
killproc -p "$pidfile" $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" -l $prog $exec
;;
try-restart|condrestart)
if status -p "$pidfile" -l $prog $exec >/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

View file

@ -0,0 +1,12 @@
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=oneshot
ExecStart=/usr/sbin/zabbix_server
RemainAfterExit=yes
User=zabbixsrv
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,12 @@
[Unit]
Description=Zabbix Server with PostgreSQL DB
After=syslog.target network.target postgresql.service
[Service]
Type=oneshot
ExecStart=/usr/sbin/zabbix_server
RemainAfterExit=yes
User=zabbixsrv
[Install]
WantedBy=multi-user.target

87
zabbix-server.init Normal file
View file

@ -0,0 +1,87 @@
#!/bin/sh
#
# chkconfig: - 85 15
# description: Zabbix server daemon
#
### BEGIN INIT INFO
# Provides: zabbix-server
# 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 daemon
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec=/usr/sbin/zabbix_server
prog=${exec##*/}
syscf=${0##*/}
lockfile=/var/lock/subsys/$syscf
[ -f /etc/sysconfig/$syscf ] && . /etc/sysconfig/$syscf
config=${CFG_FILE:-/etc/zabbix_server.conf}
if [ ! -f $config ]; then
echo "Not starting Zabbix server: Config file $config not found!"
echo "Check /etc/sysconfig/$syscf"
exit 3
fi
pidfile=$(grep -e "^PidFile=.*$" $config | cut -d= -f2)
param="-c $config"
start()
{
echo -n $"Starting Zabbix server: "
daemon --user zabbixsrv --pidfile "$pidfile" $exec $param
rv=$?
echo
[ $rv -eq 0 ] && touch $lockfile
return $rv
}
stop()
{
echo -n $"Shutting down Zabbix server: "
killproc -p "$pidfile" $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" -l $prog $exec
;;
try-restart|condrestart)
if status -p "$pidfile" -l $prog $exec >/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

View file

@ -0,0 +1 @@
D /var/run/zabbix 0755 zabbix zabbix -

View file

@ -0,0 +1 @@
D /var/run/zabbixsrv 0755 zabbixsrv zabbixsrv -

48
zabbix-web.conf Normal file
View file

@ -0,0 +1,48 @@
#
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from all
</IfModule>
</Directory>
<Directory ~ "^/usr/share/zabbix/(conf|api|include)/">
<IfModule mod_authz_core.c>
# Apache 2.4
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order deny,allow
Deny from all
</IfModule>
<files *.php>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</files>
</Directory>

945
zabbix22.spec Normal file
View file

@ -0,0 +1,945 @@
# TODO, maybe sometime:
# * Allow for nginx?
# * F18 systemd macros, when EL6 reaches EOL
# * Do something about mutex errors sometimes occurring when init scripts'
# restart is invoked; something like "sleep 2" between stop and start?
# "Include" statement in config files needs patching in order to not load
# various backup files (*.rpm{orig,new,save}, *~ etc) in that dir.
# https://support.zabbix.com/browse/ZBXNEXT-497
# * Consider using systemd's ReadWriteDirectories
#TODO: systemctl reload seems to be necessary after switching with Alternatives
#TODO: If the DB path for a Sqlite proxy is configured wrong, it requires systemctl restart. Start doesn't work.
%global srcname zabbix
Name: zabbix22
Version: 2.2.23
Release: 1%{?dist}
Summary: Open-source monitoring solution for your IT infrastructure
Group: Applications/Internet
License: GPLv2+
URL: http://www.zabbix.com
Source0: http://downloads.sourceforge.net/%{srcname}/%{srcname}-%{version}.tar.gz
Source1: %{srcname}-web.conf
Source2: %{srcname}-server.init
Source3: %{srcname}-agentd.init
Source4: %{srcname}-proxy.init
Source5: %{srcname}-logrotate.in
Source9: %{srcname}-tmpfiles-zabbix.conf
Source16: %{srcname}-fedora-epel.README
Source17: %{srcname}-tmpfiles-zabbixsrv.conf
# local rules for config files
Patch0: %{srcname}-2.1.9-config.patch
# local rules for config files - fonts
Patch1: %{srcname}-2.0.3-fonts-config.patch
# remove flash content (#737337)
# https://support.zabbix.com/browse/ZBX-4794
Patch2: %{srcname}-2.0.1-no-flash.patch
BuildRequires: mysql-devel
BuildRequires: postgresql-devel
BuildRequires: sqlite-devel
BuildRequires: net-snmp-devel
BuildRequires: openldap-devel
BuildRequires: gnutls-devel
BuildRequires: unixODBC-devel
BuildRequires: curl-devel
BuildRequires: OpenIPMI-devel
BuildRequires: libssh2-devel
BuildRequires: libxml2-devel
Requires: logrotate
Provides: bundled(md5-deutsch)
# Could alternatively be conditional on Fedora/EL
%if %{srcname} != %{name}
Provides: %{srcname} = %{version}-%{release}
Conflicts: %{srcname} < 2.2
Conflicts: %{srcname}20
%else
Obsoletes: %{srcname}-docs < 1.8.15-2
Obsoletes: %{srcname}-web-sqlite3 < 2.0.3-3
Obsoletes: %{srcname}-server-sqlite3 < 2.0.3-3
%endif
%description
Zabbix is software that monitors numerous parameters of a network and the
health and integrity of servers. Zabbix uses a flexible notification mechanism
that allows users to configure e-mail based alerts for virtually any event.
This allows a fast reaction to server problems. Zabbix offers excellent
reporting and data visualization features based on the stored data.
This makes Zabbix ideal for capacity planning.
Zabbix supports both polling and trapping. All Zabbix reports and statistics,
as well as configuration parameters are accessed through a web-based front end.
A web-based front end ensures that the status of your network and the health of
your servers can be assessed from any location. Properly configured, Zabbix can
play an important role in monitoring IT infrastructure. This is equally true
for small organizations with a few servers and for large companies with a
multitude of servers.
%package dbfiles-mysql
Summary: Zabbix database schemas, images, data and patches
Group: Applications/Internet
BuildArch: noarch
%description dbfiles-mysql
Zabbix database schemas, images, data and patches necessary for creating
and/or updating MySQL databases
%package dbfiles-pgsql
Summary: Zabbix database schemas, images, data and patches
Group: Applications/Internet
BuildArch: noarch
%description dbfiles-pgsql
Zabbix database schemas, images, data and patches necessary for creating
and/or updating PostgreSQL databases
%package dbfiles-sqlite3
Summary: Zabbix database schemas and patches
Group: Applications/Internet
BuildArch: noarch
%description dbfiles-sqlite3
Zabbix database schemas and patches necessary for creating
and/or updating SQLite databases
%package server
Summary: Zabbix server common files
Group: Applications/Internet
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: %{name}-server-implementation = %{version}-%{release}
Requires: fping
Requires: traceroute
Requires(pre): shadow-utils
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(postun): /sbin/service
%description server
Zabbix server common files
%package server-mysql
Summary: Zabbix server compiled to use MySQL
Group: Applications/Internet
Requires: %{name} = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release}
Requires: %{name}-dbfiles-mysql
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/update-alternatives
Provides: %{name}-server-implementation = %{version}-%{release}
%description server-mysql
Zabbix server compiled to use MySQL
%package server-pgsql
Summary: Zabbix server compiled to use PostgreSQL
Group: Applications/Internet
Requires: %{name} = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release}
Requires: %{name}-dbfiles-pgsql
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/update-alternatives
Provides: %{name}-server-implementation = %{version}-%{release}
%description server-pgsql
Zabbix server compiled to use PostgreSQL
%package agent
Summary: Zabbix Agent
Group: Applications/Internet
Requires: %{name} = %{version}-%{release}
Requires(pre): shadow-utils
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(postun): /sbin/service
%description agent
The Zabbix client agent, to be installed on monitored systems.
%package proxy
Summary: Zabbix Proxy
Group: Applications/Internet
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: %{name}-proxy-implementation = %{version}-%{release}
Requires(pre): shadow-utils
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(postun): /sbin/service
Requires: fping
%description proxy
The Zabbix proxy
%package proxy-mysql
Summary: Zabbix proxy compiled to use MySQL
Group: Applications/Internet
Requires: %{name}-proxy = %{version}-%{release}
Requires: %{name}-dbfiles-mysql
Provides: %{name}-proxy-implementation = %{version}-%{release}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/update-alternatives
%description proxy-mysql
The Zabbix proxy compiled to use MySQL
%package proxy-pgsql
Summary: Zabbix proxy compiled to use PostgreSQL
Group: Applications/Internet
Requires: %{name}-proxy = %{version}-%{release}
Requires: %{name}-dbfiles-pgsql
Provides: %{name}-proxy-implementation = %{version}-%{release}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/update-alternatives
%description proxy-pgsql
The Zabbix proxy compiled to use PostgreSQL
%package proxy-sqlite3
Summary: Zabbix proxy compiled to use SQLite
Group: Applications/Internet
Requires: %{name}-proxy = %{version}-%{release}
Requires: %{name}-dbfiles-sqlite3
Provides: %{name}-proxy-implementation = %{version}-%{release}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/alternatives
Requires(postun): %{_sbindir}/update-alternatives
%description proxy-sqlite3
The Zabbix proxy compiled to use SQLite
%package web
Summary: Zabbix Web Frontend
Group: Applications/Internet
BuildArch: noarch
# Don't remove "php". Everything else only depends on php-common
# and you'll end up with no module for Apache!
Requires: php
Requires: php-gd
Requires: php-bcmath
Requires: php-ldap
Requires: php-mbstring
Requires: php-xml
Requires: php-gettext
Requires: dejavu-sans-fonts
Requires: %{name} = %{version}-%{release}
Requires: %{name}-web-database = %{version}-%{release}
%description web
The php frontend to display the Zabbix web interface.
%package web-mysql
Summary: Zabbix web frontend for MySQL
Group: Applications/Internet
BuildArch: noarch
Requires: %{name}-web = %{version}-%{release}
Requires: php-mysql
Provides: %{name}-web-database = %{version}-%{release}
Obsoletes: %{name}-web <= 1.5.3-0.1
%description web-mysql
Zabbix web frontend for MySQL
%package web-pgsql
Summary: Zabbix web frontend for PostgreSQL
Group: Applications/Internet
BuildArch: noarch
Requires: %{name}-web = %{version}-%{release}
Requires: php-pgsql
Provides: %{name}-web-database = %{version}-%{release}
%description web-pgsql
Zabbix web frontend for PostgreSQL
%prep
%setup0 -q -n %{srcname}-%{version}
%patch0 -p1
%patch1 -p1
# Remove flash applet
# https://support.zabbix.com/browse/ZBX-4794
%patch2 -p1
rm -f frontends/php/images/flash/zbxclock.swf
# Remove bundled java libs
rm -rf src/zabbix_java/lib/*.jar
# Remove prebuilt Windows binaries
rm -rf bin
# Remove included fonts
rm -rf frontends/php/fonts
# Remove executable permissions
chmod a-x upgrades/dbpatches/*/mysql/upgrade
# Override statically named directory for alertscripts and externalscripts
# https://support.zabbix.com/browse/ZBX-6159
sed -i 's|$(DESTDIR)@datadir@/zabbix|$(DESTDIR)/var/lib/zabbixsrv|' \
src/zabbix_server/Makefile.in \
src/zabbix_proxy/Makefile.in
# Kill off .htaccess files, options set in SOURCE1
rm -f frontends/php/include/.htaccess
rm -f frontends/php/api/.htaccess
rm -f frontends/php/conf/.htaccess
# Fix path to traceroute utility
# Still valid for EL7!
find database -name 'data.sql' -exec sed -i 's|/usr/bin/traceroute|/bin/traceroute|' {} \;
# Adapt configuration file options
sed -i \
-e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/zabbix/zabbix_agentd.pid|g' \
-e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbix/zabbix_agentd.log|g' \
-e 's|# LogFileSize=.*|LogFileSize=0|g' \
-e 's|/usr/local||g' \
conf/zabbix_agentd.conf
sed -i \
-e 's|/usr/local||g' \
conf/zabbix_agent.conf
#TODO: It'd be better to leave the defaults in a commment and just override them, as they are still hard-coded!
sed -i \
-e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/zabbixsrv/zabbix_server.pid|g' \
-e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbixsrv/zabbix_server.log|g' \
-e 's|# LogFileSize=.*|LogFileSize=0|g' \
-e 's|# AlertScriptsPath=${datadir}/zabbix/|AlertScriptsPath=%{_sharedstatedir}/zabbixsrv/|g' \
-e 's|^DBUser=root|DBUser=zabbix|g' \
-e 's|# DBSocket=/tmp/mysql.sock|DBSocket=%{_sharedstatedir}/mysql/mysql.sock|g' \
-e 's|# ExternalScripts=\${datadir}/zabbix/externalscripts|ExternalScripts=%{_sharedstatedir}/zabbixsrv/externalscripts|' \
-e 's|# TmpDir=\/tmp|TmpDir=%{_sharedstatedir}/zabbixsrv/tmp|' \
-e 's|/usr/local||g' \
conf/zabbix_server.conf
sed -i \
-e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/zabbixsrv/zabbix_proxy.pid|g' \
-e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/zabbixsrv/zabbix_proxy.log|g' \
-e 's|# LogFileSize=.*|LogFileSize=0|g' \
-e 's|^DBUser=root|DBUser=zabbix|g' \
-e 's|# DBSocket=/tmp/mysql.sock|DBSocket=%{_sharedstatedir}/mysql/mysql.sock|g' \
-e 's|# ExternalScripts=\${datadir}/zabbix/externalscripts|ExternalScripts=%{_sharedstatedir}/zabbixsrv/externalscripts|' \
-e 's|# TmpDir=\/tmp|TmpDir=%{_sharedstatedir}/zabbixsrv/tmp|' \
-e 's|/usr/local||g' \
conf/zabbix_proxy.conf
#TODO: Ticket
# Adapt man pages and SQL patches
sed -i 's|/usr/local||g;s| (if not modified during compile time).||' man/*.man
sed -i 's|/usr/local||g' \
upgrades/dbpatches/2.0/mysql/patch.sql \
upgrades/dbpatches/2.0/postgresql/patch.sql
# Install README file
install -m 0644 -p %{SOURCE16} .
%build
common_flags="
--enable-dependency-tracking
--enable-agent
--enable-proxy
--enable-ipv6
--disable-java
--with-net-snmp
--with-ldap
--with-libcurl
--with-openipmi
--without-jabber
--with-unixodbc
--with-ssh2
--with-libxml2
"
# Frontend doesn't work for SQLite, thus don't build server
%configure $common_flags --with-sqlite3
make %{?_smp_mflags}
mv src/zabbix_proxy/zabbix_proxy src/zabbix_proxy/zabbix_proxy_sqlite3
%configure $common_flags --with-mysql --enable-server
make clean
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 $common_flags --with-postgresql --enable-server
make clean
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
# Ghosted alternatives
touch src/zabbix_server/zabbix_server
touch src/zabbix_proxy/zabbix_proxy
%install
# Configuration, runtime and start-up
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbix
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/zabbixsrv
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/zabbix
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/zabbixsrv
mkdir -p $RPM_BUILD_ROOT%{_initrddir}
# Frontend
mkdir -p $RPM_BUILD_ROOT%{_datadir}
# Home directory for the agent;
# The other home directory is created during installation
mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/zabbix
# Install binaries
make DESTDIR=$RPM_BUILD_ROOT install
install -m 0755 -p src/zabbix_server/zabbix_server_* $RPM_BUILD_ROOT%{_sbindir}/
install -m 0755 -p src/zabbix_proxy/zabbix_proxy_* $RPM_BUILD_ROOT%{_sbindir}/
# Install the frontend after removing backup files from patching
find frontends/php -name '*.orig' -exec rm {} \;
cp -a frontends/php $RPM_BUILD_ROOT%{_datadir}/%{srcname}
# Prepare ghosted config file
#TODO: Simplify that? Like /etc/zabbix_web/zabbix.conf.php?
touch $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web/zabbix.conf.php
# This file is used to switch the frontend to maintenance mode
mv $RPM_BUILD_ROOT%{_datadir}/%{srcname}/conf/maintenance.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/web/maintenance.inc.php
# Drop Apache config file in place
install -m 0644 -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/%{srcname}.conf
# Install log rotation
sed -e 's|COMPONENT|agentd|g; s|USER|zabbix|g' %{SOURCE5} > \
$RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-agent
sed -e 's|COMPONENT|server|g; s|USER|zabbixsrv|g' %{SOURCE5} > \
$RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-server
sed -e 's|COMPONENT|proxy|g; s|USER|zabbixsrv|g' %{SOURCE5} > \
$RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-proxy
# Logrotate's su option is currently only available in Fedora
for component in agent server proxy; do
sed -i '/su /d' $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/zabbix-$component
done
# Init scripts
install -m 0755 -p %{SOURCE3} $RPM_BUILD_ROOT%{_initrddir}/zabbix-agentd
install -m 0755 -p %{SOURCE4} $RPM_BUILD_ROOT%{_initrddir}/zabbix-proxy
install -m 0755 -p %{SOURCE2} $RPM_BUILD_ROOT%{_initrddir}/zabbix-server
# Compatibility with old name
ln -sf %{_initrddir}/zabbix-agentd $RPM_BUILD_ROOT%{_initrddir}/zabbix-agent
# Install compatibility links for config files
#TODO: Switch to .wants files instead!
ln -sf %{_sysconfdir}/zabbix_agent.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/zabbix_agent.conf
ln -sf %{_sysconfdir}/zabbix_agentd.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/zabbix_agentd.conf
ln -sf %{_sysconfdir}/zabbix_server.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/zabbix_server.conf
ln -sf %{_sysconfdir}/zabbix_proxy.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/zabbix_proxy.conf
ln -sf %{_sharedstatedir}/zabbixsrv/externalscripts $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/externalscripts
ln -sf %{_sharedstatedir}/zabbixsrv/alertscripts $RPM_BUILD_ROOT%{_sysconfdir}/%{srcname}/alertscripts
#TODO: What does that do to existing directories?
# Directory for fping spooling files
mkdir $RPM_BUILD_ROOT%{_sharedstatedir}/zabbixsrv/tmp
# Install sql files
for db in postgresql mysql; do
datadir=$RPM_BUILD_ROOT%{_datadir}/%{srcname}-$db
install -dm 0755 $datadir/upgrades/{1.6,1.8,2.0}
cp -p database/$db/* $datadir
cp -pR upgrades/dbpatches/1.6/$db/* $datadir/upgrades/1.6
cp -pR upgrades/dbpatches/1.8/$db/* $datadir/upgrades/1.8
cp -pR upgrades/dbpatches/2.0/$db/* $datadir/upgrades/2.0
done
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3
cp -p database/sqlite3/schema.sql $RPM_BUILD_ROOT%{_datadir}/%{srcname}-sqlite3
%post server
/sbin/chkconfig --add zabbix-server
if [ $1 -gt 1 ]
then
# Apply permissions also in *.rpmnew upgrades from old permissive ones
chmod 0600 %{_sysconfdir}/zabbix_server.conf
chown zabbixsrv:zabbix %{_sysconfdir}/zabbix_server.conf
fi
:
%post server-mysql
%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_server \
%{srcname}-server %{_sbindir}/%{srcname}_server_mysql 10
%post server-pgsql
%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_server \
%{srcname}-server %{_sbindir}/%{srcname}_server_pgsql 10
%post proxy
/sbin/chkconfig --add zabbix-proxy
if [ $1 -gt 1 ]
then
# Apply permissions also in *.rpmnew upgrades from old permissive ones
chmod 0600 %{_sysconfdir}/zabbix_proxy.conf
chown zabbixsrv:zabbix %{_sysconfdir}/zabbix_proxy.conf
fi
:
%post proxy-mysql
%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_proxy \
%{srcname}-proxy %{_sbindir}/%{srcname}_proxy_mysql 10
%post proxy-pgsql
%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_proxy \
%{srcname}-proxy %{_sbindir}/%{srcname}_proxy_pgsql 10
%post proxy-sqlite3
%{_sbindir}/update-alternatives --install %{_sbindir}/%{srcname}_proxy \
%{srcname}-proxy %{_sbindir}/%{srcname}_proxy_sqlite3 10
%pre agent
getent group zabbix > /dev/null || groupadd -r zabbix
getent passwd zabbix > /dev/null || \
useradd -r -g zabbix -d %{_sharedstatedir}/zabbix -s /sbin/nologin \
-c "Zabbix Monitoring System" zabbix
:
%post agent
if [ $1 -eq 1 ] ; then
/sbin/chkconfig --add zabbix-agent || :
/sbin/chkconfig --add zabbix-agentd || :
fi
%pre server
getent group zabbixsrv > /dev/null || groupadd -r zabbixsrv
# The zabbixsrv group is introduced by 2.2 packaging
# The zabbixsrv user was a member of the zabbix group in 2.0
if getent passwd zabbixsrv > /dev/null; then
if [[ $(id -gn zabbixsrv) == "zabbix" ]]; then
usermod -c "Zabbix Monitoring System -- Proxy or server" -g zabbixsrv zabbixsrv
fi
else
useradd -r -g zabbixsrv -d %{_sharedstatedir}/zabbixsrv -s /sbin/nologin \
-c "Zabbix Monitoring System -- Proxy or server" zabbixsrv
fi
:
%preun server
if [ $1 -eq 0 ]
then
/sbin/service zabbix-server stop >/dev/null 2>&1
/sbin/chkconfig --del zabbix-server
fi
:
%pre proxy
getent group zabbixsrv > /dev/null || groupadd -r zabbixsrv
# The zabbixsrv group is introduced by 2.2 packaging
# The zabbixsrv user was a member of the zabbix group in 2.0
if getent passwd zabbixsrv > /dev/null; then
if [[ $(id -gn zabbixsrv) == "zabbix" ]]; then
usermod -c "Zabbix Monitoring System -- Proxy or server" -g zabbixsrv zabbixsrv
fi
else
useradd -r -g zabbixsrv -d %{_sharedstatedir}/zabbixsrv -s /sbin/nologin \
-c "Zabbix Monitoring System -- Proxy or server" zabbixsrv
fi
:
%preun proxy
if [ $1 -eq 0 ]
then
/sbin/service zabbix-proxy stop >/dev/null 2>&1
/sbin/chkconfig --del zabbix-proxy
fi
:
%preun agent
if [ $1 -eq 0 ] ; then
# Try to see which version has been enabled
if [ -f /var/lock/subsys/zabbix-agentd ] ; then
/sbin/service zabbix-agentd stop >/dev/null 2>&1
else
# Otherwise just stop zabbix-agent in case lock file is missing
/sbin/service zabbix-agent stop >/dev/null 2>&1
fi
/sbin/chkconfig --del zabbix-agent || :
/sbin/chkconfig --del zabbix-agentd || :
fi
%postun server
if [ $1 -ge 1 ] ; then
/sbin/service zabbix-server try-restart >/dev/null 2>&1 || :
fi
%postun server-mysql
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove %{srcname}-server %{_sbindir}/%{srcname}_server_mysql
fi
%postun server-pgsql
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove %{srcname}-server %{_sbindir}/%{srcname}_server_pgsql
fi
%postun proxy
if [ $1 -ge 1 ] ; then
/sbin/service zabbix-proxy try-restart >/dev/null 2>&1 || :
fi
%postun proxy-mysql
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_mysql
fi
%postun proxy-pgsql
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_pgsql
fi
%postun proxy-sqlite3
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove %{srcname}-proxy %{_sbindir}/%{srcname}_proxy_sqlite3
fi
%postun agent
if [ $1 -ge 1 ] ; then
# Try to see which version has been enabled
if [ -f /var/lock/subsys/zabbix-agentd ] ; then
/sbin/service zabbix-agentd try-restart >/dev/null 2>&1 || :
else
# Otherwise just restart zabbix-agent in case lock file is missing
/sbin/service zabbix-agent try-restart >/dev/null 2>&1 || :
fi
fi
%files
%doc AUTHORS ChangeLog COPYING NEWS README %{srcname}-fedora-epel.README
%dir %{_sysconfdir}/%{srcname}
%config(noreplace) %{_sysconfdir}/zabbix_agentd.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_agentd.conf
%{_bindir}/zabbix_get
%{_bindir}/zabbix_sender
%{_mandir}/man1/zabbix_get.1*
%{_mandir}/man1/zabbix_sender.1*
%files dbfiles-mysql
%doc COPYING
%{_datadir}/%{srcname}-mysql/
%files dbfiles-pgsql
%doc COPYING
%{_datadir}/%{srcname}-postgresql/
%files dbfiles-sqlite3
%doc COPYING
%{_datadir}/%{srcname}-sqlite3/
%files server
%doc misc/snmptrap/zabbix_trap_receiver.pl
%attr(0775,root,zabbixsrv) %dir %{_localstatedir}/log/zabbixsrv
%attr(0775,root,zabbixsrv) %dir %{_localstatedir}/run/zabbixsrv
%attr(0640,root,zabbixsrv) %config(noreplace) %{_sysconfdir}/zabbix_server.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_server.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/externalscripts
%config(noreplace) %{_sysconfdir}/%{srcname}/alertscripts
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-server
%ghost %{_sbindir}/zabbix_server
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/tmp
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/alertscripts
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/externalscripts
%{_initrddir}/zabbix-server
%{_mandir}/man8/zabbix_server.8*
%files server-mysql
%{_sbindir}/zabbix_server_mysql
%files server-pgsql
%{_sbindir}/zabbix_server_pgsql
%files agent
%doc conf/zabbix_agentd/*.conf
%attr(0775,root,zabbix) %dir %{_localstatedir}/log/zabbix
%attr(0775,root,zabbix) %dir %{_localstatedir}/run/zabbix
%config(noreplace) %{_sysconfdir}/zabbix_agent.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_agent.conf
%config(noreplace) %{_sysconfdir}/zabbix_agentd.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_agentd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-agent
%attr(750,zabbix,zabbix) %dir %{_sharedstatedir}/zabbix
%{_initrddir}/zabbix-agent
%{_initrddir}/zabbix-agentd
%{_sbindir}/zabbix_agent
%{_sbindir}/zabbix_agentd
%{_mandir}/man8/zabbix_agentd.8*
%files proxy
%doc misc/snmptrap/zabbix_trap_receiver.pl
%attr(0775,root,zabbixsrv) %dir %{_localstatedir}/log/zabbixsrv
%attr(0775,root,zabbixsrv) %dir %{_localstatedir}/run/zabbixsrv
%attr(0640,root,zabbixsrv) %config(noreplace) %{_sysconfdir}/zabbix_proxy.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/zabbix_proxy.conf
%config(noreplace) %{_sysconfdir}/%{srcname}/externalscripts
%config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
%ghost %{_sbindir}/zabbix_proxy
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/tmp
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/alertscripts
%attr(0750,zabbixsrv,zabbixsrv) %dir %{_sharedstatedir}/zabbixsrv/externalscripts
%{_initrddir}/zabbix-proxy
%{_mandir}/man8/zabbix_proxy.8*
%files proxy-mysql
%{_sbindir}/zabbix_proxy_mysql
%files proxy-pgsql
%{_sbindir}/zabbix_proxy_pgsql
%files proxy-sqlite3
%{_sbindir}/zabbix_proxy_sqlite3
%files web
%dir %attr(0750,apache,apache) %{_sysconfdir}/%{srcname}/web
%ghost %attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{srcname}/web/zabbix.conf.php
%attr(0644,apache,apache) %config(noreplace) %{_sysconfdir}/%{srcname}/web/maintenance.inc.php
%config(noreplace) %{_sysconfdir}/httpd/conf.d/zabbix.conf
%{_datadir}/%{srcname}
%files web-mysql
%files web-pgsql
%changelog
* Sat Sep 15 2018 Volker Fröhlich <volker27@gmx.at> - 2.2.23-1
- New upstream release
- iksemel is discontinued, so build without Jabber support
* Fri Dec 29 2017 Volker Fröhlich <volker27@gmx.at> - 2.2.21-1
- New upstream release
* Tue Sep 26 2017 Volker Fröhlich <volker27@gmx.at> - 2.2.20-1
- New upstream release
* Fri Jun 23 2017 Volker Fröhlich <volker27@gmx.at> - 2.2.18-1
- New upstream release
* Thu Dec 08 2016 Volker Fröhlich <volker27@gmx.at> - 2.2.16-1
- New upstream release
* Wed Oct 05 2016 Volker Fröhlich <volker27@gmx.at> - 2.2.15-1
- New upstream release
* Sun Jul 24 2016 Volker Fröhlich <volker27@gmx.at> - 2.2.14-1
- New upstream release
* Thu Nov 12 2015 Volker Fröhlich <volker27@gmx.at> - 2.2.11-1
- Add externalscripts and alertscripts to the files section again
* Tue Sep 1 2015 Orion Poplawski <orion@cora.nwra.com> - 2.2.10-1
- Update to 2.2.10
- Fix su removal from logrotate scripts
- Try to handle multiple agent init scripts better
* Mon Jan 27 2014 Volker Fröhlich <volker27@gmx.at> - 2.2.1-5
- Add externalscripts and alertscripts to the files section again
* Fri Jan 17 2014 Volker Fröhlich <volker27@gmx.at> - 2.2.1-4
- Preserve timestamp on all install commands
- Provide bundled md5-deutsch
- Make server and proxy sub-packages noarch
- Add noarch sub-packages for DB files
* Thu Jan 9 2014 Volker Fröhlich <volker27@gmx.at> - 2.2.1-3
- Correct directory permissions
- Correct Conflicts directives
- Effectively remove the su line from logrotate configs for EPEL
- Fix changelog weekdays
* Wed Jan 8 2014 Volker Fröhlich <volker27@gmx.at> - 2.2.1-2
- Add version specification to Conflicts
- Correct /var/lib/zabbixsrv owner and permissions
- Use dir directive for home directories and their sub-directories
* Sun Jan 5 2014 Volker Fröhlich <volker27@gmx.at> - 2.2.1-1.1
- New major release
- Update config patch
- Provide "zabbix"
- Add libxml2-devel as BR for VMware monitoring and --with-libxml2 flag
- Move user zabbixsrv to his own group
- Split tmpfiles.d, thus solve BZ#982001
- Split lock, log and run locations
- Adapt ownership and permissions
- Rename agent init script/unit file and leave symlinks for compatibility
- Remove privatetmp option from unit files, as the temporary pinger files
are now located underneath the daemon's home directory
- Update README
* Sun Dec 15 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.10-2
- The start function of the proxy init script had a typo causing failure
- Improved the section on running multiple instances in the README
* Fri Dec 13 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.10-1
- New upstream release
- Drop obsolete patch ZBX-7479
- Improve init scripts to not kill other instances (BZ#1018293)
- General overhaul of init scripts and documentation in README
- Harmonize scriptlet if-clause style
* Sun Nov 3 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.9-2
- Fix vulnerability for remote command execution injection
(ZBX-7479, CVE-2013-6824)
* Wed Oct 9 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.9-1
- New upstream release
- Drop obsolete patches ZBX-6804, ZBX-7091, ZBX-6922, ZBX-6992
* Mon Sep 23 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.8-3
- Add SQL speed-up patch (ZBX-6804)
- Add SQL injection vulnerability patch (ZBX-7091, CVE-2013-5743)
- Add patch for failing XML host import (ZBX-6922)
* Fri Sep 13 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.8-2
- Add php-ldap as a requirement for the frontend
- Add patch for ZBX-6992
* Fri Aug 23 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.8-1
- New upstream release
- Create and configure a spooling directory for fping files outside of /tmp
- Update README to reflect that and add a SELinux section
- Drop PrivateTmp from systemd unit files
- Drop patch for ZBX-6526 (solved upstream)
- Drop patch for CVE-2012-6086 (solved upstream)
- Correct path for the flash applet when removing
- Truncate changelog
* Tue Jul 30 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.6-3
- Backport fix for CVE-2012-6086
* Tue May 07 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.6-2
- Add patch for ZBX-6526
- Solve permission problem with /var/run/zabbix in Fedora (BZ#904041)
- Remove origin of directories BZ#867159, comment 14 and 16
* Mon Apr 22 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.6-1
- New upstream release
- Drop ZBX-6290 and ZBX-6318 patches
* Tue Mar 19 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.5-3
- Include patch for ZBX-6318
* Tue Feb 12 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.5-2
- Include patch for ZBX-6290
* Tue Feb 12 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.5-1
- New upstream release
- Drop now-included patches
- Init file comments point to the actual configuration files now
* Sat Feb 9 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.4-5
- Dispensable version of COPYING is no more
- Correct path to traceroute in DB dumps again
* Tue Jan 22 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.4-4
- Remove zabbix_get plus manpage from the proxy files section
- Solve conflict for externalscripts symlink between proxy and
server package
* Thu Jan 17 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.4-3
- Patch for CVE-2013-1364
* Mon Jan 14 2013 Volker Fröhlich <volker27@gmx.at> - 2.0.4-2
- Apply patch for ZBX-6101
- Add su line to logrotate config file
- Do not own /var/run/zabbix on Fedora, systemd manages it
- Add forgotten chkconfig and service commands on agent preun script
* Sat Dec 8 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.4-1
- New upstream release
* Fri Dec 7 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-7
- Add SNMP source IP address patch
* Mon Nov 26 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-6
- Apply fping 3 patch only for Fedora
* Tue Nov 13 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-5
- Adapt httpd configuration file for Apache 2.4 (BZ#871498)
* Thu Nov 8 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-4
- Require php explicitly again
- Remove traces of /usr/local in configuration files
- Improve Fedora README file
* Sun Oct 14 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-3
- Correct capitalization in unit files, init scripts and package description
- Improve sysconfig sourcing in init scripts
- Correct post-script permissions and owner on rpmnew files
- Obsolete sqlite web and server sub-package
* Sun Oct 14 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-2
- Include agent configuration file in base package for zabbix_sender
- Stricter permissions for server config file
- Adapt DB patches to our file layout
- Remove conditional around Source9
- doc-sub-package obsolete only for Fedora, where the package keeps
the name "zabbix"
- Add missing requirement for proxy scriplet
- Remove Requires php because the PHP modules serve this purpose
- Use systemd's PrivateTmp only for F17 and up
- Correct proxy and server pre-scriplet (usergroup)
* Fri Oct 5 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.3-1
- New upstream release
- Add Fedora specific README
* Mon Aug 27 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.2-3
- Eliminate Sqlite server and web sub-package
They never worked and are considered experimental by upstream
- Harmonize conditionals
- Put maintenance configuration in web configuration directory
- Adapt man pages to file layout
- Remove backup files from frontend
- Move maintenance configuration file to /etc/...
- Move ExternalScripts and AlertScripts to daemon home directory
- Don't ship SQL scripts as documentation
* Sun Aug 26 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.2-2
- Use separate daemon users, so the agent can not parse the
database password
- Use PrivateTmp in unit files
* Wed Aug 15 2012 Volker Fröhlich <volker27@gmx.at> - 2.0.2-1
- New upstream release
- Unified specfile for sys-v-init scripts and systemd
- Switch to Alternatives system
- Source from systemconfig in init scripts
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jul 12 2012 Dan Horák <dan[at]danny.cz> - 2.0.1-1
- update to 2.0.1
- rebased patches
- upstream location (/etc) for config files is used with symlinks to the old /etc/zabbix
- dropped our own SNMP trap processor, upstream one running directly under net-snmp daemon is used instead
- moved zabbix_get and zabbix_sender tools to the main package