Nagios 에서 서버 프로 세 스 를 감시 하 는 데 사용 되 는 최대 스 레 드 수

최근 에 마침 일부 업무 에서 스 레 드 를 가득 채 워 서 서버 자원 이 다 떨 어 졌 기 때문에 Nagios 에서 관련 프로 세 스 의 최대 스 레 드 수 를 감시 하 는 스 크 립 트 를 썼 습 니 다. 유 닉 스 서버 에서 가장 큰 스 레 드 수 는 기본적으로 1024 입 니 다. 물론 업무 가 바 쁜 서버 에 서 는 부족 할 것 입 니 다.물론 실제 생산 환경 에서 초기 화 조정 을 할 때 보통 수정 을 한 적 이 있 습 니 다. 예 를 들 어 파일 을 여 는 최대 핸들 수 등 이 있 습 니 다. 일반적인 상황 에서 우 리 는/etc/security/limits. conf 파일 을 수정 하지만 최대 스 레 드 수 를 수정 하려 면/etc/security/limits. d/90 - proc. conf 파일 을 수정 해 야 합 니 다. 수정 은 limits. conf 파일 을 수정 하 는 방식 과 같 습 니 다.여기 서 너무 많은 설명 을 하지 않 습 니 다. 저 는 보통 모든 사용자 의 최대 스 레 드 수 를 늘 립 니 다.
*          soft    nproc     65535

조정 후 스 레 드 수의 경고 값 은 실제 상황 에 따라 조정 할 수 있 고 스 크 립 트 의 실현 도 간단 합 니 다. 다음 과 같 습 니 다.
#!/bin/bash
#check_pstree.sh
#Used for pstree process monitoring
#writer jim
#history 2017.07.01

# Nagios    
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
#          
if [ $# -lt 1 ];then
    echo "Please enter the process string"
    echo "ex> $0 java"
    exit $STATE_UNKNOWN
fi

if [ $# -gt 1 ]; then
        echo "The input parameters are too much"
    echo "ex> $0 java"
    exit $STATE_UNKNOWN
fi

reg_name=$1
process_pid=$(ps -ef | grep "$reg_name " | grep -v grep | awk '{print $2}')
declare -i max_process_num=$(ulimit -an | grep "max user processes" | awk '{print $5}')
declare -i warning_num=$max_process_num/2
#            50%,              
pstree_num=$(pstree -p $process_pid | wc -l)

if [ $pstree_num -le $warning_num ];then
        echo "$reg_name pstree number is:$pstree_num;warning_num is:$warning_num;max user processes is:$max_process_num,OK"
        exit $STATE_OK
else 
        echo "error!!!The number of pstree is too much.the number is:$pstree_num"
        exit $STATE_CRITICAL
fi

물론 이 스 크 립 트 를 수정 한 후에 cron 작업 으로 정기 적 으로 검 사 를 할 수 있 습 니 다. 그러나 Nagios 에 서 는 왠 지 스 레 드 수의 값 이 Nagios 모니터링 페이지 에 이상 이 있 지만 직접 실행 하 는 것 은 문제 가 없습니다.

좋은 웹페이지 즐겨찾기