UNIX 및 Linux 컴퓨터의 모니터링 문제 해결

중요

이 버전의 Operations Manager는 지원이 종료되었습니다. Operations Manager 2022로 업그레이드하는 것이 좋습니다.

System Center - Operations Manager는 Windows 컴퓨터의 모니터링과 비슷한 UNIX 및 Linux 컴퓨터의 모니터링을 제공합니다. 상태와 성능을 모니터링하고, 보고서를 가져오고, 작업을 실행하고, 사용자 지정 모니터링 계측을 구현할 수 있습니다.

UNIX 및 Linux 컴퓨터의 다음과 같은 양상을 모니터링할 수 있습니다.

  • 서비스 및 애플리케이션

  • 파일 시스템, 디스크 공간, 스왑 공간, 시스템 메모리

  • 네트워크 인터페이스

  • 핵심 프로세스 및 특성

  • 핵심 구성

UNIX 및 Linux 컴퓨터를 모니터링하려면 먼저 다음 단계를 완료해야 합니다.

  1. Microsoft 다운로드 센터에서 최신 버전을 다운로드하여 관리 팩을 가져옵니다.
  2. UNIX 및 Linux 컴퓨터를 모니터링하기 위한 전용 리소스 풀을 만듭니다.
  3. 풀의 각 관리 서버에 대한 인증서를 구성합니다.
  4. 실행 계정을 만들고 구성합니다.
  5. 검색 마법사를 사용하여 UNIX 및 Linux에 에이전트를 설치합니다.
  1. Microsoft 다운로드 센터에서 최신 버전을 다운로드하여 관리 팩을 가져옵니다.
  2. UNIX 및 Linux 컴퓨터를 모니터링하기 위한 전용 리소스 풀을 만듭니다.
  3. 풀의 각 관리 서버에 대한 인증서를 구성합니다.
  4. 실행 계정을 만들고 구성합니다.
  5. 검색 마법사를 사용하여 UNIX 및 Linux에 에이전트를 설치합니다.
  1. Microsoft 다운로드 센터에서 최신 버전을 다운로드하여 관리 팩을 가져옵니다.
  2. UNIX 및 Linux 컴퓨터를 모니터링하기 위한 전용 리소스 풀을 만듭니다.
  3. 풀의 각 관리 서버에 대한 인증서를 구성합니다.
  4. 실행 계정을 만들고 구성합니다.
  5. 검색 마법사를 사용하여 UNIX 및 Linux에 에이전트를 설치합니다.

위의 단계를 완료하고 하나 이상의 UNIX 및 Linux 컴퓨터에 에이전트를 검색하고 배포한 후에는 에이전트가 올바르게 모니터링되고 있는지 확인해야 합니다. 에이전트가 배포된 후 실행 계정은 해당 검색 규칙을 사용하여 실행 중인 검색을 수행한 다음 모니터링을 시작하는 데 사용됩니다. 몇 분 후 관리 작업 영역에서 장치 관리/UNIX/Linux 컴퓨터로 이동하고 컴퓨터가 알 수 없음으로 나열되지 않는지 확인합니다. 컴퓨터가 검색되고 특정 버전의 OS 및 배포판을 표시해야 합니다.

기본적으로 Operations Manager는 다음 운영 체제 개체를 모니터링합니다.

  • 운영 체제
  • 논리 디스크
  • 네트워크 어댑터

UNIX 및 Linux 모니터링 팩 템플릿을 사용하여 UNIX 및 Linux 관리 컴퓨터에 추가 모니터링 및 상호 작용 기능을 제공할 수 있습니다. 자세한 내용은 제작 가이드의 UNIX or Linux Log File(UNIX 또는 Linux 로그 파일)UNIX or Linux Process(UNIX 또는 Linux 프로세스) 를 참조하십시오.

UNIX 및 Linux 모니터링 문제 해결

다음 섹션에서는 Operations Manager에서 UNIX 및 Linux 컴퓨터를 모니터링할 때 발생할 수 있는 문제에 대한 정보를 제공합니다.

