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/5.0/%{name}-%{version}.tar.gz
22 # Source0-md5: e0798bb1b53ab7b451556dc34c3b1827
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:
391 mysqladmin create zabbix
392 zcat %{_docdir}/%{name}-server-mysql-%{version}/schema.sql.gz | mysql zabbix
393 zcat %{_docdir}/%{name}-server-mysql-%{version}/images.sql.gz | mysql zabbix
394 zcat %{_docdir}/%{name}-server-mysql-%{version}/data.sql.gz | mysql zabbix
397 ln -sf %{_sbindir}/zabbix_server-mysql %{_sbindir}/zabbix_server || :
399 %post server-postgresql
400 if [ "$1" = 1 ]; then
401 %banner -e %{name}-server <<-EOF
402 You should create database for Zabbix.
404 Running these should be fine in most cases:
407 createdb -O zabbix zabbix
408 zcat %{_docdir}/%{name}-server-postgresql-%{version}/schema.sql.gz | psql -u zabbix zabbix
409 zcat %{_docdir}/%{name}-server-postgresql-%{version}/images.sql.gz | psql -u zabbix zabbix
410 zcat %{_docdir}/%{name}-server-postgresql-%{version}/data.sql.gz | psql -u zabbix zabbix
413 ln -sf %{_sbindir}/zabbix_server-postgresql %{_sbindir}/zabbix_server || :
416 if [ "$1" = "0" ]; then
417 if [ -L %{_sbindir}/zabbix_server ] ; then
418 rm -f %{_sbindir}/zabbix_server || :
423 /sbin/chkconfig --add zabbix_agentd
424 %service zabbix_agentd restart
427 if [ "$1" = "0" ]; then
428 %service -q zabbix_agentd stop
429 /sbin/chkconfig --del zabbix_agentd
433 ln -sf %{_sbindir}/zabbix_proxy-mysql %{_sbindir}/zabbix_proxy || :
435 %post proxy-postgresql
436 ln -sf %{_sbindir}/zabbix_proxy-postgresql %{_sbindir}/zabbix_proxy || :
439 ln -sf %{_sbindir}/zabbix_proxy-sqlite3 %{_sbindir}/zabbix_proxy || :
442 %defattr(644,root,root,755)
443 %doc AUTHORS ChangeLog README
444 %attr(755,root,root) %{_bindir}/zabbix_get
445 %attr(755,root,root) %{_bindir}/zabbix_js
446 %attr(755,root,root) %{_bindir}/zabbix_sender
447 %attr(751,root,zabbix) %dir %{_sysconfdir}
448 %attr(751,root,http) %dir %{_sysconfdir}/web
450 %dir %attr(770,root,zabbix) /var/run/zabbix
451 %dir %attr(775,root,zabbix) /var/log/zabbix
452 %{_mandir}/man1/zabbix_get*
453 %{_mandir}/man1/zabbix_sender*
456 %defattr(644,root,root,755)
457 %doc conf/zabbix_agentd/*.conf
458 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
459 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_agentd.conf.d
460 %attr(754,root,root) /etc/rc.d/init.d/zabbix_agentd
461 %attr(755,root,root) %{_sbindir}/zabbix_agentd
462 %{_mandir}/man8/zabbix_agentd*
465 %defattr(644,root,root,755)
466 %attr(750,root,http) %dir %{_webapps}/%{_webapp}
467 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
468 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
469 %ghost %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/zabbix.conf.php
470 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/.htaccess
471 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/maintenance.inc.php
472 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/web/zabbix.conf.php.example
477 %defattr(644,root,root,755)
478 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
479 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_proxy.conf.d
480 %attr(754,root,root) /etc/rc.d/init.d/zabbix_proxy
481 %ghost %attr(755,root,root) %{_sbindir}/zabbix_proxy
482 %{_mandir}/man8/zabbix_proxy*
487 %defattr(644,root,root,755)
488 %attr(755,root,root) %{_sbindir}/zabbix_proxy-mysql
492 %files proxy-postgresql
493 %defattr(644,root,root,755)
494 %attr(755,root,root) %{_sbindir}/zabbix_proxy-postgresql
499 %defattr(644,root,root,755)
500 %attr(755,root,root) %{_sbindir}/zabbix_proxy-sqlite3
506 %defattr(644,root,root,755)
507 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
508 %dir %attr(751,root,zabbix) %{_sysconfdir}/zabbix_server.conf.d
509 %attr(754,root,root) /etc/rc.d/init.d/zabbix_server
510 %ghost %attr(755,root,root) %{_sbindir}/zabbix_server
511 %{_mandir}/man8/zabbix_server*
516 %defattr(644,root,root,755)
517 %doc database/mysql/*.sql
518 %attr(755,root,root) %{_sbindir}/zabbix_server-mysql
522 %files server-postgresql
523 %defattr(644,root,root,755)
524 %doc database/postgresql/*.sql
525 %attr(755,root,root) %{_sbindir}/zabbix_server-postgresql
530 %defattr(644,root,root,755)
531 %attr(755,root,root) %{_sbindir}/zabbix_java-start
532 %attr(755,root,root) %{_sbindir}/zabbix_java-stop
533 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_java.conf
534 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback.xml
535 %attr(640,root,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/java-logback-console.xml
536 %dir %{_datadir}/zabbix_java
537 %{_datadir}/zabbix_java/bin
538 %{_datadir}/zabbix_java/lib
539 %{_datadir}/zabbix_java/settings.sh
540 %attr(755,root,root) %{_datadir}/zabbix_java/shutdown.sh
541 %attr(755,root,root) %{_datadir}/zabbix_java/startup.sh