version bump, better default configs, save some var dirs

This commit is contained in:
Jörg Deckert 2022-10-14 15:12:09 +02:00
parent c972d568ae
commit 63afcd8bce
9 changed files with 213 additions and 23 deletions

View File

@ -77,6 +77,7 @@ zabbix-syslog:
mkdir -p $(CHROOT)/etc/zabbix/scripts/lib 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_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/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/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/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 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_create_urls.pl
chmod +x $(CHROOT)/etc/zabbix/scripts/zabbix_syslog_lkp_host.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/fping
chmod u=rwsx,g=rx,o=rx $(CHROOT)/usr/sbin/fping6 chmod u=rwsx,g=rx,o=rx $(CHROOT)/usr/sbin/fping6
snmp: snmp-conf:
cp snmp/snmpd.conf $(CHROOT)/etc/snmp/snmpd.conf cp -f snmp/snmpd.conf $(CHROOT)/etc/snmp/snmpd.conf
cp snmp/snmptrapd.conf $(CHROOT)/etc/snmp/snmptrapd.conf cp -f snmp/snmptrapd.conf $(CHROOT)/etc/snmp/snmptrapd.conf
cp snmp/snmptt.conf $(CHROOT)/etc/snmp/snmptt.conf cp -f snmp/snmptt.conf $(CHROOT)/etc/snmp/snmptt.conf
sed -i \ sed -i \
-e 's:net_snmp_perl_enable = 0:net_snmp_perl_enable = 1:' \ -e 's:^mode = .*:mode = standalone:' \
-e 's:translate_integers = 1:translate_integers = 0:' \ -e 's:^net_snmp_perl_enable = .*:net_snmp_perl_enable = 1:' \
-e 's:#mibs_environment = ALL:mibs_environment = ALL:' \ -e 's:^translate_log_trap_oid = .*:translate_log_trap_oid = 2:' \
-e 's.#date_time_format =.date_time_format = %H:%M:%S %Y/%m/%d.' \ -e 's:^translate_integers = .*:translate_integers = 0:' \
-e 's:daemon_uid = snmptt:daemon_uid = zabbix:' \ -e 's:^#mibs_environment = .*:mibs_environment = ALL:' \
-e 's:log_system_enable = 0:log_system_enable = 1:' \ -e 's.^#date_time_format =.date_time_format = %H:%M:%S %Y/%m/%d.' \
-e 's:unknown_trap_log_enable = 0:unknown_trap_log_enable = 1:' \ -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 $(CHROOT)/etc/snmp/snmptt.ini
mkdir -p $(CHROOT)/var/log/snmptt mkdir -p $(CHROOT)/var/log/snmptt
chmod 0775 $(CHROOT)/var/log/snmptt chmod 0775 $(CHROOT)/var/log/snmptt
@ -107,4 +142,4 @@ snmp:
preinstall: 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

View File

@ -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 ln -s /$LABEL/var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php /var/www/localhost/htdocs/zabbix/conf/zabbix.conf.php
fi fi
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 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 # Database
if [ ! -L /var/lib/mysql ]; then if [ ! -L /var/lib/mysql ]; then
systemctl stop mariadb systemctl stop mariadb
@ -102,6 +126,7 @@ if [ ! -L /var/lib/mysql ]; then
echo 'Initialize MariaDB...' echo 'Initialize MariaDB...'
mkdir -p "/$LABEL/var/lib" mkdir -p "/$LABEL/var/lib"
rm -rf "/$LABEL/var/lib/mysql" rm -rf "/$LABEL/var/lib/mysql"
rm -rf "/$LABEL/var/lib/mysql.orig"
cp -a "/var/lib/mysql" "/$LABEL/var/lib/mysql" cp -a "/var/lib/mysql" "/$LABEL/var/lib/mysql"
mv "/var/lib/mysql" "/$LABEL/var/lib/mysql.orig" mv "/var/lib/mysql" "/$LABEL/var/lib/mysql.orig"
ln -s "/$LABEL/var/lib/mysql" "/var/lib/mysql" ln -s "/$LABEL/var/lib/mysql" "/var/lib/mysql"
@ -177,7 +202,7 @@ if [ "$zabbixtype" == "server" ]; then
fi fi
systemctl enable mariadb systemctl enable mariadb
systemctl enable zabbix-agentd systemctl enable zabbix-agent2
if [ "$zabbixtype" == "server" ]; then if [ "$zabbixtype" == "server" ]; then
systemctl enable zabbix-server systemctl enable zabbix-server
systemctl enable apache2 systemctl enable apache2
@ -185,7 +210,7 @@ else
systemctl enable zabbix-proxy systemctl enable zabbix-proxy
fi fi
systemctl restart zabbix-agentd systemctl restart zabbix-agent2
if [ "$zabbixtype" == "server" ]; then if [ "$zabbixtype" == "server" ]; then
systemctl restart zabbix-server systemctl restart zabbix-server
systemctl restart apache2 systemctl restart apache2

View File

@ -1,3 +1,2 @@
# Zabbix # Zabbix
net-analyzer/zabbix
net-analyzer/snmptt net-analyzer/snmptt

View File

@ -5,8 +5,8 @@ app-text/poppler -introspection -jpeg -jpeg2k
dev-java/openjdk-bin headless-awt dev-java/openjdk-bin headless-awt
dev-lang/php apache2 bcmath curl gd ldap mysql mysqli sockets sysvipc truetype xmlreader xmlwriter dev-lang/php apache2 bcmath curl gd ldap mysql mysqli sockets sysvipc truetype xmlreader xmlwriter
media-libs/gd jpeg png media-libs/gd jpeg png
net-analyzer/zabbix 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 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/net-snmp perl
net-analyzer/fping suid net-analyzer/fping suid
net-print/cups-filters -foomatic -postscript net-print/cups-filters -foomatic -postscript

