diff --git a/zabbix/Makefile b/zabbix/Makefile
index 761b703..a224433 100644
--- a/zabbix/Makefile
+++ b/zabbix/Makefile
@@ -77,6 +77,7 @@ zabbix-syslog:
mkdir -p $(CHROOT)/etc/zabbix/scripts/lib
cp zabbix/zabbix-syslog/zabbix_syslog_create_urls.pl $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_create_urls.pl
cp zabbix/zabbix-syslog/zabbix_syslog_lkp_host.pl $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_lkp_host.pl
+ cp zabbix/zabbix-syslog/Template_syslog.xml $(CHROOT)/etc/zabbix/scripts/Template_syslog.xml
cp zabbix/zabbix-syslog/zabbix_syslog.cfg $(CHROOT)/etc/zabbix/zabbix_syslog.cfg
cp zabbix/zabbix-syslog/lib/ZabbixAPI.pm $(CHROOT)/etc/zabbix/scripts/lib/ZabbixAPI.pm
cp zabbix/zabbix-syslog/70-zabbix_rsyslog.conf $(CHROOT)/etc/rsyslog.d/70-zabbix_rsyslog.conf
@@ -84,22 +85,56 @@ zabbix-syslog:
chmod +x $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_create_urls.pl
chmod +x $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_lkp_host.pl
-fping:
+zabbix-config:
+ sed -i \
+ -e 's:# PidFile=/tmp/zabbix_agent2.pid:PidFile=/run/zabbix/zabbix_agent2.pid:' \
+ -e 's:# LogFile=/tmp/zabbix_agent2.log:LogFile=/var/log/zabbix/zabbix_agent2.log:' \
+ $(CHROOT)/etc/zabbix/zabbix_agent2.conf
+ sed -i \
+ -e 's:LogFile=/tmp/zabbix_proxy.log:LogFile=/var/log/zabbix/zabbix_proxy.log:' \
+ -e 's:# PidFile=/tmp/zabbix_proxy.pid:PidFile=/run/zabbix/zabbix_proxy.pid:' \
+ $(CHROOT)/etc/zabbix/zabbix_proxy.conf
+ sed -i \
+ -e 's:LogFile=/tmp/zabbix_server.log:LogFile=/var/log/zabbix/zabbix_server.log:' \
+ -e 's:# PidFile=/tmp/zabbix_server.pid:PidFile=/run/zabbix/zabbix_server.pid:' \
+ -e 's:# StartPollers=5:StartPollers=15:' \
+ -e 's:# StartIPMIPollers=0:StartIPMIPollers=5:' \
+ -e 's:# StartPollersUnreachable=1:StartPollersUnreachable=15:' \
+ -e 's:# StartPingers=1:StartPingers=25:' \
+ -e 's:# StartDiscoverers=1:StartDiscoverers=5:' \
+ -e 's:# JavaGateway=:JavaGateway=127.0.0.1:' \
+ -e 's:# VMwareCacheSize=8M:VMwareCacheSize=16M:' \
+ -e 's:# VMwareTimeout=10:VMwareTimeout=30:' \
+ -e 's:# SNMPTrapperFile=/tmp/zabbix_traps.tmp:SNMPTrapperFile=/var/log/snmptt/snmptt.log:' \
+ -e 's:# CacheSize=8M:CacheSize=32M:' \
+ -e 's:# HistoryIndexCacheSize=4M:HistoryIndexCacheSize=8M:' \
+ -e 's:Timeout=4:Timeout=10:' \
+ -e 's:^# AlertScriptsPath=.*:AlertScriptsPath=/var/lib/zabbix/alertscripts:' \
+ -e 's:^# ExternalScripts=.*:ExternalScripts=/var/lib/zabbix/externalscripts:' \
+ -e 's:# ProxyConfigFrequency=3600:ProxyConfigFrequency=360:' \
+ -e 's:# ProxyDataFrequency=1:ProxyDataFrequency=60:' \
+ $(CHROOT)/etc/zabbix/zabbix_server.conf
+
+fping-perm:
chmod u=rwsx,g=rx,o=rx $(CHROOT)/usr/sbin/fping
chmod u=rwsx,g=rx,o=rx $(CHROOT)/usr/sbin/fping6
-snmp:
- cp snmp/snmpd.conf $(CHROOT)/etc/snmp/snmpd.conf
- cp snmp/snmptrapd.conf $(CHROOT)/etc/snmp/snmptrapd.conf
- cp snmp/snmptt.conf $(CHROOT)/etc/snmp/snmptt.conf
+snmp-conf:
+ cp -f snmp/snmpd.conf $(CHROOT)/etc/snmp/snmpd.conf
+ cp -f snmp/snmptrapd.conf $(CHROOT)/etc/snmp/snmptrapd.conf
+ cp -f snmp/snmptt.conf $(CHROOT)/etc/snmp/snmptt.conf
sed -i \
- -e 's:net_snmp_perl_enable = 0:net_snmp_perl_enable = 1:' \
- -e 's:translate_integers = 1:translate_integers = 0:' \
- -e 's:#mibs_environment = ALL:mibs_environment = ALL:' \
- -e 's.#date_time_format =.date_time_format = %H:%M:%S %Y/%m/%d.' \
- -e 's:daemon_uid = snmptt:daemon_uid = zabbix:' \
- -e 's:log_system_enable = 0:log_system_enable = 1:' \
- -e 's:unknown_trap_log_enable = 0:unknown_trap_log_enable = 1:' \
+ -e 's:^mode = .*:mode = standalone:' \
+ -e 's:^net_snmp_perl_enable = .*:net_snmp_perl_enable = 1:' \
+ -e 's:^translate_log_trap_oid = .*:translate_log_trap_oid = 2:' \
+ -e 's:^translate_integers = .*:translate_integers = 0:' \
+ -e 's:^#mibs_environment = .*:mibs_environment = ALL:' \
+ -e 's.^#date_time_format =.date_time_format = %H:%M:%S %Y/%m/%d.' \
+ -e 's:^daemon_uid = .*:daemon_uid = zabbix:' \
+ -e 's:^log_system_enable = .*:log_system_enable = 1:' \
+ -e 's:^unknown_trap_log_enable = .*:unknown_trap_log_enable = 1:' \
+ -e 's:^syslog_level = .*:syslog_level = err:' \
+ -e 's:^syslog_system_level = .*:syslog_system_level = err:' \
$(CHROOT)/etc/snmp/snmptt.ini
mkdir -p $(CHROOT)/var/log/snmptt
chmod 0775 $(CHROOT)/var/log/snmptt
@@ -107,4 +142,4 @@ snmp:
preinstall:
-postinstall: systemd-units $(02firstboot) $(cert-renew.sh) $(CHROOT)/var/lib/mysql apache-php zabbix-services zabbix-webapp $(zabbix-userparameter) zabbix-syslog fping snmp
+postinstall: systemd-units $(02firstboot) $(cert-renew.sh) $(CHROOT)/var/lib/mysql apache-php zabbix-services zabbix-webapp $(zabbix-userparameter) zabbix-syslog zabbix-config fping-perm snmp-conf
diff --git a/zabbix/appliance/02firstboot.start b/zabbix/appliance/02firstboot.start
index 417390a..82ca7e7 100755
--- a/zabbix/appliance/02firstboot.start
+++ b/zabbix/appliance/02firstboot.start
@@ -93,8 +93,32 @@ if [ "$zabbixtype" == "server" ]; then
ln -s /$LABEL/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php /var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php
fi
fi
+ if [ ! -L /var/lib/net-snmp ]; then
+ echo 'Linking SNMP data directory...'
+ if [ ! -d "/$LABEL/var/lib/net-snmp" ]; then
+ mkdir -p /$LABEL/var/lib/net-snmp
+ cp -a /var/lib/net-snmp/. /$LABEL/var/lib/net-snmp
+ fi
+ rm -rf /var/lib/net-snmp.orig
+ mv /var/lib/net-snmp /var/lib/net-snmp.orig
+ ln -s /$LABEL/var/lib/net-snmp /var/lib/net-snmp
+ fi
fi
+# Zabbix home directory
+if [ ! -L /var/lib/zabbix ]; then
+ echo 'Linking Zabbix home directory...'
+ if [ ! -d "/$LABEL/var/lib/zabbix" ]; then
+ mkdir -p /$LABEL/var/lib/zabbix
+ chown zabbix:zabbix /$LABEL/var/lib/zabbix
+ cp -a /var/lib/zabbix/. /$LABEL/var/lib/zabbix
+ fi
+ rm -rf /var/lib/zabbix.orig
+ mv /var/lib/zabbix /var/lib/zabbix.orig
+ ln -s /$LABEL/var/lib/zabbix /var/lib/zabbix
+fi
+
+
# Database
if [ ! -L /var/lib/mysql ]; then
systemctl stop mariadb
@@ -102,6 +126,7 @@ if [ ! -L /var/lib/mysql ]; then
echo 'Initialize MariaDB...'
mkdir -p "/$LABEL/var/lib"
rm -rf "/$LABEL/var/lib/mysql"
+ rm -rf "/$LABEL/var/lib/mysql.orig"
cp -a "/var/lib/mysql" "/$LABEL/var/lib/mysql"
mv "/var/lib/mysql" "/$LABEL/var/lib/mysql.orig"
ln -s "/$LABEL/var/lib/mysql" "/var/lib/mysql"
@@ -177,7 +202,7 @@ if [ "$zabbixtype" == "server" ]; then
fi
systemctl enable mariadb
-systemctl enable zabbix-agentd
+systemctl enable zabbix-agent2
if [ "$zabbixtype" == "server" ]; then
systemctl enable zabbix-server
systemctl enable apache2
@@ -185,7 +210,7 @@ else
systemctl enable zabbix-proxy
fi
-systemctl restart zabbix-agentd
+systemctl restart zabbix-agent2
if [ "$zabbixtype" == "server" ]; then
systemctl restart zabbix-server
systemctl restart apache2
diff --git a/zabbix/package.accept_keywords b/zabbix/package.accept_keywords
index 93f6d82..ca7f274 100644
--- a/zabbix/package.accept_keywords
+++ b/zabbix/package.accept_keywords
@@ -1,3 +1,2 @@
# Zabbix
-net-analyzer/zabbix
net-analyzer/snmptt
diff --git a/zabbix/package.use b/zabbix/package.use
index b58763e..6be2eac 100644
--- a/zabbix/package.use
+++ b/zabbix/package.use
@@ -5,8 +5,8 @@ app-text/poppler -introspection -jpeg -jpeg2k
dev-java/openjdk-bin headless-awt
dev-lang/php apache2 bcmath curl gd ldap mysql mysqli sockets sysvipc truetype xmlreader xmlwriter
media-libs/gd jpeg png
-net-analyzer/zabbix curl frontend java ldap libxml2 mysql openipmi -postgres proxy server snmp ssh xmpp
-net-analyzer/zabbix-headers curl frontend java ldap libxml2 mysql openipmi -postgres proxy server snmp ssh xmpp
+net-analyzer/zabbix -agent agent2 curl frontend java ldap libxml2 mysql openipmi -postgres proxy server snmp ssh xmpp
+net-analyzer/zabbix-headers -agent agent2 curl frontend java ldap libxml2 mysql openipmi -postgres proxy server snmp ssh xmpp
net-analyzer/net-snmp perl
net-analyzer/fping suid
net-print/cups-filters -foomatic -postscript
diff --git a/zabbix/snmp/snmpd.conf b/zabbix/snmp/snmpd.conf
index 250e7f8..4c2263b 100644
--- a/zabbix/snmp/snmpd.conf
+++ b/zabbix/snmp/snmpd.conf
@@ -1 +1,2 @@
-mibs +ALL
\ No newline at end of file
+#mibs +SOME-OTHER-SPIFFY-MIB
+mibs +ALL
diff --git a/zabbix/world b/zabbix/world
index f6358fb..ccd824f 100644
--- a/zabbix/world
+++ b/zabbix/world
@@ -7,7 +7,7 @@ dev-perl/JSON-RPC
dev-perl/JSON-XS
dev-perl/libwww-perl
dev-tcltk/expect
-net-analyzer/l2dm-lldp
+net-analyzer/snmp-lldp
net-analyzer/net-snmp
net-analyzer/nmap
net-analyzer/snmptt
diff --git a/zabbix/zabbix/zabbix-syslog/Template_syslog.xml b/zabbix/zabbix/zabbix-syslog/Template_syslog.xml
new file mode 100644
index 0000000..00c76fd
--- /dev/null
+++ b/zabbix/zabbix/zabbix-syslog/Template_syslog.xml
@@ -0,0 +1,128 @@
+
+
+ 2.0
+ 2015-03-13T14:27:56Z
+
+
+ Templates
+
+
+
+
+ Template_Syslog
+ Template_Syslog
+
+
+
+ Templates
+
+
+
+
+ Log
+
+
+
+ -
+ Syslog
+ 2
+
+ 0
+
+ syslog
+ 0
+ 3
+ 365
+ 0
+ 2
+
+
+ 0
+
+
+ 0
+ 0
+
+ 0
+
+ 1
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ 0
+
+
+ Log
+
+
+
+ yyyyxMMxddxhhxmmxssxxxxxx
+
+
+
+
+
+
+
+
+
+
+ ({Template_Syslog:syslog.str(.alert)}=1)and({Template_Syslog:syslog.nodata(900)}=0)
+ [SYSLOG] Alert message received
+
+ 0
+ 4
+
+ 0
+
+
+
+ ({Template_Syslog:syslog.str(.crit)}=1)and({Template_Syslog:syslog.nodata(900)}=0)
+ [SYSLOG] Critical message received
+
+ 0
+ 3
+
+ 0
+
+
+
+ ({Template_Syslog:syslog.str(.emerg)}=1)and({Template_Syslog:syslog.nodata(900)}=0)
+ [SYSLOG] Emergency message received
+
+ 0
+ 5
+
+ 0
+
+
+
+ ({Template_Syslog:syslog.str(.err)}=1)and({Template_Syslog:syslog.nodata(900)}=0)
+ [SYSLOG] Error received
+
+ 0
+ 2
+
+ 0
+
+
+
+ ({Template_Syslog:syslog.str(.warning)}=1)and({Template_Syslog:syslog.nodata(900)}=0)
+ [SYSLOG] Warning received
+
+ 0
+ 1
+
+ 0
+
+
+
+
diff --git a/zabbix/zabbix/zabbix-syslog/zabbix_syslog_create_urls.pl b/zabbix/zabbix/zabbix-syslog/zabbix_syslog_create_urls.pl
index 56dac4e..00826f8 100644
--- a/zabbix/zabbix/zabbix-syslog/zabbix_syslog_create_urls.pl
+++ b/zabbix/zabbix/zabbix-syslog/zabbix_syslog_create_urls.pl
@@ -9,7 +9,7 @@ use lib "$Bin/lib";
use Data::Dumper;
use Config::General;
use ZabbixAPI;
-our $VERSION = 3.1;
+our $VERSION = 4.0;
my $conf;
$conf = eval {Config::General->new('/usr/local/etc/zabbix_syslog.cfg')};
if ($@) {
diff --git a/zabbix/zabbix/zabbix-syslog/zabbix_syslog_lkp_host.pl b/zabbix/zabbix/zabbix-syslog/zabbix_syslog_lkp_host.pl
index 7d0ab22..d5f89bf 100644
--- a/zabbix/zabbix/zabbix-syslog/zabbix_syslog_lkp_host.pl
+++ b/zabbix/zabbix/zabbix-syslog/zabbix_syslog_lkp_host.pl
@@ -13,7 +13,7 @@ use English '-no_match_vars';
use MIME::Base64 qw(encode_base64);
use IO::Socket::INET;
use Storable qw(lock_store lock_retrieve);
-our $VERSION = 3.1;
+our $VERSION = 4.0;
my $CACHE_TIMEOUT = 600;
my $CACHE_DIR = '/tmp/zabbix_syslog_cache_n';
@@ -193,6 +193,7 @@ sub zabbix_send {
sprintf
"\n%s\n%s\n%s\n\n",
encode_base64($hostname), encode_base64($item), encode_base64($data);
+ my $packet = "ZBXD\1" . pack('V', length($request)) . "\0\0\0\0" . $request;
my $sock = IO::Socket::INET->new(
PeerAddr => $zabbixserver,
@@ -202,7 +203,8 @@ sub zabbix_send {
);
die "Could not create socket: $ERRNO\n" unless $sock;
- $sock->send($request);
+ $sock->send($packet);
+
my @handles = IO::Select->new($sock)->can_read($SOCK_TIMEOUT);
if ( $debug > 0 ) { print "host - $hostname, item - $item, data - $data\n"; }