diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbb3a13 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.rpm +*.log +*spec-20* +*.tar.gz diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3f2ed39 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: smeserver-zabbix-proxy +# $Id: Makefile,v 1.1 2022/08/01 18:51:07 jpp Exp $ +NAME := smeserver-zabbix-proxy +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/README.md b/README.md index 8405432..81bc27c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ -# smeserver-zabbix-proxy +# smeserver-zabbix-proxy -SMEServer Koozali developed git repo for smeserver-zabbix-proxy smecontribs \ No newline at end of file +SMEServer Koozali developed git repo for smeserver-zabbix-proxy smecontribs + +## Wiki +
https://wiki.koozali.org/Zabbix-proxy +
https://wiki.koozali.org/Zabbix-proxy/fr + +## Bugzilla +Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-zabbix-proxy&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) + +## Description + +
*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.* +*Once it has been checked, then this comment will be deleted* +
diff --git a/additional/.tito/packages/.readme b/additional/.tito/packages/.readme new file mode 100644 index 0000000..b9411e2 --- /dev/null +++ b/additional/.tito/packages/.readme @@ -0,0 +1,3 @@ +the .tito/packages directory contains metadata files +named after their packages. Each file has the latest tagged +version and the project's relative directory. diff --git a/additional/.tito/packages/smeserver-zabbix-proxy b/additional/.tito/packages/smeserver-zabbix-proxy new file mode 100644 index 0000000..991f746 --- /dev/null +++ b/additional/.tito/packages/smeserver-zabbix-proxy @@ -0,0 +1 @@ +0.3.1-1 ./ diff --git a/additional/.tito/releasers.conf b/additional/.tito/releasers.conf new file mode 120000 index 0000000..867c32f --- /dev/null +++ b/additional/.tito/releasers.conf @@ -0,0 +1 @@ +../../tito_libs/releasers.conf \ No newline at end of file diff --git a/additional/.tito/tito.props b/additional/.tito/tito.props new file mode 100644 index 0000000..3c97442 --- /dev/null +++ b/additional/.tito/tito.props @@ -0,0 +1,6 @@ +[buildconfig] +builder = tito.builder.Builder +tagger = tito.tagger.VersionTagger +changelog_do_not_remove_cherrypick = 0 +changelog_format = %s (%ae) +lib_dir = ../tito_libs diff --git a/additional/smeserver-zabbix-proxy.spec b/additional/smeserver-zabbix-proxy.spec new file mode 100644 index 0000000..968eadb --- /dev/null +++ b/additional/smeserver-zabbix-proxy.spec @@ -0,0 +1,109 @@ +Summary: sme server integration of zabbix proxy +Name: smeserver-zabbix-proxy +Version: 0.3.1 +Release: 1%{?dist} +License: GNU GPL version 3 +URL: http://www.zabbix.com/ +Group: SMEserver/addon +Source: %{name}-%{version}.tar.gz + +BuildArchitectures: noarch +BuildRequires: e-smith-devtools +BuildRoot: /var/tmp/%{name}-%{version} +Requires: e-smith-release >= 7.0 +Requires: fping +Requires: zabbix-proxy-mysql +Requires: smeserver-remoteuseraccess +Conflicts: smeserver-zabbix-server +Obsoletes: zabbix-server +Obsoletes: zabbix-server-mysql +AutoReqProv: no + +%description +smserver integration of zabbix proxy +Zabbix is an entreprise-class open source distributed monitoring +solution + +%changelog +* Thu Nov 28 2019 Daniel Berteaud 0.3.1-1 +- new package built with tito +- adapt spec file for tito +- adapt to be used with upstream zabbix packages +* Mon Mar 21 2016 Daniel Berteaud - 0.3.0-1.sme +- Add support for encryption features of Zabbix 3.0 + +* Wed Jun 5 2013 Daniel B. 0.2.2-1.sme +- Don't try to upgrade the database + +* Fri Apr 19 2013 Daniel B. 0.2.1-1.sme +- Sync config every 10 minutes + +* Thu Jun 14 2012 Daniel B. 0.2.0-1.sme +- Import to GIT +- Only import the schema when creating the database + +* Fri Oct 07 2011 Daniel B. 0.1-11 +- Fixe 2 directives (needed for Zabbix 1.8.8) + +* Thu Nov 25 2010 Daniel B. 0.1-9 +- Requires the mysql variant of server and proxy + +* Tue Oct 19 2010 Daniel B. 0.1-8 +- Possibility to set Hostname from the DB + +* Thu Apr 15 2010 Daniel B. 0.1-7 +- Support multiple dbpatches + +* Mon Sep 28 2009 Daniel B. 0.1-6 +- Fixe /etc/sudoers template expension during zabbix-proxy-update event + +* Tue Mar 03 2009 Daniel B. 0.1-5 +- Add smeserver-remoteuseraccess as a dependencie (sudoers template problem) + +* Mon Mar 02 2009 Daniel B. 0.1-4 +- Disable DB cache as it seems to cause IPC problems + +* Mon Mar 02 2009 Daniel B. 0.1-3 +- enable DB cache with StartDBSyncers directive + +* Sun Mar 01 2009 Daniel B. 0.1-2 +- Fix permissions on /var/lib/zabbix/tmp + +* Tue Feb 24 2009 Daniel B. 0.1-1 +- Fix createlinks + +* Tue Feb 24 2009 Daniel B. 0.1-0 +- initial release + +%prep +%setup + +%build +perl ./createlinks +%{__mkdir_p} root/var/lib/zabbix/tmp + +%install +rm -rf $RPM_BUILD_ROOT +(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) +rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ + --file /var/lib/zabbix/bin/fping 'attr(0750,root,zabbix)' \ + --file /var/lib/zabbix/bin/fping6 'attr(0750,root,zabbix)' \ + --dir /var/lib/zabbix/tmp 'attr(0755,zabbix,zabbix)' \ + > %{name}-%{version}-filelist + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) + +%clean +rm -rf $RPM_BUILD_ROOT + + +%postun +#uninstall +if [ $1 = 0 ] ; then + /sbin/e-smith/db configuration setprop zabbix-proxy status disabled + /etc/init.d/zabbix-proxy stop +fi + +true diff --git a/contriborbase b/contriborbase new file mode 100644 index 0000000..9b7fd51 --- /dev/null +++ b/contriborbase @@ -0,0 +1 @@ +contribs10 diff --git a/createlinks b/createlinks new file mode 100644 index 0000000..ecf096a --- /dev/null +++ b/createlinks @@ -0,0 +1,19 @@ +#!/usr/bin/perl -w + +use esmith::Build::CreateLinks qw(:all); + + +# Templates to expand +templates2events("/etc/zabbix/zabbix_proxy.conf", qw(zabbix-proxy-update bootstrap-console-save)); +templates2events("/etc/sudoers", "zabbix-proxy-update"); +templates2events("/etc/e-smith/sql/init/80zabbix-proxy", qw(zabbix-proxy-update bootstrap-console-save)); + +# Services to restart +safe_symlink("restart", "root/etc/e-smith/events/zabbix-proxy-update/services2adjust/mysql.init"); +safe_symlink("restart", "root/etc/e-smith/events/zabbix-proxy-update/services2adjust/zabbix-proxy"); + +# Start and stop links +service_link_enhanced("zabbix-proxy", "S99", "7"); +service_link_enhanced("zabbix-proxy", "K10", "6"); +service_link_enhanced("zabbix-proxy", "K10", "0"); + diff --git a/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbName b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbName new file mode 100644 index 0000000..737e500 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbName @@ -0,0 +1 @@ +zabbixproxydb diff --git a/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbUser b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbUser new file mode 100644 index 0000000..c147932 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbUser @@ -0,0 +1 @@ +zabbixuser diff --git a/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/TCPPort b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/TCPPort new file mode 100644 index 0000000..f02a806 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/TCPPort @@ -0,0 +1 @@ +10051 diff --git a/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/access b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/access new file mode 100644 index 0000000..3e18ebf --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/access @@ -0,0 +1 @@ +private diff --git a/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/status b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/status new file mode 100644 index 0000000..86981e6 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/status @@ -0,0 +1 @@ +enabled diff --git a/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/type b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/type new file mode 100644 index 0000000..24e1098 --- /dev/null +++ b/root/etc/e-smith/db/configuration/defaults/zabbix-proxy/type @@ -0,0 +1 @@ +service diff --git a/root/etc/e-smith/db/configuration/migrate/zabbix-proxy-database b/root/etc/e-smith/db/configuration/migrate/zabbix-proxy-database new file mode 100644 index 0000000..bb7019b --- /dev/null +++ b/root/etc/e-smith/db/configuration/migrate/zabbix-proxy-database @@ -0,0 +1,33 @@ +{ + my $rec = $DB->get('zabbix-proxy') + || $DB->new_record('zabbix-proxy', {type => 'service'}); + my $pw = $rec->prop('DbPassword'); + if (not $pw or length($pw) < 57) + { + use MIME::Base64 qw(encode_base64); + + $pw = "not set due to error"; + if ( open( RANDOM, "/dev/urandom" ) ) + { + my $buf; + # 57 bytes is a full line of Base64 coding, and contains + # 456 bits of randomness - given a perfectly random /dev/random + if ( read( RANDOM, $buf, 57 ) != 57 ) + { + warn("Short read from /dev/random: $!"); + } + else + { + $pw = encode_base64($buf); + chomp $pw; + } + close RANDOM; + } + else + { + warn "Could not open /dev/urandom: $!"; + } + $rec->set_prop('DbPassword', $pw); + } +} + diff --git a/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80zabbix-proxy b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80zabbix-proxy new file mode 100644 index 0000000..940dcf3 --- /dev/null +++ b/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80zabbix-proxy @@ -0,0 +1 @@ +PERMS=0750 diff --git a/root/etc/e-smith/templates.metadata/var/lib/zabbix/bin/sendxmpp b/root/etc/e-smith/templates.metadata/var/lib/zabbix/bin/sendxmpp new file mode 100644 index 0000000..c187d95 --- /dev/null +++ b/root/etc/e-smith/templates.metadata/var/lib/zabbix/bin/sendxmpp @@ -0,0 +1,3 @@ +PERMS=0750 +UID="root" +GID="zabbix" diff --git a/root/etc/e-smith/templates/etc/e-smith/sql/init/80zabbix-proxy b/root/etc/e-smith/templates/etc/e-smith/sql/init/80zabbix-proxy new file mode 100644 index 0000000..5e090f3 --- /dev/null +++ b/root/etc/e-smith/templates/etc/e-smith/sql/init/80zabbix-proxy @@ -0,0 +1,48 @@ +{ +my $db = ${'zabbix-proxy'}{'DbName'} || 'zabbix'; +my $user = ${'zabbix-proxy'}{'DbUser'} || 'zabbix'; +my $pass = ${'zabbix-proxy'}{'DbPassword'} || 'secret'; + +my $schema = `rpm -qd zabbix-proxy-mysql | grep schema | grep mysql`; + + +$OUT .= <<"END"; +#! /bin/sh +if [ \! -d /var/lib/mysql/$db ]; then + /usr/bin/mysqladmin create $db + gzip -dc $schema | /usr/bin/mysql $db +fi + +/usr/bin/mysql < 0) ? join(',', @encryptions) : ''; + $OUT .=<<_EOF if ($encryptions ne ''); +TLSConnect=$encryptions +TLSAccept=$encryptions +_EOF +} diff --git a/root/var/lib/zabbix/bin/fping b/root/var/lib/zabbix/bin/fping new file mode 100644 index 0000000..2173537 --- /dev/null +++ b/root/var/lib/zabbix/bin/fping @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/bin/sudo /usr/sbin/fping "$@" diff --git a/root/var/lib/zabbix/bin/fping6 b/root/var/lib/zabbix/bin/fping6 new file mode 100644 index 0000000..38b1d6d --- /dev/null +++ b/root/var/lib/zabbix/bin/fping6 @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/bin/sudo /usr/sbin/fping6 "$@" diff --git a/smeserver-zabbix-proxy.spec b/smeserver-zabbix-proxy.spec new file mode 100644 index 0000000..9c65b64 --- /dev/null +++ b/smeserver-zabbix-proxy.spec @@ -0,0 +1,116 @@ +Summary: sme server integration of zabbix proxy +Name: smeserver-zabbix-proxy +Version: 0.3.1 +Release: 2%{?dist} +License: GNU GPL version 3 +URL: http://www.zabbix.com/ +Group: SMEserver/addon +Source: %{name}-%{version}.tar.xz + +BuildArchitectures: noarch +BuildRequires: e-smith-devtools +BuildRoot: /var/tmp/%{name}-%{version} +Requires: e-smith-release >= 7.0 +Requires: fping +Requires: zabbix-proxy-mysql +Requires: smeserver-remoteuseraccess +Conflicts: smeserver-zabbix-server +Obsoletes: zabbix-server +Obsoletes: zabbix-server-mysql +AutoReqProv: no + +%description +smserver integration of zabbix proxy +Zabbix is an entreprise-class open source distributed monitoring +solution + +%changelog +* Sat Sep 07 2024 cvs2git.sh aka Brian Read 0.3.1-2.sme +- Roll up patches and move to git repo [SME: 12338] + +* Sat Sep 07 2024 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + +* Thu Nov 28 2019 Daniel Berteaud 0.3.1-1 +- new package built with tito +- adapt spec file for tito +- adapt to be used with upstream zabbix packages +* Mon Mar 21 2016 Daniel Berteaud - 0.3.0-1.sme +- Add support for encryption features of Zabbix 3.0 + +* Wed Jun 5 2013 Daniel B. 0.2.2-1.sme +- Don't try to upgrade the database + +* Fri Apr 19 2013 Daniel B. 0.2.1-1.sme +- Sync config every 10 minutes + +* Thu Jun 14 2012 Daniel B. 0.2.0-1.sme +- Import to GIT +- Only import the schema when creating the database + +* Fri Oct 07 2011 Daniel B. 0.1-11 +- Fixe 2 directives (needed for Zabbix 1.8.8) + +* Thu Nov 25 2010 Daniel B. 0.1-9 +- Requires the mysql variant of server and proxy + +* Tue Oct 19 2010 Daniel B. 0.1-8 +- Possibility to set Hostname from the DB + +* Thu Apr 15 2010 Daniel B. 0.1-7 +- Support multiple dbpatches + +* Mon Sep 28 2009 Daniel B. 0.1-6 +- Fixe /etc/sudoers template expension during zabbix-proxy-update event + +* Tue Mar 03 2009 Daniel B. 0.1-5 +- Add smeserver-remoteuseraccess as a dependencie (sudoers template problem) + +* Mon Mar 02 2009 Daniel B. 0.1-4 +- Disable DB cache as it seems to cause IPC problems + +* Mon Mar 02 2009 Daniel B. 0.1-3 +- enable DB cache with StartDBSyncers directive + +* Sun Mar 01 2009 Daniel B. 0.1-2 +- Fix permissions on /var/lib/zabbix/tmp + +* Tue Feb 24 2009 Daniel B. 0.1-1 +- Fix createlinks + +* Tue Feb 24 2009 Daniel B. 0.1-0 +- initial release + +%prep +%setup + +%build +perl ./createlinks +%{__mkdir_p} root/var/lib/zabbix/tmp + +%install +rm -rf $RPM_BUILD_ROOT +(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) +rm -f %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ + --file /var/lib/zabbix/bin/fping 'attr(0750,root,zabbix)' \ + --file /var/lib/zabbix/bin/fping6 'attr(0750,root,zabbix)' \ + --dir /var/lib/zabbix/tmp 'attr(0755,zabbix,zabbix)' \ + > %{name}-%{version}-filelist + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root) + +%clean +rm -rf $RPM_BUILD_ROOT + + +%postun +#uninstall +if [ $1 = 0 ] ; then + /sbin/e-smith/db configuration setprop zabbix-proxy status disabled + /etc/init.d/zabbix-proxy stop +fi + +true