ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • IBM AIX crontab nmon 로그파일 설정
    System of Infra/Unix System 2020. 12. 7. 22:58
    반응형

    AIX로고이미지

    IBM AIX crontab nmon 로그파일 설정

    root@test_svr1:/]# cd /usr/bin 
    
    [root@test_svr1:/usr/bin]# ls -al | grep -i nmon
    -r-xr-xr-x 1 root system 622 Jul 30 2013 nmon
    -r-xr-xr-x 2 root system 770468 Mar 10 2018 topas_nmon

    -> 현재 파티션에서 AIX 7.1의 경우 nmon의 소프트웨어가 default로 설치가 되어 있기 때문에  /usr/bin의 해당 경로에서 nmon에 대한 설치와 파일 셋이 있는지 확인을 합니다. 기존의 5,6 버전의 경우에는 nmon12f_aix612 또는 nmon4aix12 같은 별도의 패키지를 설치하여 nmon의 로그를 받을 수 있습니다.(7 버전은 지원 X) 

    root@test_svr1:/usr/bin]# cat nmon
    
    #!/usr/bin/perl 
    # IBM_PROLOG_BEGIN_TAG 
    # This is an automatically generated prolog. 
    # perf71N src/perf/cmdperft/usr/bin/topas/nmon.pl 1.11 
    # Licensed Materials - Property of IBM 
    # Restricted Materials of IBM 
    # COPYRIGHT International Business Machines Corp. 2011,2013 
    # All Rights Reserved 
    # US Government Users Restricted Rights - Use, duplication or 
    # disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
    # IBM_PROLOG_END_TAG 
    
    system("/usr/bin/topas_nmon @ARGV");
    if( $? != -1 )
    {
    exit($?>>8);
    }
    else
    {
    print STDERR "Failed to execute /usr/bin/topas_nmon.\n";
    exit(-1);
    }

    -> /usr/bin의 경로에서 nmon의 스크립트를 보면 위와 같은 형태로 topas의 nmon system에서 수집을 하는 것으로 표현되어 있는 것을 확인할 수 있습니다.

    [root@test_svr1:/]# mkdir nmon_log
    
    [root@test_svr1:/]# ls -al | grep -i nmon_log
    drwxr-xr-x 2 root system 256 Dec 07 19:46 nmon_log
    
    [root@test_svr1:/]# cd nmon_log
    
    [root@test_svr1:/nmon_log]# vi nmonday.sh
    cd /nmon_log
    nmon -ft -s 900 -c 96

    -> / 디렉터리 아래 nmon_log라는 디렉토리를 생성 후 해당 디렉토리 내에 nmonday.sh라는 스크립트를 생성 후 위와 같이 작성을 해줍니다.  900*96=86400/60/60=24(시간)

     

    옵션 설명

    -f(파일명)

    출력이 스프레드 시트 형식임을 지정합니다. 기본적으로 이 명령은 각 스냅 샷 사이에 300 초 간격으로 288 개의 시스템 데이터 스냅 샷을 생성합니다. hostname_YYMMDD_HHMM.nmon 형식입니다.


    -t
    출력에 최상위 프로세스를 포함합니다.


    -s(측정 간격)
    연속 녹화 스냅 샷 2 개 사이의 간격 (초)을 지정합니다.-

     

    -c(횟수)

    명령으로 작성해야 하는 스냅 샷 수를 지정합니다. 기본값은 10000000입니다.

    [root@test_svr1:/nmon_log]# chmod 775 nmonday.sh 

    -> 이후 nmon의 스크립트가 crontab에서 자동으로 기동 될 수 있도록 퍼미션의 권한을 755로 주도록 했습니다.

    [root@test_svr1:/nmon_log]# nmon -ft -s 900 -c 96     
    
    [root@test_svr1:/nmon_log]# ls -al 
    total 48
    drwxr-xr-x    2 root     system          256 Dec 07 20:01 .
    drwxr-xr-x   26 root     system         4096 Dec 07 20:01 ..
    -rw-r--r--    1 root     system           31 Dec 07 19:55 nmonday.sh
    -rw-r--r--    1 root     system        13274 Dec 07 20:01 test_svr1_201207_2001.nmon

    ->crontab에 등록하여 자동으로 실행하기 전에 수동으로 nmon의 로컬 명령어를 통해서 로그파일이 현재 경로에 생성되는지 확인을 합니다.

    [root@test_svr1:/]# cat test_svr1_201207_1604.nmon | more
    
    AAA,progname,topas_nmon
    AAA,command,/usr/bin/topas_nmon -ft -c 900 -s 1 -youtput_dir=//test_svr1 -ystart_time=16:04:20,Dec07,2020 
    AAA,version,TOPAS-NMON
    AAA,build,AIX
    AAA,disks_per_line,150
    AAA,host,test_svr1
    AAA,user,root
    AAA,AIX,7.1.4.34
    AAA,TL,04
    AAA,runname,test_svr1
    ...(생략)

    -> 생성된 로그파일을 열어보게 되면 위와 같은 형태의 정보들이 수집되는 것을 확인될 수 있습니다.

    [root@test_svr1:/nmon_log]#rm  test_svr1_201207_2001.nmon

    -> crontab에서 생성된 것으로 확인하기 위해서 로컬에 생성된 nmon을 삭제하도록 하겠습니다.

    [root@test_svr1:/]# crontab -l
    
    # IBM_PROLOG_BEGIN_TAG 
    # This is an automatically generated prolog. 
    # bos610 src/bos/usr/sbin/cron/root 1.15.1.3 
    # Licensed Materials - Property of IBM 
    ...(생략)
    #0 3 * * * /usr/sbin/skulker
    #45 2 * * 0 /usr/lib/spell/compress
    #45 23 * * * ulimit 5000; /usr/lib/smdemon.cleanu > /dev/null
    0 11 * * * /usr/bin/errclear -d S,O 30
    0 12 * * * /usr/bin/errclear -d H 90
    0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/sbin/dumpctrl -k >/dev/null 2>/dev/null
    0 15 * * * /usr/lib/ras/dumpcheck >/dev/null 2>&1
    55 23 * * * /var/perf/pm/bin/pmcfg >/dev/null 2>&1 #Enable PM Data Collection

    -> crontab에 default로 등록된 상태의 출력 화면입니다.

    #0 3 * * * /usr/sbin/skulker
    #45 2 * * 0 /usr/lib/spell/compress
    #45 23 * * * ulimit 5000; /usr/lib/smdemon.cleanu > /dev/null
    * * * * * /nmon_log/nmonday.sh >/dev/null 2>&1
    0 11 * * * /usr/bin/errclear -d S,O 30
    0 12 * * * /usr/bin/errclear -d H 90
    0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/sbin/dumpctrl -k >/dev/null 2>/dev/null
    0 15 * * * /usr/lib/ras/dumpcheck >/dev/null 2>&1
    55 23 * * * /var/perf/pm/bin/pmcfg >/dev/null 2>&1 #Enable PM Data Collection

    -> 해당 crontab에 * * * * * /nmon_log/nmonday.sh >/dev/null 2>&1로 한 줄을 추가 해주록 합니다. 편리상 앞에 분(0-59), 시간(0-23), 일(1-31), 월(1-12), 요일(0-7)은 1분마다 로그파일이 생성되도록 지정했습니다. 이후에 crontab에 대한 내용은 별도에 다루도록 하겠습니다.

    [root@test_svr1:/nmon_log]# cron
    ! cron is already running.
     Mon Dec  7 21:40:02 KST 2020
    
    [root@test_svr1:/nmon_log]# ps -ef | grep -i cron
    root 2097628 1 0 21:34:17 - 0:00 /usr/sbin/cron

    -> /usr/bin/cron 데몬을 실행시키고 cron의 프로세스가 살아 있는지 확인을 합니다.

    [root@test_svr1:/nmon_log]# ls -al 
    drwxr-xr-x 2 root system 4096 Dec 07 21:43 .
    drwxr-xr-x 24 root system 4096 Dec 07 21:36 ..
    -rwxrwxr-x 1 root system 33 Dec 07 21:37 nmonday.sh
    -rw-r--r-- 1 root system 163777 Dec 07 21:40 test_svr1_201207_2140.nmon
    -rw-r--r-- 1 root system 163776 Dec 07 21:41 test_svr1_201207_2141.nmon
    -rw-r--r-- 1 root system 163781 Dec 07 21:42 test_svr1_201207_2142.nmon
    -rw-r--r-- 1 root system 163775 Dec 07 21:43 test_svr1_201207_2143.nmon
    -rw-r--r-- 1 root system 163778 Dec 07 21:44 test_svr1_201207_2144.nmon
    -rw-r--r-- 1 root system 163781 Dec 07 21:45 test_svr1_201207_2145.nmon
    

    -> crontab에 등록된 디렉터리 경로를 통해서 nmon의 로그를 수집한 것을 확인할 수 있습니다. nmon의 파일명에 date의 시간과 일치하도록 파일이 생성되었습니다.

    [root@test_svr1:/]# cat /etc/inittab | grep -i cron
    cron:23456789:respawn:/usr/sbin/cron

    -> 대부분 crontab에 등록된 디렉터리 경로를 #주석처리하면 되긴 하지만 /etc/inittab의 경로에 respawn의 부분을 once로 변경을 해주게 되면 시스템 부팅 시 crontab이 살아나지 않도록 설정할 수 있습니다. 다만, crontab 자체에 default이기 때문에 #주석을 통해서 막아주도록 하는 것을 권장합니다.

     

    PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.

    포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.

    반응형

    댓글

Designed by Tistory.