인증서 서명 오류 메시지

UNIX/Linux 에이전트 설치 중 다음과 같은 오류 메시지가 표시될 수 있습니다.

Event Type: Error  
Event Source: Cross Platform Modules  
Event Category: None  
Event ID: 256  
Date: 4/1/2009  
Time: 4:02:27 PM  
User: N/A  
Computer: COMPUTER1  
Description: Unexpected ScxCertLibException: Can't decode from base64  
; input data is:  

인증서 서명 모듈이 호출되었지만 인증서 자체가 비어 있는 경우 이 오류가 발생합니다. 원격 시스템에 대한 SSH 연결 실패로 이 오류가 발생할 수 있습니다.

이 오류가 표시되는 경우 다음을 수행합니다.

  1. 원격 호스트의 SSH 디먼이 실행 중인지 확인합니다.

  2. 검색 마법사에 지정된 자격 증명을 사용하여 원격 호스트에서 SSH 세션을 열 수 있는지 확인합니다.

  3. 검색 마법사에 지정된 자격 증명에 검색에 필요한 권한이 있는지 확인합니다. 자세한 내용은 Credentials You Must Have to Access UNIX and Linux Computers(UNIX 및 Linux 컴퓨터에 액세스하는 데 필요한 자격 증명)를 참조하세요.

인증서 이름과 호스트 이름이 일치하지 않음

인증서에 사용되는 CN(일반 이름)은 Operations Manager에서 확인되는 FQDN(정규화된 도메인 이름)과 일치해야 합니다. CN이 일치하지 않으면 검색 마법사를 실행할 때 다음 오류가 표시됩니다.

The SSL certificate contains a common name (CN) that doesn't match the hostname  

다음 명령을 입력하여 UNIX 또는 Linux 컴퓨터의 인증서에 대한 기본 세부 사항을 확인할 수 있습니다.

openssl x509 -noout -in /etc/opt/microsoft/scx/ssl/scx.pem -subject -issuer -dates  

이렇게 하면 다음과 유사한 출력이 표시됩니다.

subject= /DC=name/DC=newdomain/CN=newhostname/CN=newhostname.newdomain.name  
issuer= /DC=name/DC=newdomain/CN=newhostname/CN=newhostname.newdomain.name  
notBefore=Mar 25 05:21:18 2008 GMT  
notAfter=Mar 20 05:21:18 2029 GMT  

호스트 이름 및 날짜를 확인하고, Operations Manager 관리 서버에서 확인 중인 이름과 일치하는지 확인합니다.

호스트 이름이 일치하지 않는 경우 다음 작업 중 하나를 사용하여 문제를 resolve.

  • UNIX 또는 Linux 호스트 이름이 올바르지만 Operations Manager 관리 서버에서 잘못 확인하는 경우 올바른 FQDN과 일치하도록 DNS 항목을 수정하거나 Operations Manager 서버의 호스트 파일에 항목을 추가합니다.

  • UNIX 또는 Linux 호스트 이름이 잘못된 경우 다음 중 하나를 수행합니다.

    • UNIX 또는 Linux 호스트의 호스트 이름을 올바르게 변경하고 새 인증서를 만듭니다.

    • 필요한 호스트 이름으로 새 인증서를 만듭니다.

인증서의 이름을 변경하려면

잘못된 이름으로 인증서를 만든 경우 호스트 이름을 변경하고 인증서와 프라이빗 키를 다시 만들 수 있습니다. 그렇게 하려면 UNIX 또는 Linux 컴퓨터에서 다음 명령을 실행합니다.

/opt/microsoft/scx/bin/tools/scxsslconfig -f -v  

–f 옵션은 /etc/opt/microsoft/scx/ssl의 파일 덮어쓰기를 강제합니다.

또한 다음 예와 같이 -h-d 스위치를 사용하여 인증서에서 호스트 이름과 도메인 이름을 변경할 수 있습니다.

/opt/microsoft/scx/bin/tools/scxsslconfig -f -h <hostname> -d <domain.name>  

다음 명령을 실행하여 에이전트를 다시 시작합니다.

