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 : 이 방법은 권장하는 방법이 아닌 편법으로 제공되는 방법이기 때문에 필요 사용 전에 유념하셔야 합니다.

댓글 없음:

댓글 쓰기