레이블이 addon인 게시물을 표시합니다. 모든 게시물 표시
레이블이 addon인 게시물을 표시합니다. 모든 게시물 표시

10. 4. 29.

넷스케일러의 정보를 추출하여 별도의 파일로 기록하는 방법

일부 고객사의 요청에 의해 넷스케일러에서 제공하는 SNMP 정보 외에 다른 정보를 주기적으로 별도의 파일에 기록하여 제공할 수 있는데, 이 방법은 기본적으로 제공하는 기능이 아닌 편법이기 때문에 권장하지는 않지만 꼭 필요할 때 활용할 수는 있을 것 같다.

[샘플]. VPN 사용자의 접속수를 5분 주기로 별도의 파일로 저장
LogDir="/var/temp/vpnuser"
CurrentDate=`date`
FinalDate=`date -j -f "%a %b %d %T %Z %Y" "${CurrentDate}" +"%Y-%m-%d %T"`
FileDate=`date -j -f "%a %b %d %T %Z %Y" "${CurrentDate}" +"%Y-%m-%d"`


vpn=`ssh nsroot@localhost 'sh vpn vserver' | sed -n '/Current AAA Users/p' | nawk '{print $4}'`
#sh vpn vserver 명령에 대한 결과 "Current AAA Users"라인만 프린트한 awk 명령어로 특정 field 대한 string 값을 출력한다.

if [ ! -e "${LogDir}/${FileDate}.txt" ]; then
        echo "TIME|Current VPN Users" >> ${LogDir}/${FileDate}.txt
fi
`echo "${FinalDate}|${vpn}" >> ${LogDir}/${FileDate}.txt`

이렇게 생성된 스크립트에 대해서 실행권한을 부여 후 넷스케일러의 SHELL MODE에서 CRONTAB을 활용하여 주기적인 배치 잡을 생성하면 필요한 데이터를 얻을 수 있다. 위 스크립트는 일반적인 스크립트이며, egrep이나 awk를 이용하여 보다 많은 정보를 수집할 수도 있다. 해당 스크립트를 자동으로 실행하기 위해서는 넷스케일러의 SHELL MODE에서 인증서 기반의 SSH 로그온 방법을 사용해야 합니다.

[넷스케일러의 인증서 기반 SSH로그온 방법]
SSH 로그온 시 비밀번호를 사용하지 않고 인증서를 이용하여 신뢰된 사용자로 등록하는 방법이며, 자세한 방법은 아래의 링크를 참조할 수 있다.
cd ~
mkdir .ssh 2> /dev/null
cd /root/.ssh
ssh-keygen -b 1024 -f identity -P '' -t dsa

# For each "target" Netscaler you wish to be able to login without passwords do:
scp identity.pub nsroot@<ip of target>:/root/.ssh/identity.pub
# enter password when prompted for the remote box

On each of the target machines, then do the following:
cd ~/.ssh
cat identity.pub >> authorized_keys
# 과정을 모드 마치면 넷스케일러에 SSH 비밀번호 인증없이 접속이 가능함.

egrep이나 awk에 대한 추가적인 정보는 인터넷에서 많이 제공하고 있으니 참조하면 충분히 유용한 스크립트를 만들 수 있다.

PS : 이 방법은 권장하는 방법이 아닌 편법으로 제공되는 방법이기 때문에 필요 사용 전에 유념하셔야 합니다.