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: 20f261708f95787f3dbea3eab89f804d
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 URL: http://zabbix.sourceforge.net/
34 BuildRequires: OpenIPMI-devel
35 BuildRequires: autoconf
36 BuildRequires: automake >= 1:1.15
37 BuildRequires: curl-devel
38 BuildRequires: iksemel-devel
39 %{?with_java:BuildRequires: jdk}
40 BuildRequires: libevent-devel
41 BuildRequires: libssh2-devel
42 BuildRequires: libtool
43 BuildRequires: libxml2-devel
44 %{?with_mysql:BuildRequires: mysql-devel}
45 BuildRequires: net-snmp-devel
46 BuildRequires: openldap-devel >= 2.4.6
47 BuildRequires: openssl-devel >= 0.9.7d
48 BuildRequires: pcre-devel
49 %{?with_pgsql:BuildRequires: postgresql-devel}
50 BuildRequires: rpmbuild(macros) >= 1.671
51 %{?with_sqlite3:BuildRequires: sqlite3-devel}
52 BuildRequires: unixODBC-devel
53 BuildRequires: zlib-devel
54 Requires: %{name}-agentd = %{version}-%{release}
55 Requires: %{name}-frontend-php = %{version}-%{release}
56 Requires: %{name}-server = %{version}-%{release}
57 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59 %define _sysconfdir /etc/%{name}
60 %define _appdir %{_datadir}/%{name}
61 %define _webapps /etc/webapps
62 %define _webapp %{name}
65 Zabbix is software that monitors numerous parameters of a network and
66 the servers on that network. It is a useful tool for monitoring the
67 health and integrity of servers. Zabbix uses a flexible notification
68 mechanism that allows users to configure email based alerts for
69 virtually any event. All monitored parameters are stored in a
70 database. Zabbix offers excellent reporting and data visualisation
71 features based on the stored data. Zabbix supports both polling and
72 trapping. All Zabbix reports and statistics, as well as configuration
73 parameters, are accessed through a web-based front end.
75 %description -l pl.UTF-8
76 Zabbix to oprogramowanie do monitorowania licznych parametrów sieci i
77 serwerów sieciowych. Jest przydatny przy monitorowaniu działania
78 serwerów. Jorzysta z elastycznego mechanizmu powiadamiania, który
79 pozwala użytkownikom konfigurować powiadamianie pocztą elektroniczną
80 dla praktycznie wszelkich zdarzeń. Monitorowane parametry są
81 przechowywane w bazie danych. W oparciu o przechowywane dane Zabbix
82 oferuje świetne raportowanie i funkcje wizualizacji. Wspiera zarówno
83 odpytywanie jak i pułapkowanie. Dostęp do wszystkich raportów i
84 statystyk Zabbiksa jest możliwy poprzez interfejs oparty o WWW.
87 Summary: Common files for Zabbix monitoring software
88 Summary(pl.UTF-8): Wspólne pliki dla oprogramowania monitorującego Zabbix
89 Group: Networking/Utilities
90 Requires(postun): /usr/sbin/groupdel
91 Requires(postun): /usr/sbin/userdel
92 Requires(pre): /bin/id
93 Requires(pre): /usr/bin/getgid
94 Requires(pre): /usr/sbin/groupadd
95 Requires(pre): /usr/sbin/useradd
96 Provides: group(zabbix)
97 Provides: user(zabbix)
100 Common files for Zabbix monitoring software.
102 %description common -l pl.UTF-8
103 Wspólne pliki dla oprogramowania monitorującego Zabbix.
106 Summary: Zabbix Agent
107 Summary(pl.UTF-8): Agenta Zabbiksa
108 Group: Networking/Utilities
109 Requires: %{name}-common = %{version}-%{release}
110 Requires: systemd-units >= 38
111 Obsoletes: zabbix-agent-inetd
112 Obsoletes: zabbix-agent-standalone
113 Requires(post,preun): /sbin/chkconfig
117 Zabbix agent collects data from the local system for a Zabbix server.
119 %description agentd -l pl.UTF-8
120 Agent zbiera dane z lokalnej maszyny dla serwera Zabbix.
122 %package frontend-php
123 Summary: PHP frontend for Zabbix
124 Summary(pl.UTF-8): Interfejs PHP dla Zabbiksa
125 Group: Applications/WWW
126 Requires: php(bcmath)
127 Requires: php(core) >= %{php_min_version}
130 Requires: php(gettext)
132 Requires: php(mbstring)
134 Requires: php(session)
135 Requires: php(sockets)
137 Requires: php(xmlreader)
138 Requires: php(xmlwriter)
140 Requires: webserver(alias)
141 Requires: webserver(indexfile)
142 Requires: webserver(php)
145 Suggests: php(sqlite3)
147 Suggests: php(sysvsem)
150 %description frontend-php
151 This package provides web based (PHP) frontend for Zabbix.
153 %description frontend-php -l pl.UTF-8
154 Ten pakiet dostarcza napisany w PHP frontend dla Zabbiksa.
157 Summary: Program retrieving data from Zabbix agent
158 Summary(pl.UTF-8): Program odpytujÄcy agenta Zabbiksa
159 Group: Networking/Utilities
162 This package provides a program retrieving data from Zabbix agent.
164 %description get -l pl.UTF-8
165 Ten pakiet zawiera program odpytujÄcy agenta Zabbiksa.
168 Summary: Zabbix proxy
169 Summary(pl.UTF-8): Proxy do Zabbiksa
170 Group: Networking/Utilities
171 Requires: %{name}-common = %{version}-%{release}
172 Requires: systemd-units >= 38
173 Requires: zabbix-proxy(db) = %{version}-%{release}
176 This package provides the Zabbix proxy.
178 %description proxy -l pl.UTF-8
179 Ten pakiet zawiera proxy Zabbix.
182 Summary: MySQL support for Zabbix proxy
183 Summary(pl.UTF-8): Obsługa MySQL dla proxy do Zabbiksa
184 Group: Networking/Utilities
185 Provides: %{name}-proxy(db) = %{version}-%{release}
186 Obsoletes: zabbix-proxy-postgresql
187 Obsoletes: zabbix-proxy-sqlite3
189 %description proxy-mysql
190 This package provides the Zabbix proxy binary with MySQL support.
192 %description proxy-mysql -l pl.UTF-8
193 Ten pakiet zawiera proxy Zabbix z obsługą MySQL.
195 %package proxy-postgresql
196 Summary: PostgreSQL support for Zabbix proxy
197 Summary(pl.UTF-8): Obsługa PostgreSQL dla proxy do Zabbiksa
198 Group: Networking/Utilities
199 Provides: %{name}-proxy(db) = %{version}-%{release}
200 Obsoletes: zabbix-proxy-mysql
201 Obsoletes: zabbix-proxy-sqlite3
203 %description proxy-postgresql
204 This package provides the Zabbix proxy binary with PostgreSQL support.
206 %description proxy-postgresql -l pl.UTF-8
207 Ten pakiet zawiera proxy Zabbix z obsługą PostgreSQL.
209 %package proxy-sqlite3
210 Summary: SQLite 3 support for Zabbix proxy
211 Summary(pl.UTF-8): Obsługa SQLite 3 dla proxy do Zabbiksa
212 Group: Networking/Utilities
213 Provides: %{name}-proxy(db) = %{version}-%{release}
214 Obsoletes: zabbix-proxy-mysql
215 Obsoletes: zabbix-proxy-postgresql
217 %description proxy-sqlite3
218 This package provides the Zabbix proxy binary with SQLite 3 support.
220 %description proxy-sqlite3 -l pl.UTF-8
221 Ten pakiet zawiera proxy Zabbix z obsługą SQLite 3.
224 Summary: Zabbix sender
225 Summary(pl.UTF-8): Program zawiadamiający Zabbiksa
226 Group: Networking/Utilities
229 This package provides the Zabbix sender.
231 %description sender -l pl.UTF-8
232 Ten pakiet zawiera program zawiadamiający Zabbiksa.
235 Summary: Zabbix server
236 Summary(pl.UTF-8): Serwer Zabbiksa
237 Group: Networking/Utilities
238 Requires: %{name}-common = %{version}-%{release}
239 Requires: %{name}-server(db) = %{version}-%{release}
240 Requires: systemd-units >= 38
241 Obsoletes: zabbix-suckerd
242 Obsoletes: zabbix-trapper-inetd
243 Obsoletes: zabbix-trapper-standalone
246 This package provides the Zabbix server.
248 %description server -l pl.UTF-8
249 Ten pakiet zawiera serwer Zabbiksa.
251 %package server-mysql
252 Summary: MySQL support for Zabbix server
253 Summary(pl.UTF-8): Obsługa MySQL sla serwera Zabbiksa
254 Group: Networking/Utilities
255 Provides: %{name}-server(db) = %{version}-%{release}
256 Obsoletes: zabbix-server-postgresql
257 Obsoletes: zabbix-server-sqlite3
259 %description server-mysql
260 This package provides the Zabbix server binary for use with MySQL
263 %description server-mysql -l pl.UTF-8
264 Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych MySQL.
266 %package server-postgresql
267 Summary: PostgreSQL support for Zabbix server
268 Summary(pl.UTF-8): Obsługa PostgreSQL sla serwera Zabbiksa
269 Group: Networking/Utilities
270 Provides: %{name}-server(db) = %{version}-%{release}
271 Obsoletes: zabbix-server-mysql
272 Obsoletes: zabbix-server-sqlite3
274 %description server-postgresql
275 This package provides the Zabbix server binary for use with PostgreSQL
278 %description server-postgresql -l pl.UTF-8
279 Ten pakiet zawiera serwer Zabbiksa z obsługą bazy danych PostgreSQL.
282 Summary: Zabbix Java Gateway
283 Group: Networking/Utilities
284 Requires: %{name}-common = %{version}-%{release}
285 Requires: systemd-units >= 38
288 This package provides the Zabbix Java Gateway.
308 %{__enable_disable java} \
327 for database in %{databases} ; do
328 if [ "$database" = "sqlite3" ] ; then
331 enable_server="--enable-server"
340 if [ "$enable_server" ] ; then
342 -C src/zabbix_server \
343 DESTDIR=$PWD/install-${database}
347 -C src/zabbix_proxy \
348 DESTDIR=$PWD/install-${database}
352 rm -rf $RPM_BUILD_ROOT
353 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/rc.d/init.d,/etc/webapps/%{_webapp},%{_appdir}} \
354 $RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix,%{systemdunitdir},%{systemdtmpfilesdir}}
357 DESTDIR=$RPM_BUILD_ROOT \
358 ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
360 for database in %{databases} ; do
361 if [ "$database" != "sqlite3" ] ; then
362 cp -p install-$database/%{_sbindir}/zabbix_server \
363 $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
365 cp -p install-$database/%{_sbindir}/zabbix_proxy \
366 $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
369 if [ -n "$database" ] ; then
370 ln -sf %{_sbindir}/zabbix_server-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_server
371 ln -sf %{_sbindir}/zabbix_proxy-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy
375 install -d $RPM_BUILD_ROOT/var/lib/zabbix
376 touch $RPM_BUILD_ROOT/var/lib/zabbix/zabbix.db
379 cp -r frontends $RPM_BUILD_ROOT%{_appdir}
381 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
382 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
384 install %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_server.service
385 install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_agentd.service
386 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
387 install %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_proxy.service
388 install %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/zabbix_java.service
390 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/zabbix.conf
392 mv $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf $RPM_BUILD_ROOT%{_sysconfdir}/frontend
393 ln -s %{_sysconfdir}/frontend $RPM_BUILD_ROOT%{_appdir}/frontends/php/conf
394 touch $RPM_BUILD_ROOT%{_sysconfdir}/frontend/zabbix.conf.php
397 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix_java.conf
398 ln -s %{_sysconfdir}/zabbix_java.conf $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh
399 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback.xml
400 ln -s %{_sysconfdir}/java-logback.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml
401 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback-console.xml
402 ln -s %{_sysconfdir}/java-logback-console.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml
404 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-start <<'EOF'
407 exec %{_datadir}/zabbix_java/startup.sh "$@"
410 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-stop <<'EOF'
413 exec %{_datadir}/zabbix_java/shutdown.sh "$@"
418 rm -rf $RPM_BUILD_ROOT
420 %triggerin frontend-php -- apache1 < 1.3.37-3, apache1-base
421 %webapp_register apache %{_webapp}
423 %triggerun frontend-php -- apache1 < 1.3.37-3, apache1-base
424 %webapp_unregister apache %{_webapp}
426 %triggerin frontend-php -- apache < 2.2.0, apache-base
427 %webapp_register httpd %{_webapp}
429 %triggerun frontend-php -- apache < 2.2.0, apache-base
430 %webapp_unregister httpd %{_webapp}
433 %groupadd -g 111 zabbix
434 %useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
435 %addusertogroup -q zabbix proc
438 if [ "$1" = "0" ]; then
444 if [ "$1" = 1 ]; then
445 %banner -e %{name}-server <<-EOF
446 You should create database for Zabbix.
448 Running these should be fine in most cases:
449 mysqladmin create zabbix
450 zcat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql.gz | mysql zabbix
451 zcat %{_docdir}/%{name}-server-mysql-%{version}/images.sql.gz | mysql zabbix
452 zcat %{_docdir}/%{name}-server-mysql-%{version}/data.sql.gz | mysql zabbix
455 ln -sf %{_sbindir}/zabbix_server-mysql %{_sbindir}/zabbix_server || :
457 %post server-postgresql
458 if [ "$1" = 1 ]; then
459 %banner -e %{name}-server <<-EOF
460 You should create database for Zabbix.
462 Running these should be fine in most cases:
465 createdb -O zabbix zabbix
466 zcat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql.gz | psql -u zabbix zabbix
467 zcat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql.gz | psql -u zabbix zabbix
468 zcat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql.gz | psql -u zabbix zabbix
471 ln -sf %{_sbindir}/zabbix_server-postgresql %{_sbindir}/zabbix_server || :
474 %systemd_post zabbix_server.service
477 %systemd_preun zabbix_server.service
480 if [ "$1" = "0" ]; then
481 if [ -L %{_sbindir}/zabbix_server ] ; then
482 rm -f %{_sbindir}/zabbix_server || :
488 /sbin/chkconfig --add zabbix_agentd
489 %service zabbix_agentd restart
490 %systemd_post zabbix_agentd.service
493 if [ "$1" = "0" ]; then
494 %service -q zabbix_agentd stop
495 /sbin/chkconfig --del zabbix_agentd
497 %systemd_preun zabbix_agentd.service
503 ln -sf %{_sbindir}/zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
505 %post proxy-postgresql
506 ln -sf %{_sbindir}/zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
509 ln -sf %{_sbindir}/zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
512 %systemd_post zabbix_proxy.service
515 %systemd_preun zabbix_proxy.service
521 %systemd_post zabbix_java.service
524 %systemd_preun zabbix_java.service
530 %defattr(644,root,root,755)
531 %doc AUTHORS ChangeLog README
534 %defattr(644,root,root,755)
535 %doc AUTHORS ChangeLog README
536 %attr(751,root,zabbix) %dir %{_sysconfdir}
537 %attr(751,root,http) %dir %{_sysconfdir}/frontend
539 %dir %{_appdir}/frontends
540 %dir %attr(770,root,zabbix) /var/run/zabbix
541 %dir %attr(775,root,zabbix) /var/log/zabbix
542 %{systemdtmpfilesdir}/zabbix.conf
545 %defattr(644,root,root,755)
546 %doc conf/zabbix_agentd/*.conf
547 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
548 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
549 %attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
550 %attr(755,root,root) %{_sbindir}/zabbix_agentd
551 %{_mandir}/man8/zabbix_agentd*
552 %{systemdunitdir}/zabbix_agentd.service
555 %defattr(644,root,root,755)
556 %attr(750,root,http) %dir %{_webapps}/%{_webapp}
557 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
558 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
559 %ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php
560 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/.htaccess
561 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/maintenance.inc.php
562 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/frontend/zabbix.conf.php.example
563 %{_appdir}/frontends/php
566 %defattr(644,root,root,755)
567 %attr(755,root,root) %{_bindir}/zabbix_get
568 %{_mandir}/man1/zabbix_get*
572 %defattr(644,root,root,755)
573 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
574 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
575 %ghost %attr(755,root,root) %{_sbindir}/zabbix_proxy
576 %{_mandir}/man8/zabbix_proxy*
577 %{systemdunitdir}/zabbix_proxy.service
582 %defattr(644,root,root,755)
583 %attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
587 %files proxy-postgresql
588 %defattr(644,root,root,755)
589 %attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
594 %defattr(644,root,root,755)
595 %attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
599 %defattr(644,root,root,755)
600 %attr(755,root,root) %{_bindir}/zabbix_sender
601 %{_mandir}/man1/zabbix_sender*
605 %defattr(644,root,root,755)
606 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
607 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
608 %ghost %attr(755,root,root) %{_sbindir}/zabbix_server
609 %{_mandir}/man8/zabbix_server*
610 %{systemdunitdir}/zabbix_server.service
615 %defattr(644,root,root,755)
616 %doc database/mysql/*.sql
617 %attr(755,root,root) %{_sbindir}/zabbix_server-mysql
621 %files server-postgresql
622 %defattr(644,root,root,755)
623 %doc database/postgresql/*.sql
624 %attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
629 %defattr(644,root,root,755)
630 %attr(755,root,root) %{_sbindir}/zabbix_java-start
631 %attr(755,root,root) %{_sbindir}/zabbix_java-stop
632 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_java.conf
633 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback.xml
634 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback-console.xml
635 %dir %{_datadir}/zabbix_java
636 %{_datadir}/zabbix_java/bin
637 %{_datadir}/zabbix_java/lib
638 %{_datadir}/zabbix_java/settings.sh
639 %attr(755,root,root) %{_datadir}/zabbix_java/shutdown.sh
640 %attr(755,root,root) %{_datadir}/zabbix_java/startup.sh
641 %{systemdunitdir}/zabbix_java.service