У нас в сети настроено автоматическое обнаружение хостов для zabbix, только вот проблема в том, что хосты иногда криво обзываются(связано с настроками DNS). Вот написал скорпт, может быть кому поможет, он берет sysname по snmp и обновляет забиси в БД. Скрипт этот запускается по крону раз в день. Все прекрасно работает.
#!/usr/local/bin/bash
echo "update hosts set dns = host where ip <> host and dns like '%internal-rfc1918.example.com%';" | mysql -uzabbix -ppassword zabbix -hmdb.example.com
echo "update hosts set host=ip where host like '%internal-rfc1918.example.com%';" | mysql -uzabbix -ppassword zabbix -hmdb.example.com
echo "select ip from hosts where host=ip" | mysql -uzabbix -ppassword zabbix -hmdb.example.com > /tmp/withoutip
FILE=`cat /tmp/withoutip`
for I in $FILE
do
NAME=`snmpget -c community -v2c $I 1.3.6.1.2.1.1.5.0 | awk {'print $4,$5,$6,$7,$8'} | sed -e s/" "//g | sed -e s/[/_]//g 2> /dev/null`
snmpget -c community -v2c $I 1.3.6.1.2.1.1.5.0 2&> /dev/null
if [ $? -eq 0 ]
then
echo "update hosts set host = '$NAME.example.com' where ip='$I' and ip=host;" | /usr/local/bin/mysql -uzabbix -ppassword -hmdb.example.com zabbix
fi
done
rm /tmp/withoutip
echo "select ip from hosts where host=ip" | /usr/local/bin/mysql -uzabbix -ppassword zabbix -hmdb.example.com > /tmp/withoutip
FILE=`cat /tmp/withoutip`
for I in $FILE
do
NAME=`snmpget -c community -v2c $I 1.3.6.1.2.1.1.5.0 | awk {'print $4,$5,$6,$7,$8'} | sed -e s/" "//g | sed -e s/[/_]/-/g 2> /dev/null`
snmpget -c community -v2c $I 1.3.6.1.2.1.1.5.0 2&> /dev/null
if [ $? -eq 0 ]
then
echo "update hosts set host = '$NAME.example.com' where ip='$I' and ip=host;" | /usr/local/bin/mysql -uzabbix -ppassword -hmdb.example.com zabbix
fi
done
Комментариев нет:
Отправить комментарий