commit
b880124448
28 changed files with 448 additions and 0 deletions
@ -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"); |
||||||
|
|
@ -0,0 +1 @@ |
|||||||
|
zabbixproxydb |
@ -0,0 +1 @@ |
|||||||
|
zabbixuser |
@ -0,0 +1 @@ |
|||||||
|
10051 |
@ -0,0 +1 @@ |
|||||||
|
private |
@ -0,0 +1 @@ |
|||||||
|
enabled |
@ -0,0 +1 @@ |
|||||||
|
service |
@ -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); |
||||||
|
} |
||||||
|
} |
||||||
|
|
@ -0,0 +1 @@ |
|||||||
|
PERMS=0750 |
@ -0,0 +1,3 @@ |
|||||||
|
PERMS=0750 |
||||||
|
UID="root" |
||||||
|
GID="zabbix" |
@ -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 <<EOF |
||||||
|
USE mysql; |
||||||
|
|
||||||
|
REPLACE INTO user ( |
||||||
|
host, |
||||||
|
user, |
||||||
|
password) |
||||||
|
VALUES ( |
||||||
|
'localhost', |
||||||
|
'${'zabbix-proxy'}{DbUser}', |
||||||
|
PASSWORD ('${'zabbix-proxy'}{DbPassword}')); |
||||||
|
|
||||||
|
|
||||||
|
REPLACE INTO db ( |
||||||
|
host, |
||||||
|
db, |
||||||
|
user, |
||||||
|
select_priv, insert_priv, update_priv, delete_priv, |
||||||
|
create_priv, alter_priv, index_priv, drop_priv, create_tmp_table_priv, |
||||||
|
grant_priv, lock_tables_priv, references_priv) |
||||||
|
VALUES ( |
||||||
|
'localhost', |
||||||
|
'${'zabbix-proxy'}{DbName}', |
||||||
|
'${'zabbix-proxy'}{DbUser}', |
||||||
|
'Y', 'Y', 'Y', 'Y', |
||||||
|
'Y', 'Y', 'Y', 'Y', 'Y', |
||||||
|
'N', 'Y', 'Y'); |
||||||
|
|
||||||
|
FLUSH PRIVILEGES; |
||||||
|
|
||||||
|
EOF |
||||||
|
END |
||||||
|
} |
@ -0,0 +1 @@ |
|||||||
|
Cmnd_Alias ZABBIX = /usr/sbin/fping,/usr/sbin/fping6 |
@ -0,0 +1 @@ |
|||||||
|
zabbix ALL=(root) NOPASSWD: ZABBIX |
@ -0,0 +1,4 @@ |
|||||||
|
# This is config file for ZABBIX server process |
||||||
|
# To get more information about ZABBIX, |
||||||
|
# go http://www.zabbix.com |
||||||
|
|
@ -0,0 +1,10 @@ |
|||||||
|
############ GENERAL PARAMETERS ################# |
||||||
|
|
||||||
|
# IP address (or hostname) of ZABBIX servers. |
||||||
|
|
||||||
|
Server={ (${'zabbix-proxy'}{'Servers'} || '127.0.0.1'); } |
||||||
|
|
||||||
|
# Server port for sending active checks |
||||||
|
|
||||||
|
ServerPort={ (${'zabbix-proxy'}{'ServerPort'} || '10051'); } |
||||||
|
|
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
|
||||||
|
my $host = (${'zabbix-proxy'}{'Hostname'} || $SystemName.".".$DomainName); |
||||||
|
$OUT = "Hostname=$host\n"; |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,35 @@ |
|||||||
|
# Number of pre-forked instances of pollers |
||||||
|
# Default value is 5 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
StartPollers=5 |
||||||
|
|
||||||
|
# Number of pre-forked instances of IPMI pollers |
||||||
|
# Default value is 0 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
#StartIPMIPollers=0 |
||||||
|
|
||||||
|
# Number of pre-forked instances of pollers for unreachable hosts |
||||||
|
# Default value is 1 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
#StartPollersUnreachable=1 |
||||||
|
|
||||||
|
# Number of pre-forked instances of trappers |
||||||
|
# Default value is 5 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
StartTrappers=5 |
||||||
|
|
||||||
|
# Number of pre-forked instances of ICMP pingers |
||||||
|
# Default value is 1 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
StartPingers=1 |
||||||
|
|
||||||
|
# Number of pre-forked instances of discoverers |
||||||
|
# Default value is 1 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
StartDiscoverers=1 |
||||||
|
|
||||||
|
# Number of pre-forked instances of HTTP pollers |
||||||
|
# Default value is 1 |
||||||
|
# This parameter must be between 0 and 255 |
||||||
|
#StartHTTPPollers=1 |
||||||
|
|
@ -0,0 +1,16 @@ |
|||||||
|
# Listen port for trapper. Default port number is 10051. This parameter |
||||||
|
# must be between 1024 and 32767 |
||||||
|
{ |
||||||
|
my $port = ${'zabbix-proxy'}{'TCPPort'} || '10051'; |
||||||
|
$OUT .= "ListenPort=$port\n"; |
||||||
|
} |
||||||
|
|
||||||
|
# Source IP address for outgouing connections |
||||||
|
#SourceIP= |
||||||
|
|
||||||
|
# Listen interface for trapper. Trapper will listen all network interfaces |
||||||
|
# if this parameter is missing. |
||||||
|
|
||||||
|
#ListenIP=127.0.0.1 |
||||||
|
|
||||||
|
|
@ -0,0 +1,34 @@ |
|||||||
|
# How often ZABBIX will perform sending hearbeat message |
||||||
|
# (in seconds) |
||||||
|
# Default value is 60 seconds |
||||||
|
# Set to 0 to disable heartbeat messages |
||||||
|
# This parameter must be between 0 and 3600 |
||||||
|
#HeartbeatFrequency=60 |
||||||
|
|
||||||
|
# How often ZABBIX will perform sync configuration data |
||||||
|
# (in seconds) |
||||||
|
# Default value is 3600 seconds (1h) |
||||||
|
# This parameter must be between 1 and 604800 (1 week) |
||||||
|
#ConfigFrequency=3600 |
||||||
|
|
||||||
|
|
||||||
|
# How often ZABBIX will perform housekeeping procedure |
||||||
|
# (in hours) |
||||||
|
# Default value is 1 hour |
||||||
|
# Housekeeping is removing unnecessary information from |
||||||
|
# tables history, alert, and alarms |
||||||
|
# This parameter must be between 1 and 24 |
||||||
|
|
||||||
|
#HousekeepingFrequency=1 |
||||||
|
|
||||||
|
# How often ZABBIX will try to send unsent alerts |
||||||
|
# (in seconds) |
||||||
|
# Default value is 30 seconds |
||||||
|
DataSenderFrequency=30 |
||||||
|
|
||||||
|
# Uncomment this line to disable housekeeping procedure |
||||||
|
#DisableHousekeeping=1 |
||||||
|
|
||||||
|
# Frequency of ICMP pings (item keys 'icmpping' and 'icmppingsec'). Defauls is 60 seconds. |
||||||
|
#PingerFrequency=60 |
||||||
|
|
@ -0,0 +1,9 @@ |
|||||||
|
# Local bufer size in hours. Proxy will keep collected data N hours. |
||||||
|
# Default value is 0 hours |
||||||
|
#ProxyLocalBuffer=0 |
||||||
|
|
||||||
|
# Offline buffer size in hours. It is used when server is not available. |
||||||
|
# Older data is removed. |
||||||
|
# Default value is 1 hours |
||||||
|
ProxyOfflineBuffer=24 |
||||||
|
|
@ -0,0 +1,9 @@ |
|||||||
|
# Specifies debug level |
||||||
|
# 0 - debug is not created |
||||||
|
# 1 - critical information |
||||||
|
# 2 - error information |
||||||
|
# 3 - warnings (default) |
||||||
|
# 4 - for debugging (produces lots of information) |
||||||
|
|
||||||
|
DebugLevel=3 |
||||||
|
|
@ -0,0 +1,17 @@ |
|||||||
|
# Specifies how long we wait for agent response (in sec) |
||||||
|
# Must be between 1 and 30 |
||||||
|
Timeout=5 |
||||||
|
|
||||||
|
# Specifies how many seconds trapper may spend processing new data |
||||||
|
# Must be between 1 and 30 |
||||||
|
#TrapperTimeout=5 |
||||||
|
|
||||||
|
# After how many seconds of unreachability treat a host as unavailable |
||||||
|
#UnreachablePeriod=45 |
||||||
|
|
||||||
|
# How ofter check host for availability during the unreachability period |
||||||
|
#UnavailableDelay=15 |
||||||
|
|
||||||
|
# How ofter check host for availability during the unavailability period |
||||||
|
#UnavailableDelay=60 |
||||||
|
|
@ -0,0 +1,13 @@ |
|||||||
|
# Name of PID file |
||||||
|
|
||||||
|
PidFile=/var/run/zabbix/zabbix_proxy.pid |
||||||
|
|
||||||
|
# Name of log file |
||||||
|
# If not set, syslog is used |
||||||
|
|
||||||
|
LogFile=/var/log/zabbix/zabbix_proxy.log |
||||||
|
|
||||||
|
# Maximum size of log file in MB. Set to 0 to disable automatic log rotation. |
||||||
|
LogFileSize=10 |
||||||
|
|
||||||
|
|
@ -0,0 +1,14 @@ |
|||||||
|
# Location of external scripts |
||||||
|
ExternalScripts=/var/lib/zabbix/bin |
||||||
|
|
||||||
|
# Location of fping. Default is /usr/sbin/fping |
||||||
|
# Make sure that fping binary has root permissions and SUID flag set |
||||||
|
FpingLocation=/var/lib/zabbix/bin/fping |
||||||
|
|
||||||
|
# Location of fping6. Default is /usr/sbin/fping6 |
||||||
|
# Make sure that fping binary has root permissions and SUID flag set |
||||||
|
Fping6Location=/var/lib/zabbix/bin/fping6 |
||||||
|
|
||||||
|
# Temporary directory. Default is /tmp |
||||||
|
TmpDir=/var/lib/zabbix/tmp |
||||||
|
|
@ -0,0 +1,32 @@ |
|||||||
|
# Database host name |
||||||
|
# Default is localhost |
||||||
|
|
||||||
|
DBHost=localhost |
||||||
|
|
||||||
|
# Database name |
||||||
|
# SQLite3 note: path to database file must be provided. DBUser and DBPassword are ignored. |
||||||
|
{ |
||||||
|
my $dbname = ${'zabbix-proxy'}{'DbName'} || 'zabbix'; |
||||||
|
my $dbuser = ${'zabbix-proxy'}{'DbUser'} || 'zabbix'; |
||||||
|
my $dbpass = ${'zabbix-proxy'}{'DbPassword'} || 'secret'; |
||||||
|
|
||||||
|
$OUT .=<<"HERE"; |
||||||
|
|
||||||
|
DBName=$dbname |
||||||
|
|
||||||
|
# Database user |
||||||
|
|
||||||
|
DBUser=$dbuser |
||||||
|
|
||||||
|
# Database password |
||||||
|
# Comment this line if no password used |
||||||
|
|
||||||
|
DBPassword=$dbpass |
||||||
|
HERE |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
# Connect to MySQL using Unix socket? |
||||||
|
|
||||||
|
DBSocket=/var/lib/mysql/mysql.sock |
||||||
|
|
@ -0,0 +1,2 @@ |
|||||||
|
#!/bin/sh |
||||||
|
exec /usr/bin/sudo /usr/sbin/fping "$@" |
@ -0,0 +1,2 @@ |
|||||||
|
#!/bin/sh |
||||||
|
exec /usr/bin/sudo /usr/sbin/fping6 "$@" |
@ -0,0 +1,124 @@ |
|||||||
|
# $Id: smeserver-zabbix-proxy.spec,v 1.8 2011/10/07 16:31:13 vip-ire Exp $ |
||||||
|
# Authority: vip-ire |
||||||
|
# Name: Daniel Berteaud |
||||||
|
|
||||||
|
%define name smeserver-zabbix-proxy |
||||||
|
%define version 0.1 |
||||||
|
%define release 10 |
||||||
|
Summary: sme server integration of zabbix proxy |
||||||
|
Name: %{name} |
||||||
|
Version: %{version} |
||||||
|
Release: %{release}%{?dist} |
||||||
|
License: GNU GPL version 3 |
||||||
|
URL: http://www.zabbix.com/ |
||||||
|
Group: SMEserver/addon |
||||||
|
Source: %{name}-%{version}.tar.gz |
||||||
|
Patch0: smeserver-zabbix-server-0.1-sendxmpp_template.patch |
||||||
|
Patch1: smeserver-zabbix-server-0.1-sendxmpp_shell_script_header.patch |
||||||
|
Patch2: smeserver-zabbix-server-0.1-disable_web_access.patch |
||||||
|
Patch3: smeserver-zabbix-server-0.1-mysql_db_pass.patch |
||||||
|
Patch4: smeserver-zabbix-server-0.1-script_and_tmp_location.patch |
||||||
|
Patch5: smeserver-zabbix-server-0.1-event_zabbix-server-update.patch |
||||||
|
Patch6: smeserver-zabbix-proxy-0.1-server2proxy.patch |
||||||
|
Patch7: smeserver-zabbix-proxy-0.1-createlinks_fixes.patch |
||||||
|
Patch8: smeserver-zabbix-proxy-0.1-enable_db_cache.patch |
||||||
|
Patch9: smeserver-zabbix-proxy-0.1-fixe_sudoers_expand_template.patch |
||||||
|
Patch10: smeserver-zabbix-proxy-0.1-multiple_dbpatches.patch |
||||||
|
Patch11: smeserver-zabbix-proxy-0.1-hostname_from_db.patch |
||||||
|
Patch12: smeserver-zabbix-proxy-0.1-fix_proxy_directives.patch |
||||||
|
|
||||||
|
BuildArchitectures: noarch |
||||||
|
BuildRequires: e-smith-devtools |
||||||
|
BuildRoot: /var/tmp/%{name}-%{version} |
||||||
|
Requires: e-smith-release >= 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. <daniel@firewall-services.com> 0.1-11 |
||||||
|
- Fixe 2 directives (needed for Zabbix 1.8.8) |
||||||
|
|
||||||
|
* Thu Nov 25 2010 Daniel B. <daniel@firewall-services.com> 0.1-9 |
||||||
|
- Requires the mysql variant of server and proxy |
||||||
|
|
||||||
|
* Tue Oct 19 2010 Daniel B. <daniel@firewall-services.com> 0.1-8 |
||||||
|
- Possibility to set Hostname from the DB |
||||||
|
|
||||||
|
* Thu Apr 15 2010 Daniel B. <daniel@firewall-services.com> 0.1-7 |
||||||
|
- Support multiple dbpatches |
||||||
|
|
||||||
|
* Mon Sep 28 2009 Daniel B. <daniel@firewall-services.com> 0.1-6 |
||||||
|
- Fixe /etc/sudoers template expension during zabbix-proxy-update event |
||||||
|
|
||||||
|
* Tue Mar 03 2009 Daniel B. <daniel@firewall-services.com> 0.1-5 |
||||||
|
- Add smeserver-remoteuseraccess as a dependencie (sudoers template problem) |
||||||
|
|
||||||
|
* Mon Mar 02 2009 Daniel B. <daniel@firewall-services.com> 0.1-4 |
||||||
|
- Disable DB cache as it seems to cause IPC problems |
||||||
|
|
||||||
|
* Mon Mar 02 2009 Daniel B. <daniel@firewall-services.com> 0.1-3 |
||||||
|
- enable DB cache with StartDBSyncers directive |
||||||
|
|
||||||
|
* Sun Mar 01 2009 Daniel B. <daniel@firewall-services.com> 0.1-2 |
||||||
|
- Fix permissions on /var/lib/zabbix/tmp |
||||||
|
|
||||||
|
* Fri Feb 24 2009 Daniel B. <daniel@firewall-services.com> 0.1-1 |
||||||
|
- Fix createlinks |
||||||
|
|
||||||
|
* Fri Feb 24 2009 Daniel B. <daniel@firewall-services.com> 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 |
Loading…
Reference in new issue