Поиск по этому блогу

вторник, 16 ноября 2010 г.

Import hosts from zabbix to NOC-project

В данной статье опишу то, как импортировать хосты из zabbix в NOC-project.

Зачем это делать? Да за тем, что в zabbix настроено discovery, и когда а в NOC-project такого функционала нет(На момент написания статьи естественно), и хосты туда нужно добавлять руками. Конечно, этот вариант полностью подходит мне, но не факт, что он подойдет и вам. ))

Суть в том, что скрипт берет хосты из БД zabbix и импортирует из в NOC c заведомо опеределенными параметрами в скрипте.


Вот сам скрипт:

[noc@nocp ~/zabbixTOnoc]$ cat ./script.sh
#!/usr/local/bin/bash
rm *.toNOC

echo "select ip from hosts where status = 0" \
| mysql -u zabbix -ppasswordtozabbixDB -hmdb zabbix \
| sort -u | grep -v 127.0.0.1 \
| grep -v 255.255 \
| grep -v ip > zabbix.hosts


echo "select ip from hosts where status = 0" \
| mysql -u zabbix -ppasswordtozabbixDB -hmdb zabbix \
| sort -u | grep -v 127.0.0.1 \
| grep -v ip | grep -v '172.22.2.' | grep -v "19[435]." | grep -v "10.0.[01]." \
| grep -v "172.22.136." \
> zabbix.hosts



echo " select address from sa_managedobject" | psql noc \
|grep -v [a-zA-Z] | grep -v '-' | sort -u | awk {'print $1'} > noc.hosts


diff ./zabbix.hosts ./noc.hosts | grep '<' | awk {'print $2'} > zabbixtonoc.diff


FILE=`cat ./zabbixtonoc.diff`;


for I in $FILE
do
MOD=`(sleep 1; echo "loginonsw"; echo "passwordonsw"; echo "logout";) | telnet $I | grep [dD][eE] | awk {'print $2'}`
if ! [ -z $MOD ]
then
echo $I >> ./$MOD.toNOC
else
#2108
echo $I >> /dev/null
fi
done
#Delete Cisco.
rm ./Kerberos:.toNOC
FILE=`cat ./*.toNOC`
echo 'name,profile_name,description,scheme,address,port,user,password,super_password,remote_path,trap_source_ip,trap_community,snmp_ro,snmp_rw,repo_path,administrative_domain,activator' > ./importtmp.csv
for I in $FILE
do
echo "$I,DLink.DES3xxx,,telnet,$I,,login_on_SW,Password_on_sw,,,,,,,dlink/$I.conf,default,default" >> importtmp.csv
done
#Unix to win EOL
awk 'sub("$", "\r")' importtmp.csv > import.csv

#Delete tmp files
rm -f ./importtmp.csv
rm -f ./*.hosts
rm -f ./*.diff


cd /opt/noc && python manage.py import-objects ~noc/zabbixTOnoc/import.csv



Конечно еслы вы будете использовать данную схему то нужно править этот скрипт.
Спасибо за внимание!!!

Комментариев нет:

Отправить комментарий