View File

@ -1 +1,2 @@
mibs +ALL #mibs +SOME-OTHER-SPIFFY-MIB
mibs +ALL

View File

@ -7,7 +7,7 @@ dev-perl/JSON-RPC
dev-perl/JSON-XS dev-perl/JSON-XS
dev-perl/libwww-perl dev-perl/libwww-perl
dev-tcltk/expect dev-tcltk/expect
net-analyzer/l2dm-lldp net-analyzer/snmp-lldp
net-analyzer/net-snmp net-analyzer/net-snmp
net-analyzer/nmap net-analyzer/nmap
net-analyzer/snmptt net-analyzer/snmptt

View File

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>2.0</version>
<date>2015-03-13T14:27:56Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template_Syslog</template>
<name>Template_Syslog</name>
<description/>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>Log</name>
</application>
</applications>
<items>
<item>
<name>Syslog</name>
<type>2</type>
<snmp_community/>
<multiplier>0</multiplier>
<snmp_oid/>
<key>syslog</key>
<delay>0</delay>
<history>3</history>
<trends>365</trends>
<status>0</status>
<value_type>2</value_type>
<allowed_hosts/>
<units/>
<delta>0</delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula>1</formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0</data_type>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>Log</name>
</application>
</applications>
<valuemap/>
<logtimefmt>yyyyxMMxddxhhxmmxssxxxxxx</logtimefmt>
</item>
</items>
<discovery_rules/>
<macros/>
<templates/>
<screens/>
</template>
</templates>
<triggers>
<trigger>
<expression>({Template_Syslog:syslog.str(.alert)}=1)and({Template_Syslog:syslog.nodata(900)}=0)</expression>
<name>[SYSLOG] Alert message received</name>
<url/>
<status>0</status>
<priority>4</priority>
<description/>
<type>0</type>
<dependencies/>
</trigger>
<trigger>
<expression>({Template_Syslog:syslog.str(.crit)}=1)and({Template_Syslog:syslog.nodata(900)}=0)</expression>
<name>[SYSLOG] Critical message received</name>
<url/>
<status>0</status>
<priority>3</priority>
<description/>
<type>0</type>
<dependencies/>
</trigger>
<trigger>
<expression>({Template_Syslog:syslog.str(.emerg)}=1)and({Template_Syslog:syslog.nodata(900)}=0)</expression>
<name>[SYSLOG] Emergency message received</name>
<url/>
<status>0</status>
<priority>5</priority>
<description/>
<type>0</type>
<dependencies/>
</trigger>
<trigger>
<expression>({Template_Syslog:syslog.str(.err)}=1)and({Template_Syslog:syslog.nodata(900)}=0)</expression>
<name>[SYSLOG] Error received</name>
<url/>
<status>0</status>
<priority>2</priority>
<description/>
<type>0</type>
<dependencies/>
</trigger>
<trigger>
<expression>({Template_Syslog:syslog.str(.warning)}=1)and({Template_Syslog:syslog.nodata(900)}=0)</expression>
<name>[SYSLOG] Warning received</name>
<url/>
<status>0</status>
<priority>1</priority>
<description/>
<type>0</type>
<dependencies/>
</trigger>
</triggers>
</zabbix_export>

View File

@ -9,7 +9,7 @@ use lib "$Bin/lib";
use Data::Dumper; use Data::Dumper;
use Config::General; use Config::General;
use ZabbixAPI; use ZabbixAPI;
our $VERSION = 3.1; our $VERSION = 4.0;
my $conf; my $conf;
$conf = eval {Config::General->new('/usr/local/etc/zabbix_syslog.cfg')}; $conf = eval {Config::General->new('/usr/local/etc/zabbix_syslog.cfg')};
if ($@) { if ($@) {

View File

@ -13,7 +13,7 @@ use English '-no_match_vars';
use MIME::Base64 qw(encode_base64); use MIME::Base64 qw(encode_base64);
use IO::Socket::INET; use IO::Socket::INET;
use Storable qw(lock_store lock_retrieve); use Storable qw(lock_store lock_retrieve);
our $VERSION = 3.1; our $VERSION = 4.0;
my $CACHE_TIMEOUT = 600; my $CACHE_TIMEOUT = 600;
my $CACHE_DIR = '/tmp/zabbix_syslog_cache_n'; my $CACHE_DIR = '/tmp/zabbix_syslog_cache_n';
@ -193,6 +193,7 @@ sub zabbix_send {
sprintf sprintf
"<req>\n<host>%s</host>\n<key>%s</key>\n<data>%s</data>\n</req>\n", "<req>\n<host>%s</host>\n<key>%s</key>\n<data>%s</data>\n</req>\n",
encode_base64($hostname), encode_base64($item), encode_base64($data); 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( my $sock = IO::Socket::INET->new(
PeerAddr => $zabbixserver, PeerAddr => $zabbixserver,
@ -202,7 +203,8 @@ sub zabbix_send {
); );
die "Could not create socket: $ERRNO\n" unless $sock; 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); my @handles = IO::Select->new($sock)->can_read($SOCK_TIMEOUT);
if ( $debug > 0 ) { print "host - $hostname, item - $item, data - $data\n"; } if ( $debug > 0 ) { print "host - $hostname, item - $item, data - $data\n"; }