/opt/microsoft/scx/bin/tools/scxadmin -restart  

호스트 파일에 항목을 추가하려면

FQDN이 역방향 DNS에 없는 경우 관리 서버에 있는 호스트 파일에 항목을 추가하여 이름 확인을 제공할 수 있습니다. 호스트 파일은 Windows\System32\Drivers\etc 폴더에 있으며 호스트 파일에 있는 항목은 IP 주소와 FQDN의 조합입니다.

예를 들어 IP 주소가 192.168.1.1인 newhostname.newdomain.name 호스트에 대한 항목을 추가하려면 호스트 파일의 끝에 다음을 추가합니다.

192.168.1.1      newhostname.newdomain.name  

관리 팩 문제

명령 실행에서 파이프라인 연산자 또는 별칭을 지원하지 않음

ExecuteCommand 매개 변수를 사용하여 별칭 또는 파이프라인 연산자를 사용하는 경우 명령이 실패합니다. ExecuteCommand 매개 변수는 파이프라인 연산자, 별칭 및 셸 관련 구문을 지원하지 않습니다.

UNIX 및 Linux 컴퓨터를 관리하도록 설계된 System Center Operations Manager 관리 팩에서 ExecuteCommand 매개 변수는 셸 프로세스를 시작하지 않으므로 사용자 지정 작업이 실패합니다.

다음 각 사용자 지정 작업 유형의 경우, ExecuteCommand 매개 변수 또는 ExecuteShellCommand 매개 변수를 사용하여 명령 인수의 호출 방법을 지정합니다.

  • Microsoft.Unix.WSMan.Invoke.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.WriteAction

  • Microsoft.Unix.WSMan.Invoke.Privileged.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.Privileged.WriteAction

ExecuteCommand 매개 변수는 셸 프로세스를 시작하지 않고 콘솔에 명령줄 인수를 전달합니다.

ExecuteShellCommand 매개 변수는 사용자의 기본 셸을 사용하여 셸 프로세스에 명령 인수를 전달합니다. 이 셸은 파이프라인, 별칭 및 셸 지정 구문을 지원합니다.

참고

ExecuteShellCommand 매개 변수는 명령을 실행 중인 사용자의 기본 셸을 사용합니다. 특정 셸이 필요한 경우 ExecuteCommand 매개 변수를 사용하고 필수 셸에 명령 인수의 접두사를 추가합니다.

다음 예는 ExecuteCommandExecuteShellCommand 매개 변수 사용법을 나타냅니다.

  • 셸 프로세스를 시작하지 않고 콘솔에 명령줄 인수를 전달하려면 다음을 실행합니다.

    <p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> service syslog status </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>

  • 명시적인 셸을 참조하는 셸 프로세스에 명령줄 인수를 전달하려면 다음을 실행합니다.

    <p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> /bin/sh ps -ef syslog | grep -v grep </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>

  • 사용자의 기본 셸을 사용하는 셸 프로세스에 명령 인수를 전달하려면 다음을 실행합니다.

    <p:ExecuteShellCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> uptime |&nbsp; awk '{print $10}' |awk -F"," '{print $1}' </p:Command> <p:timeout>10</p:timeout> </p:ExecuteShellCommand_INPUT>

Logging and Debugging

이 섹션에서는 UNIX 및 Linux 컴퓨터 모니터링 문제를 해결하기 위해 로깅 및 디버그 도구를 사용하도록 설정하는 방법을 설명합니다.

참고

Operations Manager 2019 UR3에서는 에이전트 다시 시작 없이 로그 수준 설정을 변경할 수 있습니다. 자세히 알아봅니다.

참고

에이전트를 다시 시작하지 않고 로그 수준 설정을 변경할 수 있습니다. 자세히 알아봅니다.

Operations Manager 모듈 로깅을 사용하도록 설정

