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.
265 %{__enable_disable java} \
284 for database in %{databases} ; do
285 if [ "$database" = "sqlite3" ] ; then
288 enable_server="--enable-server"
297 if [ "$enable_server" ] ; then
299 -C src/zabbix_server \
300 DESTDIR=$PWD/install-${database}
304 -C src/zabbix_proxy \
305 DESTDIR=$PWD/install-${database}
309 rm -rf $RPM_BUILD_ROOT
310 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/rc.d/init.d,/etc/webapps/%{_webapp},%{_appdir}} \
311 $RPM_BUILD_ROOT{/var/run/zabbix,/var/log/zabbix}
314 DESTDIR=$RPM_BUILD_ROOT \
315 ZJG_DEST=$RPM_BUILD_ROOT%{_datadir}/zabbix_java
317 for database in %{databases} ; do
318 if [ "$database" != "sqlite3" ] ; then
319 cp -p install-$database/%{_sbindir}/zabbix_server \
320 $RPM_BUILD_ROOT%{_sbindir}/zabbix_server-$database
322 cp -p install-$database/%{_sbindir}/zabbix_proxy \
323 $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy-$database
326 if [ -n "$database" ] ; then
327 ln -sf %{_sbindir}/zabbix_server-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_server
328 ln -sf %{_sbindir}/zabbix_proxy-$database $RPM_BUILD_ROOT%{_sbindir}/zabbix_proxy
331 cp -r ui $RPM_BUILD_ROOT%{_appdir}
333 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
334 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
336 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_agentd
337 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_server
338 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/zabbix_proxy
340 mv $RPM_BUILD_ROOT%{_appdir}/ui/conf $RPM_BUILD_ROOT%{_sysconfdir}/web
341 ln -s %{_sysconfdir}/web $RPM_BUILD_ROOT%{_appdir}/ui/conf
342 touch $RPM_BUILD_ROOT%{_sysconfdir}/web/zabbix.conf.php
345 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh $RPM_BUILD_ROOT%{_sysconfdir}/zabbix_java.conf
346 ln -s %{_sysconfdir}/zabbix_java.conf $RPM_BUILD_ROOT%{_datadir}/zabbix_java/settings.sh
347 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback.xml
348 ln -s %{_sysconfdir}/java-logback.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback.xml
349 mv $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml $RPM_BUILD_ROOT%{_sysconfdir}/java-logback-console.xml
350 ln -s %{_sysconfdir}/java-logback-console.xml $RPM_BUILD_ROOT%{_datadir}/zabbix_java/lib/logback-console.xml
352 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-start <<'EOF'
355 exec %{_datadir}/zabbix_java/startup.sh "$@"
358 cat >$RPM_BUILD_ROOT%{_sbindir}/zabbix_java-stop <<'EOF'
361 exec %{_datadir}/zabbix_java/shutdown.sh "$@"
366 rm -rf $RPM_BUILD_ROOT
368 %triggerin web -- apache < 2.2.0, apache-base
369 %webapp_register httpd %{_webapp}
371 %triggerun web -- apache < 2.2.0, apache-base
372 %webapp_unregister httpd %{_webapp}
375 %groupadd -g 111 zabbix
376 %useradd -d / -u 111 -g zabbix -c "Zabbix User" -s /bin/false zabbix
377 %addusertogroup -q zabbix proc
380 if [ "$1" = "0" ]; then
386 if [ "$1" = 1 ]; then
387 %banner -e %{name}-server <<-EOF
388 You should create database for Zabbix.
390 Running these should be fine in most cases:
392 mysqladmin create zabbix
393 zcat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql.gz | mysql zabbix
394 zcat %{_docdir}/%{name}-server-mysql-%{version}/images.sql.gz | mysql zabbix
395 zcat %{_docdir}/%{name}-server-mysql-%{version}/data.sql.gz | mysql zabbix
398 ln -sf %{_sbindir}/zabbix_server-mysql %{_sbindir}/zabbix_server || :
400 %post server-postgresql
401 if [ "$1" = 1 ]; then
402 %banner -e %{name}-server <<-EOF
403 You should create database for Zabbix.
405 Running these should be fine in most cases:
407 createuser -U postgres zabbix
408 createdb -U postgres -O zabbix zabbix
409 zcat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql.gz | psql -U zabbix zabbix
410 zcat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql.gz | psql -U zabbix zabbix
411 zcat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql.gz | psql -U zabbix zabbix
414 ln -sf %{_sbindir}/zabbix_server-postgresql %{_sbindir}/zabbix_server || :
417 /sbin/chkconfig --add zabbix_server
418 %service zabbix_server restart
421 if [ "$1" = "0" ]; then
422 %service -q zabbix_server stop
423 /sbin/chkconfig --del zabbix_server
425 if [ "$1" = "0" ]; then
426 if [ -L %{_sbindir}/zabbix_server ] ; then
427 rm -f %{_sbindir}/zabbix_server || :
432 /sbin/chkconfig --add zabbix_agentd
433 %service zabbix_agentd restart
436 if [ "$1" = "0" ]; then
437 %service -q zabbix_agentd stop
438 /sbin/chkconfig --del zabbix_agentd
442 ln -sf %{_sbindir}/zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
444 %post proxy-postgresql
445 ln -sf %{_sbindir}/zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
448 ln -sf %{_sbindir}/zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
451 /sbin/chkconfig --add zabbix_server
452 %service zabbix_server restart
455 if [ "$1" = "0" ]; then
456 %service -q zabbix_proxy stop
457 /sbin/chkconfig --del zabbix_proxy
459 if [ "$1" = "0" ]; then
460 if [ -L %{_sbindir}/zabbix_proxy ] ; then
461 rm -f %{_sbindir}/zabbix_proxy || :
466 %defattr(644,root,root,755)
467 %doc AUTHORS ChangeLog README
468 %attr(755,root,root) %{_bindir}/zabbix_get
469 %attr(755,root,root) %{_bindir}/zabbix_js
470 %attr(755,root,root) %{_bindir}/zabbix_sender
471 %attr(751,root,zabbix) %dir %{_sysconfdir}
472 %attr(751,root,http) %dir %{_sysconfdir}/web
474 %dir %attr(770,root,zabbix) /var/run/zabbix
475 %dir %attr(775,root,zabbix) /var/log/zabbix
476 %{_mandir}/man1/zabbix_get*
477 %{_mandir}/man1/zabbix_sender*
480 %defattr(644,root,root,755)
481 %doc conf/zabbix_agentd/*.conf
482 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
483 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
484 %attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
485 %attr(755,root,root) %{_sbindir}/zabbix_agentd
486 %{_mandir}/man8/zabbix_agentd*
489 %defattr(644,root,root,755)
490 %attr(750,root,http) %dir %{_webapps}/%{_webapp}
491 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
492 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
493 %ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/zabbix.conf.php
494 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/.htaccess
495 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/maintenance.inc.php
496 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/zabbix.conf.php.example
501 %defattr(644,root,root,755)
502 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
503 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
504 %attr(754,root,root) /etc/rc.d/init.d/zabbix_proxy
505 %ghost %attr(755,root,root) %{_sbindir}/zabbix_proxy
506 %{_mandir}/man8/zabbix_proxy*
511 %defattr(644,root,root,755)
512 %attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
516 %files proxy-postgresql
517 %defattr(644,root,root,755)
518 %attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
523 %defattr(644,root,root,755)
524 %attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
530 %defattr(644,root,root,755)
531 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
532 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
533 %attr(754,root,root) /etc/rc.d/init.d/zabbix_server
534 %ghost %attr(755,root,root) %{_sbindir}/zabbix_server
535 %{_mandir}/man8/zabbix_server*
540 %defattr(644,root,root,755)
541 %doc database/mysql/*.sql
542 %attr(755,root,root) %{_sbindir}/zabbix_server-mysql
546 %files server-postgresql
547 %defattr(644,root,root,755)
548 %doc database/postgresql/*.sql
549 %attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
554 %defattr(644,root,root,755)
555 %attr(755,root,root) %{_sbindir}/zabbix_java-start
556 %attr(755,root,root) %{_sbindir}/zabbix_java-stop
557 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_java.conf
558 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback.xml
559 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback-console.xml
560 %dir %{_datadir}/zabbix_java
561 %{_datadir}/zabbix_java/bin
562 %{_datadir}/zabbix_java/lib
563 %{_datadir}/zabbix_java/settings.sh
564 %attr(755,root,root) %{_datadir}/zabbix_java/shutdown.sh
565 %attr(755,root,root) %{_datadir}/zabbix_java/startup.sh