F5 레코드 연결 표 스 크 립 트

2538 단어 shellF5Network
오늘 그룹 에 서 는 사용자 의 업무 병행 연결 이 갑자기 급증 하 는 상황 을 물 었 습 니 다. 민감 한 위치 에 배 치 된 F5 장치 로 서 연결 요청 로 그 를 자동 으로 기록 하 는 기 존 기능 이 없습니다. 만약 에 이런 상황 이 발생 하면 사용 자 는 그 당시 의 연결 표정 상 태 를 알 아야 합 니 다. 코드 는 어느 IP 주소 에서 대량의 요청 을 했 는 지 알 아야 합 니 다.
    F5 이런 상황 에 직면 하여 기본적으로 두 가지 선택 이 있다.
1. VS 에서 iRule 과 관련 하여 매번 tcp 요청 상황 을 기록 합 니 다. 이 는 원래 주소, 소스 포트, net 내부 주소, net 내부 포트, 어느 서버 에 배포 하 는 지 등 정 보 를 포함 합 니 다.그러나 이 로 그 를 기록 하 는 것 은 설비 의 성능 을 매우 소모 합 니 다. 제 가 기억 하 는 한 사용자 가 이 일 을 해 야 합 니 다. 아무리 권 해도 듣 지 않 습 니 다. 그의 설비 의 병발 피크 수 치 는 1200 만/s 입 니 다. 즉, 한 순간 에 수백 만 개의 로 그 를 써 야 할 수도 있 습 니 다. 굳이 하려 면 하 세 요. 메 일 에 일의 상황 을 명확 하 게 쓰 고 결 과 를 명확 하 게 쓰 세 요. iRule 이 그 에 게 주 고 하려 면 스스로 하 세 요.아니 나 다 를 까, 정말 즉시 효 과 를 보 았 다. 올 려 놓 고 'update' 를 눌 렀 더 니 설비 가 다운 되 었 다.
2. 일정 시간 마다 연결 표 의 항목 수 를 확인 하고 밸브 값 을 초과 하면 현재 의 연결 표정 상 태 를 기록 하 며 원래 주소 에 따라 여과 정렬 합 니 다.나 는 이런 방식 이 좀 더 좋다 고 생각한다. 설령 당신 의 병발 이 1200 만 위안 이 된다 하 더 라 도, 나 는 연결 표를 표시 하고, 연결 표 정보 여과 등에 대한 조작 은 상대 적 으로 속도 가 좀 느 릴 뿐, 설비 에 큰 영향 을 미 치지 않 을 것 이다.
#!/bin/bash

function define()
{
    threshold=20000
    log_path=/tmp/f5_conn_log/
    user=`whoami`
}

function check()
{
    if [ $user != root ];then
        echo "Please use root user."
        exit 1
    fi
    
    if [ ! -d $log_path ];then
        mkdir $log_path
    fi
}

function gather()
{
    while true
    do
        timestamp=`date +%Y%m%d_%H%M%S`
        num_conn=`tmsh show sys connection | wc -l`
        
        if [ $num_conn -gt $threshold ];then
            tmsh show sys connection>${log_path}${timestamp}.log
            awk -F ':' '{print $1}' ${log_path}${timestamp}.log | sort -nr | uniq -c | sort -nr | head -20 >> ${log_path}${timestamp}_top.log
        fi
        
        sleep 300
    done
}

function main()
{
    define
    check
    gather
}

main

스 크 립 트 는 while 순환 입 니 다. 사용 할 때 & 배경 에 놓 으 면 켜 기 시작 으로 설정 할 수 있 습 니 다.
매번 가 져 오 는 정 보 는 2 개의 텍스트 파일 이 고, 하 나 는 완전한 연결 표 이 며, 다른 하 나 는 연결 표를 필터 링 하여 정렬 하 는 top 20 입 니 다.
[root@F5:Active] f5_conn_log # cat 20160114_164101_top.log 
   5841 192.168.1.7
   1674 192.168.1.104
   1462 164.115.20.151
    317 192.168.4.110
    274 192.168.4.84
    258 192.168.1.248
    257 192.168.4.13
    246 192.168.1.76
    214 192.168.1.85
    199 192.168.1.146
    183 192.168.1.120
    169 192.168.1.166
    165 192.168.1.134
    163 172.18.0.131
    161 192.168.1.115
    155 100.90.90.150
    153 192.168.1.6
    148 192.168.100.76
    142 172.18.0.107
    137 192.168.1.150

좋은 웹페이지 즐겨찾기