2 # - initscript for zabbix-server, zabbix-proxy and zabbix-java
5 %bcond_without pgsql # enable PostgreSQL support
6 %bcond_without sqlite3 # enable sqlite3 support
7 %bcond_without mysql # enable MySQL support
8 %bcond_without java # disable java support
10 %define databases %{?with_sqlite3:sqlite3} %{?with_pgsql:postgresql} %{?with_mysql:mysql}
11 %define any_database %{with pgsql}%{with mysql}%{with sqlite3}
13 %define php_min_version 5.4.0
14 Summary: Zabbix - network monitoring software
15 Summary(pl.UTF-8): Zabbix - oprogramowanie do monitorowania sieci
20 Group: Networking/Utilities
21 Source0: https://cdn.zabbix.com/zabbix/sources/stable/6.0/%{name}-%{version}.tar.gz
22 # Source0-md5: 9151f516132d7219a0cda09ddd79697d
23 Source1: %{name}-apache.conf
24 Source2: %{name}_agentd.init
25 Source3: %{name}_server.init
26 Source4: %{name}_proxy.init
28 Patch1: sqlite3_dbname.patch
29 Patch2: always_compile_ipc.patch
30 URL: https://www.zabbix.com/
31 BuildRequires: OpenIPMI-devel
32 BuildRequires: autoconf
33 BuildRequires: automake >= 1:1.15
34 BuildRequires: curl-devel
35 #BuildRequires: iksemel-devel
36 %{?with_java:BuildRequires: jdk}
37 BuildRequires: libevent-devel
38 BuildRequires: libssh2-devel
39 BuildRequires: libtool
40 BuildRequires: libxml2-devel
41 %{?with_mysql:BuildRequires: mysql-devel}
42 BuildRequires: net-snmp-devel
43 BuildRequires: openldap-devel >= 2.4.6
44 BuildRequires: openssl-devel >= 0.9.7d
45 BuildRequires: pcre-devel
46 %{?with_pgsql:BuildRequires: postgresql-devel}
47 BuildRequires: rpmbuild(macros) >= 1.671
48 %{?with_sqlite3:BuildRequires: sqlite3-devel}
49 BuildRequires: unixODBC-devel
50 BuildRequires: zlib-devel
51 Requires(postun): /usr/sbin/groupdel
52 Requires(postun): /usr/sbin/userdel
53 Requires(pre): /bin/id
54 Requires(pre): /usr/bin/getgid
55 Requires(pre): /usr/sbin/groupadd
56 Requires(pre): /usr/sbin/useradd
57 Provides: group(zabbix)
58 Provides: user(zabbix)
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 %define _sysconfdir /etc/%{name}
62 %define _appdir %{_datadir}/%{name}
63 %define _webapps /etc/webapps
64 %define _webapp %{name}
67 Zabbix is software that monitors numerous parameters of a network and
68 the servers on that network. It is a useful tool for monitoring the
69 health and integrity of servers. Zabbix uses a flexible notification
70 mechanism that allows users to configure email based alerts for
71 virtually any event. All monitored parameters are stored in a
72 database. Zabbix offers excellent reporting and data visualisation
73 features based on the stored data. Zabbix supports both polling and
74 trapping. All Zabbix reports and statistics, as well as configuration
75 parameters, are accessed through a web-based front end.
77 %description -l pl.UTF-8
78 Zabbix to oprogramowanie do monitorowania licznych parametrów sieci i
79 serwerów sieciowych. Jest przydatny przy monitorowaniu działania
80 serwerów. Jorzysta z elastycznego mechanizmu powiadamiania, który
81 pozwala użytkownikom konfigurować powiadamianie pocztą elektroniczną
82 dla praktycznie wszelkich zdarzeń. Monitorowane parametry są
83 przechowywane w bazie danych. W oparciu o przechowywane dane Zabbix
84 oferuje świetne raportowanie i funkcje wizualizacji. Wspiera zarówno
85 odpytywanie jak i pułapkowanie. Dostęp do wszystkich raportów i
86 statystyk Zabbixa jest możliwy poprzez interfejs oparty o WWW.
90 Summary(pl.UTF-8): Agenta Zabbixa
91 Group: Networking/Utilities
92 Requires: %{name} = %{version}-%{release}
93 Obsoletes: zabbix-agent-inetd
94 Obsoletes: zabbix-agent-standalone
95 Requires(post,preun): /sbin/chkconfig
99 Zabbix agent collects data from the local system for a Zabbix server.
101 %description agentd -l pl.UTF-8
102 Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
105 Summary: Web frontend for Zabbix
106 Summary(pl.UTF-8): Interfejs Web dla Zabbixa
107 Group: Applications/WWW
108 Requires: php(bcmath)
109 Requires: php(core) >= %{php_min_version}
112 Requires: php(gettext)
114 Requires: php(mbstring)
116 Requires: php(session)
117 Requires: php(sockets)
119 Requires: php(xmlreader)
120 Requires: php(xmlwriter)
122 Requires: webserver(alias)
123 Requires: webserver(indexfile)
124 Requires: webserver(php)
127 Suggests: php(sqlite3)
129 Suggests: php(sysvsem)
133 This package provides web based (PHP) frontend for Zabbix.
135 %description web -l pl.UTF-8
136 Ten pakiet dostarcza napisany w PHP frontend dla Zabbixa.
139 Summary: Zabbix proxy
140 Summary(pl.UTF-8): Proxy do Zabbixa
141 Group: Networking/Utilities
142 Requires: %{name} = %{version}-%{release}
143 Requires: zabbix-proxy(db) = %{version}-%{release}
146 This package provides the Zabbix proxy.
148 %description proxy -l pl.UTF-8
149 Ten pakiet zawiera proxy Zabbix.
152 Summary: MySQL support for Zabbix proxy
153 Summary(pl.UTF-8): Obsługa MySQL dla proxy do Zabbixa
154 Group: Networking/Utilities
155 Provides: %{name}-proxy(db) = %{version}-%{release}
156 Obsoletes: zabbix-proxy-postgresql
157 Obsoletes: zabbix-proxy-sqlite3
159 %description proxy-mysql
160 This package provides the Zabbix proxy binary with MySQL support.
162 %description proxy-mysql -l pl.UTF-8
163 Ten pakiet zawiera proxy Zabbix z obsługą MySQL.
165 %package proxy-postgresql
166 Summary: PostgreSQL support for Zabbix proxy
167 Summary(pl.UTF-8): Obsługa PostgreSQL dla proxy do Zabbixa
168 Group: Networking/Utilities
169 Provides: %{name}-proxy(db) = %{version}-%{release}
170 Obsoletes: zabbix-proxy-mysql
171 Obsoletes: zabbix-proxy-sqlite3
173 %description proxy-postgresql
174 This package provides the Zabbix proxy binary with PostgreSQL support.
176 %description proxy-postgresql -l pl.UTF-8
177 Ten pakiet zawiera proxy Zabbix z obsługą PostgreSQL.
179 %package proxy-sqlite3
180 Summary: SQLite 3 support for Zabbix proxy
181 Summary(pl.UTF-8): Obsługa SQLite 3 dla proxy do Zabbixa
182 Group: Networking/Utilities
183 Provides: %{name}-proxy(db) = %{version}-%{release}
184 Obsoletes: zabbix-proxy-mysql
185 Obsoletes: zabbix-proxy-postgresql
187 %description proxy-sqlite3
188 This package provides the Zabbix proxy binary with SQLite 3 support.
190 %description proxy-sqlite3 -l pl.UTF-8
191 Ten pakiet zawiera proxy Zabbix z obsługą SQLite 3.
194 Summary: Zabbix server
195 Summary(pl.UTF-8): Serwer Zabbixa
196 Group: Networking/Utilities
197 Requires: %{name} = %{version}-%{release}
198 Requires: %{name}-server(db) = %{version}-%{release}
199 Obsoletes: zabbix-suckerd
200 Obsoletes: zabbix-trapper-inetd
201 Obsoletes: zabbix-trapper-standalone
204 This package provides the Zabbix server.
206 %description server -l pl.UTF-8
207 Ten pakiet zawiera serwer Zabbixa.
209 %package server-mysql
210 Summary: MySQL support for Zabbix server
211 Summary(pl.UTF-8): Obsługa MySQL sla serwera Zabbixa
212 Group: Networking/Utilities
213 Provides: %{name}-server(db) = %{version}-%{release}
214 Obsoletes: zabbix-server-postgresql
215 Obsoletes: zabbix-server-sqlite3
217 %description server-mysql
218 This package provides the Zabbix server binary for use with MySQL
221 %description server-mysql -l pl.UTF-8
222 Ten pakiet zawiera serwer Zabbixa z obsługą bazy danych MySQL.
224 %package server-postgresql
225 Summary: PostgreSQL support for Zabbix server
226 Summary(pl.UTF-8): Obsługa PostgreSQL sla serwera Zabbixa
227 Group: Networking/Utilities
228 Provides: %{name}-server(db) = %{version}-%{release}
229 Obsoletes: zabbix-server-mysql
230 Obsoletes: zabbix-server-sqlite3
232 %description server-postgresql
233 This package provides the Zabbix server binary for use with PostgreSQL
236 %description server-postgresql -l pl.UTF-8
237 Ten pakiet zawiera serwer Zabbixa z obsługą bazy danych PostgreSQL.
240 Summary: Zabbix Java Gateway
241 Group: Networking/Utilities
242 Requires: %{name} = %{version}-%{release}
245 This package provides the Zabbix Java Gateway.
266 %{__enable_disable java} \
285 for database in %{databases} ; do
286 if [ "$database" = "sqlite3" ] ; then
289 enable_server="--enable-server"
298 if [ "$enable_server" ] ; then
300 -C src/zabbix_server \
301 DESTDIR=$PWD/install-${database}
305 -C src/zabbix_proxy \
306 DESTDIR=$PWD/install-${database}
310 rm -rf $RPM_BUILD_ROOT
311 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/rc.d/init.d,/etc/webapps/%{_webapp},%{_appdir}} \
312 $RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix}
315 DESTDIR=$RPM_BUILD_ROOT \
316 ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
318 for database in %{databases} ; do
319 if [ "$database" != "sqlite3" ] ; then
320 cp -p install-$database/%{_sbindir}/zabbix_server \
321 $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
323 cp -p install-$database/%{_sbindir}/zabbix_proxy \
324 $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
327 if [ -n "$database" ] ; then
328 ln -sf %{_sbindir}/zabbix_server-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_server
329 ln -sf %{_sbindir}/zabbix_proxy-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy
332 cp -r ui $RPM_BUILD_ROOT%{_appdir}
334 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
335 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
337 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
338 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_server
339 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_proxy
341 mv $RPM_BUILD_ROOT%{_appdir}/ui/conf $RPM_BUILD_ROOT%{_sysconfdir}/web
342 ln -s %{_sysconfdir}/web $RPM_BUILD_ROOT%{_appdir}/ui/conf
343 touch $RPM_BUILD_ROOT%{_sysconfdir}/web/zabbix.conf.php
346 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix_java.conf
347 ln -s %{_sysconfdir}/zabbix_java.conf $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh
348 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback.xml
349 ln -s %{_sysconfdir}/java-logback.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml
350 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback-console.xml
351 ln -s %{_sysconfdir}/java-logback-console.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml
353 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-start <<'EOF'
356 exec %{_datadir}/zabbix_java/startup.sh "$@"
359 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-stop <<'EOF'
362 exec %{_datadir}/zabbix_java/shutdown.sh "$@"
367 rm -rf $RPM_BUILD_ROOT
369 %triggerin web -- apache < 2.2.0, apache-base
370 %webapp_register httpd %{_webapp}
372 %triggerun web -- apache < 2.2.0, apache-base
373 %webapp_unregister httpd %{_webapp}
376 %groupadd -g 111 zabbix
377 %useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
378 %addusertogroup -q zabbix proc
381 if [ "$1" = "0" ]; then
387 if [ "$1" = 1 ]; then
388 %banner -e %{name}-server <<-EOF
389 You should create database for Zabbix.
391 Running these should be fine in most cases:
393 mysqladmin create zabbix
394 zcat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql.gz | mysql zabbix
395 zcat %{_docdir}/%{name}-server-mysql-%{version}/images.sql.gz | mysql zabbix
396 zcat %{_docdir}/%{name}-server-mysql-%{version}/data.sql.gz | mysql zabbix
399 ln -sf %{_sbindir}/zabbix_server-mysql %{_sbindir}/zabbix_server || :
401 %post server-postgresql
402 if [ "$1" = 1 ]; then
403 %banner -e %{name}-server <<-EOF
404 You should create database for Zabbix.
406 Running these should be fine in most cases:
408 createuser -U postgres zabbix
409 createdb -U postgres -O zabbix zabbix
410 zcat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql.gz | psql -U zabbix zabbix
411 zcat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql.gz | psql -U zabbix zabbix
412 zcat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql.gz | psql -U zabbix zabbix
415 ln -sf %{_sbindir}/zabbix_server-postgresql %{_sbindir}/zabbix_server || :
418 /sbin/chkconfig --add zabbix_server
419 %service zabbix_server restart
422 if [ "$1" = "0" ]; then
423 %service -q zabbix_server stop
424 /sbin/chkconfig --del zabbix_server
426 if [ "$1" = "0" ]; then
427 if [ -L %{_sbindir}/zabbix_server ] ; then
428 rm -f %{_sbindir}/zabbix_server || :
433 /sbin/chkconfig --add zabbix_agentd
434 %service zabbix_agentd restart
437 if [ "$1" = "0" ]; then
438 %service -q zabbix_agentd stop
439 /sbin/chkconfig --del zabbix_agentd
443 ln -sf %{_sbindir}/zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
445 %post proxy-postgresql
446 ln -sf %{_sbindir}/zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
449 ln -sf %{_sbindir}/zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
452 /sbin/chkconfig --add zabbix_server
453 %service zabbix_server restart
456 if [ "$1" = "0" ]; then
457 %service -q zabbix_proxy stop
458 /sbin/chkconfig --del zabbix_proxy
460 if [ "$1" = "0" ]; then
461 if [ -L %{_sbindir}/zabbix_proxy ] ; then
462 rm -f %{_sbindir}/zabbix_proxy || :
467 %defattr(644,root,root,755)
468 %doc AUTHORS ChangeLog README
469 %attr(755,root,root) %{_bindir}/zabbix_get
470 %attr(755,root,root) %{_bindir}/zabbix_js
471 %attr(755,root,root) %{_bindir}/zabbix_sender
472 %attr(751,root,zabbix) %dir %{_sysconfdir}
473 %attr(751,root,http) %dir %{_sysconfdir}/web
475 %dir %attr(770,root,zabbix) /var/run/zabbix
476 %dir %attr(775,root,zabbix) /var/log/zabbix
477 %{_mandir}/man1/zabbix_get*
478 %{_mandir}/man1/zabbix_sender*
481 %defattr(644,root,root,755)
482 %doc conf/zabbix_agentd/*.conf
483 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
484 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
485 %attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
486 %attr(755,root,root) %{_sbindir}/zabbix_agentd
487 %{_mandir}/man8/zabbix_agentd*
490 %defattr(644,root,root,755)
491 %attr(750,root,http) %dir %{_webapps}/%{_webapp}
492 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
493 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
494 %ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/zabbix.conf.php
495 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/.htaccess
496 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/maintenance.inc.php
497 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/zabbix.conf.php.example
502 %defattr(644,root,root,755)
503 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
504 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
505 %attr(754,root,root) /etc/rc.d/init.d/zabbix_proxy
506 %ghost %attr(755,root,root) %{_sbindir}/zabbix_proxy
507 %{_mandir}/man8/zabbix_proxy*
512 %defattr(644,root,root,755)
513 %attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
517 %files proxy-postgresql
518 %defattr(644,root,root,755)
519 %attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
524 %defattr(644,root,root,755)
525 %attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
531 %defattr(644,root,root,755)
532 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
533 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
534 %attr(754,root,root) /etc/rc.d/init.d/zabbix_server
535 %ghost %attr(755,root,root) %{_sbindir}/zabbix_server
536 %{_mandir}/man8/zabbix_server*
541 %defattr(644,root,root,755)
542 %doc database/mysql/*.sql
543 %attr(755,root,root) %{_sbindir}/zabbix_server-mysql
547 %files server-postgresql
548 %defattr(644,root,root,755)
549 %doc database/postgresql/*.sql
550 %attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
555 %defattr(644,root,root,755)
556 %attr(755,root,root) %{_sbindir}/zabbix_java-start
557 %attr(755,root,root) %{_sbindir}/zabbix_java-stop
558 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_java.conf
559 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback.xml
560 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback-console.xml
561 %dir %{_datadir}/zabbix_java
562 %{_datadir}/zabbix_java/bin
563 %{_datadir}/zabbix_java/lib
564 %{_datadir}/zabbix_java/settings.sh
565 %attr(755,root,root) %{_datadir}/zabbix_java/shutdown.sh
566 %attr(755,root,root) %{_datadir}/zabbix_java/startup.sh