다음을 통해 공유


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

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. 검색 마법사에 지정된 자격 증명에 검색에 필요한 권한이 있는지 확인합니다. 자세한 내용은 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 관리 서버에서 확인 중인 이름과 일치하는지 확인합니다.

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

  • 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 매개 변수와 함께 별칭 또는 파이프라인 연산자를 사용하면 명령이 실패합니다. 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>

로깅 및 디버깅

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

참고 항목

Operations Manager 2019 UR3을 사용하면 에이전트를 다시 시작하지 않고 로그 수준 설정을 변경할 수 있습니다. 자세히 알아보기.

참고 항목

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

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

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

참고 항목

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

참고 항목

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

  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 및 인증서 작업을 임시 디렉터리에 로깅하기 시작합니다. SSH 모듈을 호출하는 스크립트는 Scriptname.vbs>.log 로그<합니다. 다른 모듈은 자체 로그를 포함합니다.

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

UNIX 에이전트에서 로깅 사용

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

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

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

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

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 문제 해결: UNIX/Linux 에이전트 검색 Wiki를 검토하세요.