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: http://downloads.sourceforge.net/zabbix/%{name}-%{version}.tar.gz
22 # Source0-md5: 3a53e2e4c18fde9edbe34a89cc7d8297
23 Source1: %{name}-apache.conf
24 Source2: %{name}_server.service
25 Source3: %{name}_agentd.service
26 Source4: %{name}_proxy.service
27 Source5: %{name}_java.service
28 Source6: %{name}.tmpfiles
29 Source7: %{name}_agentd.init
31 Patch1: sqlite3_dbname.patch
32 Patch2: always_compile_ipc.patch
33 Patch3: http_poller_crash.patch
34 URL: http://zabbix.sourceforge.net/
35 BuildRequires: OpenIPMI-devel
36 BuildRequires: autoconf
37 BuildRequires: automake >= 1:1.15
38 BuildRequires: curl-devel
39 BuildRequires: iksemel-devel
40 %{?with_java:BuildRequires: jdk}
41 BuildRequires: libevent-devel
42 BuildRequires: libssh2-devel
43 BuildRequires: libtool
44 BuildRequires: libxml2-devel
45 %{?with_mysql:BuildRequires: mysql-devel}
46 BuildRequires: net-snmp-devel
47 BuildRequires: openldap-devel >= 2.4.6
48 BuildRequires: openssl-devel >= 0.9.7d
49 BuildRequires: pcre-devel
50 %{?with_pgsql:BuildRequires: postgresql-devel}
51 BuildRequires: rpmbuild(macros) >= 1.671
52 %{?with_sqlite3:BuildRequires: sqlite3-devel}
53 BuildRequires: unixODBC-devel
54 BuildRequires: zlib-devel
55 Requires: %{name}-agentd = %{version}-%{release}
56 Requires: %{name}-frontend-php = %{version}-%{release}
57 Requires: %{name}-server = %{version}-%{release}
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 %define _sysconfdir /etc/%{name}
61 %define _appdir %{_datadir}/%{name}
62 %define _webapps /etc/webapps
63 %define _webapp %{name}
66 Zabbix is software that monitors numerous parameters of a network and
67 the servers on that network. It is a useful tool for monitoring the
68 health and integrity of servers. Zabbix uses a flexible notification
69 mechanism that allows users to configure email based alerts for
70 virtually any event. All monitored parameters are stored in a
71 database. Zabbix offers excellent reporting and data visualisation
72 features based on the stored data. Zabbix supports both polling and
73 trapping. All Zabbix reports and statistics, as well as configuration
74 parameters, are accessed through a web-based front end.
76 %description -l pl.UTF-8
77 Zabbix to oprogramowanie do monitorowania licznych parametrów sieci i
78 serwerów sieciowych. Jest przydatny przy monitorowaniu działania
79 serwerów. Jorzysta z elastycznego mechanizmu powiadamiania, który
80 pozwala użytkownikom konfigurować powiadamianie pocztą elektroniczną
81 dla praktycznie wszelkich zdarzeń. Monitorowane parametry są
82 przechowywane w bazie danych. W oparciu o przechowywane dane Zabbix
83 oferuje świetne raportowanie i funkcje wizualizacji. Wspiera zarówno
84 odpytywanie jak i pułapkowanie. Dostęp do wszystkich raportów i
85 statystyk Zabbiksa jest możliwy poprzez interfejs oparty o WWW.
88 Summary: Common files for Zabbix monitoring software
89 Summary(pl.UTF-8): Wspólne pliki dla oprogramowania monitorującego Zabbix
90 Group: Networking/Utilities
91 Requires(postun): /usr/sbin/groupdel
92 Requires(postun): /usr/sbin/userdel
93 Requires(pre): /bin/id
94 Requires(pre): /usr/bin/getgid
95 Requires(pre): /usr/sbin/groupadd
96 Requires(pre): /usr/sbin/useradd
97 Provides: group(zabbix)
98 Provides: user(zabbix)
101 Common files for Zabbix monitoring software.
103 %description common -l pl.UTF-8
104 Wspólne pliki dla oprogramowania monitorującego Zabbix.
107 Summary: Zabbix Agent
108 Summary(pl.UTF-8): Agenta Zabbiksa
109 Group: Networking/Utilities
110 Requires: %{name}-common = %{version}-%{release}
111 Requires: systemd-units >= 38
112 Obsoletes: zabbix-agent-inetd
113 Obsoletes: zabbix-agent-standalone
114 Requires(post,preun): /sbin/chkconfig
118 Zabbix agent collects data from the local system for a Zabbix server.
120 %description agentd -l pl.UTF-8
121 Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
123 %package frontend-php
124 Summary: PHP frontend for Zabbix
125 Summary(pl.UTF-8): Interfejs PHP dla Zabbiksa
126 Group: Applications/WWW
127 Requires: php(bcmath)
128 Requires: php(core) >= %{php_min_version}
131 Requires: php(gettext)
133 Requires: php(mbstring)
135 Requires: php(session)
136 Requires: php(sockets)
138 Requires: php(xmlreader)
139 Requires: php(xmlwriter)
141 Requires: webserver(alias)
142 Requires: webserver(indexfile)
143 Requires: webserver(php)
146 Suggests: php(sqlite3)
148 Suggests: php(sysvsem)
151 %description frontend-php
152 This package provides web based (PHP) frontend for Zabbix.
154 %description frontend-php -l pl.UTF-8
155 Ten pakiet dostarcza napisany w PHP frontend dla Zabbiksa.
158 Summary: Program retrieving data from Zabbix agent
159 Summary(pl.UTF-8): Program odpytujÄcy agenta Zabbiksa
160 Group: Networking/Utilities
163 This package provides a program retrieving data from Zabbix agent.
165 %description get -l pl.UTF-8
166 Ten pakiet zawiera program odpytujÄcy agenta Zabbiksa.
169 Summary: Zabbix proxy
170 Summary(pl.UTF-8): Proxy do Zabbiksa
171 Group: Networking/Utilities
172 Requires: %{name}-common = %{version}-%{release}
173 Requires: systemd-units >= 38
174 Requires: zabbix-proxy(db) = %{version}-%{release}
177 This package provides the Zabbix proxy.
179 %description proxy -l pl.UTF-8
180 Ten pakiet zawiera proxy Zabbix.
183 Summary: MySQL support for Zabbix proxy
184 Summary(pl.UTF-8): Obsługa MySQL dla proxy do Zabbiksa
185 Group: Networking/Utilities
186 Provides: %{name}-proxy(db) = %{version}-%{release}
187 Obsoletes: zabbix-proxy-postgresql
188 Obsoletes: zabbix-proxy-sqlite3
190 %description proxy-mysql
191 This package provides the Zabbix proxy binary with MySQL support.
193 %description proxy-mysql -l pl.UTF-8
194 Ten pakiet zawiera proxy Zabbix z obsługą MySQL.
196 %package proxy-postgresql
197 Summary: PostgreSQL support for Zabbix proxy
198 Summary(pl.UTF-8): Obsługa PostgreSQL dla proxy do Zabbiksa
199 Group: Networking/Utilities
200 Provides: %{name}-proxy(db) = %{version}-%{release}
201 Obsoletes: zabbix-proxy-mysql
202 Obsoletes: zabbix-proxy-sqlite3
204 %description proxy-postgresql
205 This package provides the Zabbix proxy binary with PostgreSQL support.
207 %description proxy-postgresql -l pl.UTF-8
208 Ten pakiet zawiera proxy Zabbix z obsługą PostgreSQL.
210 %package proxy-sqlite3
211 Summary: SQLite 3 support for Zabbix proxy
212 Summary(pl.UTF-8): Obsługa SQLite 3 dla proxy do Zabbiksa
213 Group: Networking/Utilities
214 Provides: %{name}-proxy(db) = %{version}-%{release}
215 Obsoletes: zabbix-proxy-mysql
216 Obsoletes: zabbix-proxy-postgresql
218 %description proxy-sqlite3
219 This package provides the Zabbix proxy binary with SQLite 3 support.
221 %description proxy-sqlite3 -l pl.UTF-8
222 Ten pakiet zawiera proxy Zabbix z obsługą SQLite 3.
225 Summary: Zabbix sender
226 Summary(pl.UTF-8): Program zawiadamiający Zabbiksa
227 Group: Networking/Utilities
230 This package provides the Zabbix sender.
232 %description sender -l pl.UTF-8
233 Ten pakiet zawiera program zawiadamiający Zabbiksa.
236 Summary: Zabbix server
237 Summary(pl.UTF-8): Serwer Zabbiksa
238 Group: Networking/Utilities
239 Requires: %{name}-common = %{version}-%{release}
240 Requires: %{name}-server(db) = %{version}-%{release}
241 Requires: systemd-units >= 38
242 Obsoletes: zabbix-suckerd
243 Obsoletes: zabbix-trapper-inetd
244 Obsoletes: zabbix-trapper-standalone
247 This package provides the Zabbix server.
249 %description server -l pl.UTF-8
250 Ten pakiet zawiera serwer Zabbiksa.
252 %package server-mysql
253 Summary: MySQL support for Zabbix server
254 Summary(pl.UTF-8): Obsługa MySQL sla serwera Zabbiksa
255 Group: Networking/Utilities
256 Provides: %{name}-server(db) = %{version}-%{release}
257 Obsoletes: zabbix-server-postgresql
258 Obsoletes: zabbix-server-sqlite3
260 %description server-mysql
261 This package provides the Zabbix server binary for use with MySQL
264 %description server-mysql -l pl.UTF-8
265 Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych MySQL.
267 %package server-postgresql
268 Summary: PostgreSQL support for Zabbix server
269 Summary(pl.UTF-8): Obsługa PostgreSQL sla serwera Zabbiksa
270 Group: Networking/Utilities
271 Provides: %{name}-server(db) = %{version}-%{release}
272 Obsoletes: zabbix-server-mysql
273 Obsoletes: zabbix-server-sqlite3
275 %description server-postgresql
276 This package provides the Zabbix server binary for use with PostgreSQL
279 %description server-postgresql -l pl.UTF-8
280 Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych PostgreSQL.
283 Summary: Zabbix Java Gateway
284 Group: Networking/Utilities
285 Requires: %{name}-common = %{version}-%{release}
286 Requires: systemd-units >= 38
289 This package provides the Zabbix Java Gateway.
310 %{__enable_disable java} \
329 for database in %{databases} ; do
330 if [ "$database" = "sqlite3" ] ; then
333 enable_server="--enable-server"
342 if [ "$enable_server" ] ; then
344 -C src/zabbix_server \
345 DESTDIR=$PWD/install-${database}
349 -C src/zabbix_proxy \
350 DESTDIR=$PWD/install-${database}
354 rm -rf $RPM_BUILD_ROOT
355 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/rc.d/init.d,/etc/webapps/%{_webapp},%{_appdir}} \
356 $RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{systemdtmpfilesdir}}
359 DESTDIR=$RPM_BUILD_ROOT \
360 ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
362 for database in %{databases} ; do
363 if [ "$database" != "sqlite3" ] ; then
364 cp -p install-$database/%{_sbindir}/zabbix_server \
365 $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
367 cp -p install-$database/%{_sbindir}/zabbix_proxy \
368 $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
371 if [ -n "$database" ] ; then
372 ln -sf %{_sbindir}/zabbix_server-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_server
373 ln -sf %{_sbindir}/zabbix_proxy-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy
377 install -d $RPM_BUILD_ROOT/var/lib/zabbix
378 touch $RPM_BUILD_ROOT/var/lib/zabbix/zabbix.db
381 cp -r frontends $RPM_BUILD_ROOT%{_appdir}
383 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
384 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
386 install %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_server.service
387 install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_agentd.service
388 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
389 install %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_proxy.service
390 install %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_java.service
392 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/zabbix.conf
394 mv $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf $RPM_BUILD_ROOT%{_sysconfdir}/frontend
395 ln -s %{_sysconfdir}/frontend $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf
396 touch $RPM_BUILD_ROOT%{_sysconfdir}/frontend/zabbix.conf.php
399 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix_java.conf
400 ln -s %{_sysconfdir}/zabbix_java.conf $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh
401 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback.xml
402 ln -s %{_sysconfdir}/java-logback.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml
403 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback-console.xml
404 ln -s %{_sysconfdir}/java-logback-console.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml
406 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-start <<'EOF'
409 exec %{_datadir}/zabbix_java/startup.sh "$@"
412 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-stop <<'EOF'
415 exec %{_datadir}/zabbix_java/shutdown.sh "$@"
420 rm -rf $RPM_BUILD_ROOT
422 %triggerin frontend-php -- apache1 < 1.3.37-3, apache1-base
423 %webapp_register apache %{_webapp}
425 %triggerun frontend-php -- apache1 < 1.3.37-3, apache1-base
426 %webapp_unregister apache %{_webapp}
428 %triggerin frontend-php -- apache < 2.2.0, apache-base
429 %webapp_register httpd %{_webapp}
431 %triggerun frontend-php -- apache < 2.2.0, apache-base
432 %webapp_unregister httpd %{_webapp}
435 %groupadd -g 111 zabbix
436 %useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
437 %addusertogroup -q zabbix proc
440 if [ "$1" = "0" ]; then
446 if [ "$1" = 1 ]; then
447 %banner -e %{name}-server <<-EOF
448 You should create database for Zabbix.
450 Running these should be fine in most cases:
451 mysqladmin create zabbix
452 zcat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql.gz | mysql zabbix
453 zcat %{_docdir}/%{name}-server-mysql-%{version}/images.sql.gz | mysql zabbix
454 zcat %{_docdir}/%{name}-server-mysql-%{version}/data.sql.gz | mysql zabbix
457 ln -sf %{_sbindir}/zabbix_server-mysql %{_sbindir}/zabbix_server || :
459 %post server-postgresql
460 if [ "$1" = 1 ]; then
461 %banner -e %{name}-server <<-EOF
462 You should create database for Zabbix.
464 Running these should be fine in most cases:
467 createdb -O zabbix zabbix
468 zcat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql.gz | psql -u zabbix zabbix
469 zcat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql.gz | psql -u zabbix zabbix
470 zcat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql.gz | psql -u zabbix zabbix
473 ln -sf %{_sbindir}/zabbix_server-postgresql %{_sbindir}/zabbix_server || :
476 %systemd_post zabbix_server.service
479 %systemd_preun zabbix_server.service
482 if [ "$1" = "0" ]; then
483 if [ -L %{_sbindir}/zabbix_server ] ; then
484 rm -f %{_sbindir}/zabbix_server || :
490 /sbin/chkconfig --add zabbix_agentd
491 %service zabbix_agentd restart
492 %systemd_post zabbix_agentd.service
495 if [ "$1" = "0" ]; then
496 %service -q zabbix_agentd stop
497 /sbin/chkconfig --del zabbix_agentd
499 %systemd_preun zabbix_agentd.service
505 ln -sf %{_sbindir}/zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
507 %post proxy-postgresql
508 ln -sf %{_sbindir}/zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
511 ln -sf %{_sbindir}/zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
514 %systemd_post zabbix_proxy.service
517 %systemd_preun zabbix_proxy.service
523 %systemd_post zabbix_java.service
526 %systemd_preun zabbix_java.service
532 %defattr(644,root,root,755)
533 %doc AUTHORS ChangeLog README
536 %defattr(644,root,root,755)
537 %doc AUTHORS ChangeLog README
538 %attr(751,root,zabbix) %dir %{_sysconfdir}
539 %attr(751,root,http) %dir %{_sysconfdir}/frontend
541 %dir %{_appdir}/frontends
542 %dir %attr(770,root,zabbix) /var/run/zabbix
543 %dir %attr(775,root,zabbix) /var/log/zabbix
544 %{systemdtmpfilesdir}/zabbix.conf
547 %defattr(644,root,root,755)
548 %doc conf/zabbix_agentd/*.conf
549 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
550 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
551 %attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
552 %attr(755,root,root) %{_sbindir}/zabbix_agentd
553 %{_mandir}/man8/zabbix_agentd*
554 %{systemdunitdir}/zabbix_agentd.service
557 %defattr(644,root,root,755)
558 %attr(750,root,http) %dir %{_webapps}/%{_webapp}
559 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
560 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
561 %ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php
562 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/.htaccess
563 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/maintenance.inc.php
564 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php.example
565 %{_appdir}/frontends/php
568 %defattr(644,root,root,755)
569 %attr(755,root,root) %{_bindir}/zabbix_get
570 %{_mandir}/man1/zabbix_get*
574 %defattr(644,root,root,755)
575 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
576 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
577 %ghost %attr(755,root,root) %{_sbindir}/zabbix_proxy
578 %{_mandir}/man8/zabbix_proxy*
579 %{systemdunitdir}/zabbix_proxy.service
584 %defattr(644,root,root,755)
585 %attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
589 %files proxy-postgresql
590 %defattr(644,root,root,755)
591 %attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
596 %defattr(644,root,root,755)
597 %attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
601 %defattr(644,root,root,755)
602 %attr(755,root,root) %{_bindir}/zabbix_sender
603 %{_mandir}/man1/zabbix_sender*
607 %defattr(644,root,root,755)
608 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
609 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
610 %ghost %attr(755,root,root) %{_sbindir}/zabbix_server
611 %{_mandir}/man8/zabbix_server*
612 %{systemdunitdir}/zabbix_server.service
617 %defattr(644,root,root,755)
618 %doc database/mysql/*.sql
619 %attr(755,root,root) %{_sbindir}/zabbix_server-mysql
623 %files server-postgresql
624 %defattr(644,root,root,755)
625 %doc database/postgresql/*.sql
626 %attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
631 %defattr(644,root,root,755)
632 %attr(755,root,root) %{_sbindir}/zabbix_java-start
633 %attr(755,root,root) %{_sbindir}/zabbix_java-stop
634 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_java.conf
635 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback.xml
636 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback-console.xml
637 %dir %{_datadir}/zabbix_java
638 %{_datadir}/zabbix_java/bin
639 %{_datadir}/zabbix_java/lib
640 %{_datadir}/zabbix_java/settings.sh
641 %attr(755,root,root) %{_datadir}/zabbix_java/shutdown.sh
642 %attr(755,root,root) %{_datadir}/zabbix_java/startup.sh
643 %{systemdunitdir}/zabbix_java.service