Sorry, может не в тему, но спрошу.
Вопрос не столько по Zabbix, сколько по snmptrap.
Принимается Enterprise трап с пробника QT-600. Трап принимается нормально, snmptrapd пишет в свой лог нормально, одну строчку на один трап. После обработки трапа парсером в дополнительный лог пишутся две одинаковые строчки. Соответственно в Zabbix попадает два одинаковых трапа. То есть в snmptrap.log - одна строчка, в snmptraps.log - уже две строчки на один принимаемый трап. Помогите найти засаду.
OS ubuntu 11.04.
snmptrapd.conf:
pidfile /tmp/snmptrap.pid
ignoreauthfailure no
disableAuthorization yes
donotfork no
donotlogtraps no
logoption f /var/log/snmptrap.log
outputOption efnQs
authCommunity log,execute,net public
traphandle default /bin/bash /home/zabbix/bin/snmptrap.sh
snmptrap.sh:
LOG="/var/log/snmptraps.log"
ZABBIX_SERVER="127.0.0.1";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/bin/zabbix_sender";
KEY="snmptraps";
HOST="snmptraps";
read hostname
read ip
read uptime
read enterprise
read iso01
read iso02
read iso03
read iso04
read iso05
read iso06
read iso07
read iso08
read iso09
read iso10
read iso11
read iso12
read iso13
read iso14
read iso15
read iso16
read iso17
read iso18
read iso19
read iso20
read iso21
read iso22
read iso23
read iso24
read iso25
read iso26
read iso27
read iso28
ip=`echo $ip | cut -f2 -d[ | cut -f1 -d]`
if [ $ip = "10.10.10.3" ]; then
hostname2="QT-600-3"
else
if [ $ip = "10.10.10.4" ]; then
hostname2="QT-600-4"
else
if [ $ip = "10.10.10.5" ]; then
hostname2="QT-600-5"
else
if [ $ip = "10.10.10.6" ]; then
hostname2="QT-600-6"
else
if [ $ip = "10.10.10.7" ]; then
hostname2="QT-600-7"
else hostname2=$ip
fi
fi
fi
fi
fi
enterprise=`echo $enterprise | cut -f2 -d= | cut -f12 -d.`
if [ $enterprise="9030" ]; then
enterprise2="AlarmVideoTrap"
else enterprise2=$enterprise
fi
d1=`echo $iso02 | cut -f2 -d= | cut -c 3-6`
d2=`echo $iso02 | cut -f2 -d= | cut -c 7-8`
d3=`echo $iso02 | cut -f2 -d= | cut -c 9-10`
t1=`echo $iso02 | cut -f2 -d= | cut -c 11-12`
t2=`echo $iso02 | cut -f2 -d= | cut -c 13-14`
t3=`echo $iso02 | cut -f2 -d= | cut -c 15-16`
date="$d3/$d2/$d1"
time="$t1:$t2:$t3"
chanel=`echo $iso03 | cut -f2 -d=`
severity=`echo $iso06 | cut -f2 -d=`
error=`echo $iso11 | cut -f2 -d=`
value=`echo $iso12 | cut -f2 -d=`
sourceStream=`echo $iso16 | cut -f2 -d=`
str="$enterprise2 $hostname2($ip) $time $date $chanel Severity=$severity ErrorType=$error Value=$value From$sourceStream"
echo "$str" >> $LOG
$ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $hostname2 -k $KEY -o "$str"
полей много, но так и должно быть, все задействованы, но не все нужны
Вопрос не столько по Zabbix, сколько по snmptrap.
Принимается Enterprise трап с пробника QT-600. Трап принимается нормально, snmptrapd пишет в свой лог нормально, одну строчку на один трап. После обработки трапа парсером в дополнительный лог пишутся две одинаковые строчки. Соответственно в Zabbix попадает два одинаковых трапа. То есть в snmptrap.log - одна строчка, в snmptraps.log - уже две строчки на один принимаемый трап. Помогите найти засаду.
OS ubuntu 11.04.
snmptrapd.conf:
pidfile /tmp/snmptrap.pid
ignoreauthfailure no
disableAuthorization yes
donotfork no
donotlogtraps no
logoption f /var/log/snmptrap.log
outputOption efnQs
authCommunity log,execute,net public
traphandle default /bin/bash /home/zabbix/bin/snmptrap.sh
snmptrap.sh:
LOG="/var/log/snmptraps.log"
ZABBIX_SERVER="127.0.0.1";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/bin/zabbix_sender";
KEY="snmptraps";
HOST="snmptraps";
read hostname
read ip
read uptime
read enterprise
read iso01
read iso02
read iso03
read iso04
read iso05
read iso06
read iso07
read iso08
read iso09
read iso10
read iso11
read iso12
read iso13
read iso14
read iso15
read iso16
read iso17
read iso18
read iso19
read iso20
read iso21
read iso22
read iso23
read iso24
read iso25
read iso26
read iso27
read iso28
ip=`echo $ip | cut -f2 -d[ | cut -f1 -d]`
if [ $ip = "10.10.10.3" ]; then
hostname2="QT-600-3"
else
if [ $ip = "10.10.10.4" ]; then
hostname2="QT-600-4"
else
if [ $ip = "10.10.10.5" ]; then
hostname2="QT-600-5"
else
if [ $ip = "10.10.10.6" ]; then
hostname2="QT-600-6"
else
if [ $ip = "10.10.10.7" ]; then
hostname2="QT-600-7"
else hostname2=$ip
fi
fi
fi
fi
fi
enterprise=`echo $enterprise | cut -f2 -d= | cut -f12 -d.`
if [ $enterprise="9030" ]; then
enterprise2="AlarmVideoTrap"
else enterprise2=$enterprise
fi
d1=`echo $iso02 | cut -f2 -d= | cut -c 3-6`
d2=`echo $iso02 | cut -f2 -d= | cut -c 7-8`
d3=`echo $iso02 | cut -f2 -d= | cut -c 9-10`
t1=`echo $iso02 | cut -f2 -d= | cut -c 11-12`
t2=`echo $iso02 | cut -f2 -d= | cut -c 13-14`
t3=`echo $iso02 | cut -f2 -d= | cut -c 15-16`
date="$d3/$d2/$d1"
time="$t1:$t2:$t3"
chanel=`echo $iso03 | cut -f2 -d=`
severity=`echo $iso06 | cut -f2 -d=`
error=`echo $iso11 | cut -f2 -d=`
value=`echo $iso12 | cut -f2 -d=`
sourceStream=`echo $iso16 | cut -f2 -d=`
str="$enterprise2 $hostname2($ip) $time $date $chanel Severity=$severity ErrorType=$error Value=$value From$sourceStream"
echo "$str" >> $LOG
$ZABBIX_SENDER -z $ZABBIX_SERVER -p $ZABBIX_PORT -s $hostname2 -k $KEY -o "$str"
полей много, но так и должно быть, все задействованы, но не все нужны
Comment