UNIX 및 Linux용 Operations Manager 에이전트는 클라이언트 문제를 해결할 때 유용할 수 있는 여러 로그 파일을 유지합니다. 해당 로그 파일은 관리형 UNIX 또는 Linux 컴퓨터에 있습니다. 필요에 따라 에이전트 로그 파일의 로깅 수준을 구성할 수 있습니다. 좀 더 자세한 로깅은 문제를 진단하는 데 유용할 수 있습니다. 정상적인 작업의 경우 과도한 로그 파일 증가를 방지하기 위해 로그 수준을 기본 구성(중간)보다 자세한 값으로 설정해서는 안 됩니다.

참고

WinRM(Windows Remote Management) 외부에서 발생하는 호출은 SSH/SFTP를 사용하여 수행됩니다. 이러한 구성 요소는 Operations Manager와는 별개의 로깅 메커니즘을 사용합니다.

참고

omiserver.log 로그 파일의 로깅 수준은 UNIX 및 Linux용 Operations Manager 에이전트 버전에서 기본값에서 변경할 수 없습니다.

  1. 명령줄 또는 PowerShell 프롬프트에 를 입력하여 이러한 모듈을 호출하는 사용자 계정의 Temp 디렉터리에 EnableOpsmgrModuleLogging 이라는 빈 파일을 만듭니다.

    COPY /Y NUL %windir%\TEMP\EnableOpsMgrModuleLogging
    
    New-Item "$env:windir\TEMP\EnableOpsMgrModuleLogging"
    

    참고

    일반적으로 호출하는 SYSTEM 계정이며 C:\Windows\Temp는 기본 SYSTEM 임시 폴더입니다.

  2. 빈 파일을 만든 후 Operations Manager는 즉시 SSH 및 인증서 활동을 Temp 디렉터리에 로깅하기 시작합니다. SSH 모듈을 호출하는 스크립트는 .logScriptname.vbs>기록 < 합니다. 다른 모듈은 자체 로그를 포함합니다.

경우에 따라 EnableOpsmgrModuleLogging 로깅을 적용하려면 HealthService를 다시 시작해야 할 수 있습니다.

UNIX 에이전트에 대한 로깅 사용

이러한 로그는 UNIX 에이전트 작업을 보고합니다. Operations Manager로 반환된 데이터에 문제가 있는 경우 이 로그를 확인합니다. scxadmin 명령을 사용하여 기록되는 정보의 양을 설정할 수 있습니다. 이 명령의 구문은 다음과 같습니다.

scxadmin -log-set [all|cimom|provider] {verbose|intermediate|errors}

다음 표에는 가능한 매개 변수 값이 나와 있습니다.

Level 설명
오류 경고 또는 오류 메시지만 로깅합니다.
중급 로그 정보, 경고오류 메시지.
자세히 디버그 로깅과 함께 정보, 경고오류 메시지를 로깅합니다. 이 로깅 수준을 사용하면 로그 파일의 크기가 급격히 커질 수 있습니다. 이 옵션은 특정 문제를 진단하기 위해 짧은 기간 동안만 사용하는 것이 좋습니다.

DebugView를 사용하여 검색 문제 해결

DebugView는 EnableOpsmgrModuleLogging의 대안으로, 검색 문제를 해결하는 데 사용할 수 있습니다.

  1. DebugView 다운로드 위치: https://go.microsoft.comfwlink/?Linkid=129486.

  2. 검색을 수행하는 관리 서버에서 DebugView를 시작합니다.

  3. UNIX 에이전트 검색을 시작합니다. DebugView 창에 출력이 표시됩니다.

  4. DebugView는 검색 마법사 프로세스의 단계별 읽기를 표시합니다. 보통 검색 문제를 가장 빠르게 해결하는 방법입니다.

Windows 원격 관리를 위해 Operations Manager 로깅을 사용하도록 설정

