SNMP를 통하여 인터페이스 목록 추가 시키기
Racktables에서 기본적으로 지원하는 스위치를 제외한 다른 모델은 모두 수작업으로 데이터를 추가해 주어야 SNMP를 통하여 인터페이스(포트) 목록을 얻어올 수 있다.
다음은 Brocade BigIron RX-16 모델의 설정을 가져오기 위한 설정법이다.
Chapter에 스위치 모델 추가
다음 그림처럼 Dictionary -> network switch models에 Brocade%GPASS%BI RX 16을 추가한다.
추가하고 나면 해당 모델에 마우스를 올리게되면 key 값이 보이게 되는데 이 값을 기록해 놓는다.
본인이 추가한 모델의 키값은 50031이다.
인터페이스 정보 파싱을 위한 데이터 추가
SNMP Walk와 같은 프로그램으로 데이터를 요청해 보면 다음과 같이 결과를 돌려준다.
daehyung@daehyung-WS:~$ snmpwalk -v 1 -c ********* <IP> -m RFC1213-MIB ifDescr
RFC1213-MIB::ifDescr.1 = STRING: "GigabitEthernet1/1"
RFC1213-MIB::ifDescr.2 = STRING: "GigabitEthernet1/2"
RFC1213-MIB::ifDescr.3 = STRING: "GigabitEthernet1/3"
RFC1213-MIB::ifDescr.4 = STRING: "GigabitEthernet1/4"
RFC1213-MIB::ifDescr.5 = STRING: "GigabitEthernet1/5"
RFC1213-MIB::ifDescr.6 = STRING: "GigabitEthernet1/6"
RFC1213-MIB::ifDescr.7 = STRING: "GigabitEthernet1/7"
RFC1213-MIB::ifDescr.8 = STRING: "GigabitEthernet1/8"
RFC1213-MIB::ifDescr.9 = STRING: "GigabitEthernet1/9"
RFC1213-MIB::ifDescr.10 = STRING: "GigabitEthernet1/10"
RFC1213-MIB::ifDescr.11 = STRING: "GigabitEthernet1/11"
RFC1213-MIB::ifDescr.12 = STRING: "GigabitEthernet1/12"
RFC1213-MIB::ifDescr.13 = STRING: "GigabitEthernet1/13"
RFC1213-MIB::ifDescr.14 = STRING: "GigabitEthernet1/14"
RFC1213-MIB::ifDescr.15 = STRING: "GigabitEthernet1/15"
RFC1213-MIB::ifDescr.16 = STRING: "GigabitEthernet1/16"
RFC1213-MIB::ifDescr.17 = STRING: "GigabitEthernet1/17"
RFC1213-MIB::ifDescr.18 = STRING: "GigabitEthernet1/18"
RFC1213-MIB::ifDescr.19 = STRING: "GigabitEthernet1/19"
RFC1213-MIB::ifDescr.20 = STRING: "GigabitEthernet1/20"
RFC1213-MIB::ifDescr.21 = STRING: "GigabitEthernet1/21"
RFC1213-MIB::ifDescr.22 = STRING: "GigabitEthernet1/22"
RFC1213-MIB::ifDescr.23 = STRING: "GigabitEthernet1/23"
RFC1213-MIB::ifDescr.24 = STRING: "GigabitEthernet1/24"
RFC1213-MIB::ifDescr.65 = STRING: "GigabitEthernet2/1"
RFC1213-MIB::ifDescr.66 = STRING: "GigabitEthernet2/2"
RFC1213-MIB::ifDescr.67 = STRING: "GigabitEthernet2/3"
RFC1213-MIB::ifDescr.68 = STRING: "GigabitEthernet2/4"
RFC1213-MIB::ifDescr.69 = STRING: "GigabitEthernet2/5"
RFC1213-MIB::ifDescr.70 = STRING: "GigabitEthernet2/6"
RFC1213-MIB::ifDescr.71 = STRING: "GigabitEthernet2/7"
RFC1213-MIB::ifDescr.72 = STRING: "GigabitEthernet2/8"
RFC1213-MIB::ifDescr.73 = STRING: "GigabitEthernet2/9"
RFC1213-MIB::ifDescr.74 = STRING: "GigabitEthernet2/10"
RFC1213-MIB::ifDescr.75 = STRING: "GigabitEthernet2/11"
RFC1213-MIB::ifDescr.76 = STRING: "GigabitEthernet2/12"
RFC1213-MIB::ifDescr.77 = STRING: "GigabitEthernet2/13"
RFC1213-MIB::ifDescr.78 = STRING: "GigabitEthernet2/14"
RFC1213-MIB::ifDescr.79 = STRING: "GigabitEthernet2/15"
RFC1213-MIB::ifDescr.80 = STRING: "GigabitEthernet2/16"
RFC1213-MIB::ifDescr.81 = STRING: "GigabitEthernet2/17"
RFC1213-MIB::ifDescr.82 = STRING: "GigabitEthernet2/18"
RFC1213-MIB::ifDescr.83 = STRING: "GigabitEthernet2/19"
RFC1213-MIB::ifDescr.84 = STRING: "GigabitEthernet2/20"
RFC1213-MIB::ifDescr.85 = STRING: "GigabitEthernet2/21"
RFC1213-MIB::ifDescr.86 = STRING: "GigabitEthernet2/22"
RFC1213-MIB::ifDescr.87 = STRING: "GigabitEthernet2/23"
RFC1213-MIB::ifDescr.88 = STRING: "GigabitEthernet2/24"
RFC1213-MIB::ifDescr.129 = STRING: "GigabitEthernet3/1"
RFC1213-MIB::ifDescr.130 = STRING: "GigabitEthernet3/2"
RFC1213-MIB::ifDescr.131 = STRING: "GigabitEthernet3/3"
RFC1213-MIB::ifDescr.132 = STRING: "GigabitEthernet3/4"
RFC1213-MIB::ifDescr.133 = STRING: "GigabitEthernet3/5"
RFC1213-MIB::ifDescr.134 = STRING: "GigabitEthernet3/6"
RFC1213-MIB::ifDescr.135 = STRING: "GigabitEthernet3/7"
RFC1213-MIB::ifDescr.136 = STRING: "GigabitEthernet3/8"
RFC1213-MIB::ifDescr.137 = STRING: "GigabitEthernet3/9"
RFC1213-MIB::ifDescr.138 = STRING: "GigabitEthernet3/10"
RFC1213-MIB::ifDescr.139 = STRING: "GigabitEthernet3/11"
RFC1213-MIB::ifDescr.140 = STRING: "GigabitEthernet3/12"
RFC1213-MIB::ifDescr.141 = STRING: "GigabitEthernet3/13"
RFC1213-MIB::ifDescr.142 = STRING: "GigabitEthernet3/14"
RFC1213-MIB::ifDescr.143 = STRING: "GigabitEthernet3/15"
RFC1213-MIB::ifDescr.144 = STRING: "GigabitEthernet3/16"
RFC1213-MIB::ifDescr.145 = STRING: "GigabitEthernet3/17"
RFC1213-MIB::ifDescr.146 = STRING: "GigabitEthernet3/18"
RFC1213-MIB::ifDescr.147 = STRING: "GigabitEthernet3/19"
RFC1213-MIB::ifDescr.148 = STRING: "GigabitEthernet3/20"
RFC1213-MIB::ifDescr.149 = STRING: "GigabitEthernet3/21"
RFC1213-MIB::ifDescr.150 = STRING: "GigabitEthernet3/22"
RFC1213-MIB::ifDescr.151 = STRING: "GigabitEthernet3/23"
RFC1213-MIB::ifDescr.152 = STRING: "GigabitEthernet3/24"
RFC1213-MIB::ifDescr.2049 = STRING: "FastEthernetManagement1"
RFC1213-MIB::ifDescr.2060 = STRING: "v10"
RFC1213-MIB::ifDescr.2150 = STRING: "v100"
RFC1213-MIB::ifDescr.2152 = STRING: "v102"
RFC1213-MIB::ifDescr.2154 = STRING: "v104"
RFC1213-MIB::ifDescr.2156 = STRING: "v106"
RFC1213-MIB::ifDescr.2158 = STRING: "v108"
RFC1213-MIB::ifDescr.2160 = STRING: "v110"
RFC1213-MIB::ifDescr.2162 = STRING: "v112"
RFC1213-MIB::ifDescr.2164 = STRING: "v114"
RFC1213-MIB::ifDescr.2166 = STRING: "v116"
RFC1213-MIB::ifDescr.2168 = STRING: "v118"
RFC1213-MIB::ifDescr.2170 = STRING: "v120"
RFC1213-MIB::ifDescr.2172 = STRING: "v122"
RFC1213-MIB::ifDescr.2222 = STRING: "v172"
inc/snmp.php 파일 편집
인터페이스 정보(iftable_processors) 구문 추가
# Brocade SI RX-16
$iftable_processors['brocade-BigIronRX-sfp'] = array
(
'pattern' => '@^GigabitEthernet(1|2)/([[:digit:]]+)$@',
'replacement' => 'e\\1/\\2',
'dict_key' => '4-1202',
'label' => 'GigabitEthernet\\1/\\2',
'try_next_proc' => FALSE,
);
$iftable_processors['brocade-BigIronRX-copper'] = array
(
'pattern' => '@^GigabitEthernet3/([[:digit:]]+)$@',
'replacement' => 'e3/\\1',
'dict_key' => '1-24',
'label' => 'GigabitEthernet3/\\1',
'try_next_proc' => FALSE,
);
$iftable_processors['brocade-chassis-mgmt'] = array
(
'pattern' => '@^FastEthernet([[:digit:]])$@',
'replacement' => 'fa\\1',
'dict_key' => '1-19',
'label' => 'mgmt',
'try_next_proc' => FALSE,
);
위의 iftable_processors['brocade-BigIronRX-sfp']와 iftable_processors['brocade-BigIronRX-copper'] 는
스위치의 슬롯 1번 모듈과 2번 모듈이 각각 24개의 SFP 포트를 가지고 있고, 슬롯 3번 모듈은 24개의 Copper포트를 가지고 있기 때문에 Racktables상 해당 포트가 어떠한 케이블이 연결되는 지 구분 할 수 있도록 별도로 구분하였다.
- replacement : Racktables의 local name으로 GigabitEthernet3/22와 같이 보이지 않고 e3/22와 같이 축약하여 보이도록 문자열을 변경해준다.
- dict_key : 해당 포트가 어떠한 종류의 포트인지 알려주는 값으로 각각 MySQL DB내에 Port 테이블의 iif_id, oif_id를 말한다.oif_id는 Chapter의 PortOuterInterface에서 볼 수 있으나 iif_id는 알기 쉽지 않으므로 가급적 DB를 확인하도록 한다.
마지막의 iftable_processors['brocade-chassis-mgmt']은 콘솔 연결용 포트를 나타내는 정보인데 이는 단순히 Cisco 스위치 설정 값을 그대로 복사하여 사용하였다.
known_switches 목록에 스위치 값 추가
SNMP Walk를 통하여 스위치 OID 얻어오기
daehyung@daehyung-WS:~$ snmpwalk -v 1 -c ********* <IP> -m RFC1213-MIB sysObjectID.0
RFC1213-MIB::sysObjectID.0 = OID: RFC1155-SMI::enterprises.1991.1.3.40.1.2
여기서 enterprises. 하위 값을 기록한다.
'1991.1.3.40.1.2' => array
(
'dict_key' => 50031,
'text' => 'BI-RX16: 48 SFP-1000 + 24 combo-gig',
'processors' => array ('brocade-BigIronRX-sfp', 'brocade-BigIronRX-copper', 'brocade-chassis-mgmt'),
),
known_switches 변수정의에 위와 같이 추가한다.
- dict_key : 처음 스위치 모델을 추가했을 때 기록한 값을 넣는다.
- text : 스위치에 대한 정보를 넣는다.
- processors : 위에서 추가한 iftable_processors 이름들을 넣는다.
No comments:
Post a Comment