From b8801244482f2baf7b2f4b6c5c85464de4692ff2 Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Thu, 14 Jun 2012 12:50:32 +0200 Subject: [PATCH] Premier commit --- createlinks | 19 +++ .../defaults/zabbix-proxy/DbName | 1 + .../defaults/zabbix-proxy/DbUser | 1 + .../defaults/zabbix-proxy/TCPPort | 1 + .../defaults/zabbix-proxy/access | 1 + .../defaults/zabbix-proxy/status | 1 + .../configuration/defaults/zabbix-proxy/type | 1 + .../migrate/zabbix-proxy-database | 33 +++++ .../etc/e-smith/sql/init/80zabbix-proxy | 1 + .../var/lib/zabbix/bin/sendxmpp | 3 + .../etc/e-smith/sql/init/80zabbix-proxy | 56 ++++++++ .../templates/etc/sudoers/00zabbixAlias | 1 + .../e-smith/templates/etc/sudoers/30zabbix | 1 + .../etc/zabbix/zabbix_proxy.conf/00header | 4 + .../zabbix/zabbix_proxy.conf/10zabbixServers | 10 ++ .../etc/zabbix/zabbix_proxy.conf/15hostname | 7 + .../etc/zabbix/zabbix_proxy.conf/20instances | 35 +++++ .../etc/zabbix/zabbix_proxy.conf/30listen | 16 +++ .../etc/zabbix/zabbix_proxy.conf/40freq | 34 +++++ .../zabbix/zabbix_proxy.conf/45proxybuffers | 9 ++ .../etc/zabbix/zabbix_proxy.conf/50debug | 9 ++ .../etc/zabbix/zabbix_proxy.conf/55timeout | 17 +++ .../etc/zabbix/zabbix_proxy.conf/60pidAndLog | 13 ++ .../etc/zabbix/zabbix_proxy.conf/70location | 14 ++ .../etc/zabbix/zabbix_proxy.conf/80database | 32 +++++ root/var/lib/zabbix/bin/fping | 2 + root/var/lib/zabbix/bin/fping6 | 2 + smeserver-zabbix-proxy.spec | 124 ++++++++++++++++++ 28 files changed, 448 insertions(+) create mode 100644 createlinks create mode 100644 root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbName create mode 100644 root/etc/e-smith/db/configuration/defaults/zabbix-proxy/DbUser create mode 100644 root/etc/e-smith/db/configuration/defaults/zabbix-proxy/TCPPort create mode 100644 root/etc/e-smith/db/configuration/defaults/zabbix-proxy/access create mode 100644 root/etc/e-smith/db/configuration/defaults/zabbix-proxy/status create mode 100644 root/etc/e-smith/db/configuration/defaults/zabbix-proxy/type create mode 100644 root/etc/e-smith/db/configuration/migrate/zabbix-proxy-database create mode 100644 root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/80zabbix-proxy create mode 100644 root/etc/e-smith/templates.metadata/var/lib/zabbix/bin/sendxmpp create mode 100644 root/etc/e-smith/templates/etc/e-smith/sql/init/80zabbix-proxy create mode 100644 root/etc/e-smith/templates/etc/sudoers/00zabbixAlias create mode 100644 root/etc/e-smith/templates/etc/sudoers/30zabbix create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/00header create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/10zabbixServers create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/15hostname create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/20instances create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/30listen create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/40freq create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/45proxybuffers create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/50debug create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/55timeout create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/60pidAndLog create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/70location create mode 100644 root/etc/e-smith/templates/etc/zabbix/zabbix_proxy.conf/80database create mode 100644 root/var/lib/zabbix/bin/fping create mode 100644 root/var/lib/zabbix/bin/fping6 create mode 100644 smeserver-zabbix-proxy.spec 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..49afd28 --- /dev/null +++ b/root/etc/e-smith/templates/etc/e-smith/sql/init/80zabbix-proxy @@ -0,0 +1,56 @@ +{ +my $db = ${'zabbix-proxy'}{'DbName'} || 'zabbix'; +my $user = ${'zabbix-proxy'}{'DbUser'} || 'zabbix'; +my $pass = ${'zabbix-proxy'}{'DbPassword'} || 'secret'; + +my $schema = `rpm -qd zabbix-server | grep schema | grep mysql`; +my $data = `rpm -qd zabbix-server | grep data.sql`; +my $images = `rpm -qd zabbix-server | grep images_mysql`; + + +$OUT .= <<"END"; +#! /bin/sh +if [ -d /var/lib/mysql/$db ]; then + for P in \$(rpm -qd zabbix-server | grep dbpatch | grep mysql); do + /usr/bin/mysql $db < \$P + done +else + /usr/bin/mysqladmin create $db + /usr/bin/mysql $db < $schema + /usr/bin/mysql $db < $data + /usr/bin/mysql $db < $images +fi + +/usr/bin/mysql <= 7.0 +Requires: fping +Requires: zabbix-server-mysql +Requires: zabbix-proxy-mysql +Requires: smeserver-remoteuseraccess +Conflicts: smeserver-zabbix-server +AutoReqProv: no + +%description +smserver integration of zabbix proxy +Zabbix is an entreprise-class open source distributed monitoring +solution + +%changelog +* 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 + +* Fri Feb 24 2009 Daniel B. 0.1-1 +- Fix createlinks + +* Fri Feb 24 2009 Daniel B. 0.1-0 +- initial release + +%prep +%setup +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +#%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 + +%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