이 상세 추적 방법을 사용하여 Operations Manager에서 에이전트의 데이터를 수집하는 데 사용하는 WinRM(Windows Remote Management) 쿼리를 확인할 수 있습니다. WinRM 연결에 문제가 있다고 의심되는 경우 이 로그는 문제 해결에 도움이 될 수 있는 자세한 정보를 제공합니다.

  1. UNIX 또는 Linux 에이전트를 모니터링하는 관리 서버에서 명령 프롬프트를 엽니다.

  2. 명령 프롬프트에서 다음 명령을 입력합니다.

    1. cd C:\Program Files\Microsoft System Center\Operations Manager\Tools

    2. StopTracing.cmd

    3. StartTracing.cmd VER

  3. Operations Manager에서 오류가 발생한 문제를 재현합니다.

  4. 명령 프롬프트에서 다음 명령을 입력합니다.

    1. StopTracing.cmd

    2. FormatTracing.cmd

  5. TracingGuidsNative.log 파일에서 WS-Man을 검색합니다.

참고

WinRM은 WS-Man(WS-Management)이라고도 합니다.

참고

FormatTracing 명령은 C:\Windows\Logs\OpsMgrTrace 디렉터리를 표시하는 Windows 탐색기 창을 엽니다. TracingGuidsNative.log 파일이 해당 디렉터리에 있습니다.

UNIX 및 Linux 로그 파일 관리

UNIX 및 Linux용 Operations Manager 에이전트는 에이전트 로그 파일의 크기를 제한하지 않습니다. 로그 파일의 최대 크기를 제어하려면 로그 파일을 관리하는 프로세스를 구현합니다. 예를 들어 표준 유틸리티 logrotate은 대부분의 UNIX 및 Linux 운영 체제에서 사용할 수 있습니다. Logrotate 유틸리티는 UNIX 또는 Linux용 Operations Manager 에이전트에서 사용되는 로그 파일을 제어하도록 구성할 수 있습니다. 에이전트의 로그 파일을 회전 또는 수정한 후에는 로깅을 다시 시작하기 위해 로그가 회전되었음을 에이전트에 신호로 알려야 합니다. 다음 구문을 사용하여 scxadmin 명령을 –log-rotate 매개 변수와 함께 사용할 수 있습니다.

scxadmin -log-rotate all

Logrotate 구성 파일 예제

다음 예제에서는 scx.log 파일을 회전하고 Linux의 logrotate 유틸리티를 사용하여 omiserver.log 구성 파일을 보여 줍니다. 일반적으로 logrotate는 예약된 작업으로 실행되고(crond 사용) /etc/logrotate.d에 있는 구성 파일에 작동합니다. 이 구성 파일을 테스트하고 사용하려면 환경에 적합하게 구성을 수정하고 /etc/logrotate.d에 파일을 연결하거나 저장합니다.

#opsmgr.lr  

#Rotate scx.log  
#Weekly rotation, retain four weeks of compressed logs  
#Invoke scxadmin -log-rotate to resume logging after rotation  

/var/opt/microsoft/scx/log/scx.log {  
rotate 4  
weekly  
compress  
missingok  
notifempty  
postrotate  

/usr/sbin/scxadmin -log-rotate all  
endscript  
}

#Rotate scx.log for the monitoring user account named: monuser  
#Weekly rotation, retain four weeks of compressed logs  
#Invoke scxadmin -log-rotate to resume logging after rotation  

/var/opt/microsoft/scx/log/monuser/scx.log {  
rotate 4  
weekly  
compress  
missingok  
notifempty  
postrotate  

/usr/sbin/scxadmin -log-rotate all
endscript  
}  

#Optionally, rotate omiserver.log. This requires that OMI be stopped and started to prevent  
#impact to logging. Monthly rotation, retain two weeks of compressed logs  
#Uncomment these lines if rotation of omiserver.log is needed  

#/var/opt/microsoft/scx/log/omiserver.log{  
#        rotate 2  
#        monthly  
#        compress  
#        missingok  
#        notifempty  
#        prerotate  
#        /usr/sbin/scxadmin -stop  
#        endscript  
#        postrotate  
#        /usr/sbin/scxadmin -start  
#        endscript\
#}  

다음 단계

일반적인 에이전트 배포 이슈 해결에 도움이 되는 추가 지침은 Operations Manager 2012 Troubleshooting: UNIX/Linux Agent Discovery Wiki를 검토하세요.