Подскажите как сделать что бы при автообнаружении свичей, zabbix в имя устройства помещал его sysName а не IP адрес?
Ad Widget
Collapse
Автообнаружение и sysName
Collapse
X
-
Кусочек документации:
Вольный перевод - "Используя DNS, вы сможете подсказать Zabbix, какие имена хостов задать вновь создаваемым хостам, найденным по IP"When adding hosts, a host name is the result of reverse lookup or IP address if reverse lookup fails. Lookup is performed from the Zabbix server or Zabbix proxy, depending on which is doing the discovery. If lookup fails on the proxy, it is not retried on the server. If the host with such a name already exists, the next host would get _2 appended to the name, then _3 and so on.Sincerely yours,
Aleksey -
Comment
-
Зачем мне шутить?
Вы их как - по адресам запоминаете?
Или все-же по именам площадок-филиалов-городов?
Прописывание в dns - это просто другой способ организовать ваши данные, а никак не "наказание для временного студента"
К тому-же, dns под unix - это достаточно простая текстовая база, которая может быть создана скриптами из (например) excel-овской таблички.
PS небольшое уточнение - Zabbix Использует reverse DNS-lookup. Так что не забудьте, что надо прописывать оба направления - для прямого и обратного распознавания адреса и имени.Sincerely yours,
AlekseyComment
-
авто обнаружение - создание действия на обнаружение.
Предварительно создать глобальный скрипт.
Код скрипта
com1-com3 свои комунитиCode:cat /home/zabbix/scripts-zabbix/rn #!/bin/bash MYSQL="mysql --connect_timeout 10 zabbix2 -h 127.0.0.1 -u zabbix --password=Паролька --skip-column-names -B -e" $MYSQL "SELECT interface.ip FROM hosts,interface WHERE main = 1 AND hosts.hostid= interface.hostid AND hosts.host = '$1' AND interface.ip = hosts.name" | while read line do arr=($line) x=`snmpwalk -Ou -Oq -v2c -c com1 ${arr[0]} system.sysName.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " ` [[ -n $x ]] && $MYSQL "UPDATE hosts SET name = '$x' WHERE host ='${arr[0]}'" && $MYSQL "UPDATE hosts SET host = '$x' WHERE host ='${arr[0]}'" echo "1 = $x" >> /tmp/rn.log x=`snmpwalk -Ou -Oq -v2c -c com2 ${arr[0]} system.sysName.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " ` [[ -n $x ]] && $MYSQL "UPDATE hosts SET name = '$x' WHERE host ='${arr[0]}'" && $MYSQL "UPDATE hosts SET host = '$x' WHERE host ='${arr[0]}'" x=`snmpwalk -Ou -Oq -v2c -c com3 ${arr[0]} system.sysName.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " ` [[ -n $x ]] && $MYSQL "UPDATE hosts SET name = '$x' WHERE host ='${arr[0]}'" && $MYSQL "UPDATE hosts SET host = '$x' WHERE host ='${arr[0]}'" doneComment
-
Спасибо, буду пробовать.авто обнаружение - создание действия на обнаружение.
Предварительно создать глобальный скрипт.
Код скрипта
com1-com3 свои комунитиCode:cat /home/zabbix/scripts-zabbix/rn #!/bin/bash mysql="mysql --connect_timeout 10 zabbix2 -h 127.0.0.1 -u zabbix --password=Паролька --skip-column-names -b -e" $mysql "select interface.ip from hosts,interface where main = 1 and hosts.hostid= interface.hostid and hosts.host = '$1' and interface.ip = hosts.name" | while read line do arr=($line) x=`snmpwalk -ou -oq -v2c -c com1 ${arr[0]} system.sysname.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " ` [[ -n $x ]] && $mysql "update hosts set name = '$x' where host ='${arr[0]}'" && $mysql "update hosts set host = '$x' where host ='${arr[0]}'" echo "1 = $x" >> /tmp/rn.log x=`snmpwalk -ou -oq -v2c -c com2 ${arr[0]} system.sysname.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " ` [[ -n $x ]] && $mysql "update hosts set name = '$x' where host ='${arr[0]}'" && $mysql "update hosts set host = '$x' where host ='${arr[0]}'" x=`snmpwalk -ou -oq -v2c -c com3 ${arr[0]} system.sysname.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " ` [[ -n $x ]] && $mysql "update hosts set name = '$x' where host ='${arr[0]}'" && $mysql "update hosts set host = '$x' where host ='${arr[0]}'" doneComment

Comment