달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
파라미터로 텍스트 파일의 전체 경로
Property[@Name='Message'] 를 이용해 문자열 검색

Alert Description
$Data/Context/Property[@Name='Message']$

-----------------------------------------------------------------------------------------------------

Dim oAPI, oBag, strMessage
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

Set oArgs = WScript.Arguments
ParamCount = oArgs.Count

If ParamCount < 1 Then
Call oAPI.LogScriptEvent("StringCheck.vbs", 5009, 0, "Script aborted. Not enough parameters provided.")
WScript.Quit -1
End If

strMessage=getlastline(oArgs(0))

Call oBag.AddValue("Message", strMessage)
Call oAPI.Return(oBag)

function getlastline (ascfile)
set fs = createobject("scripting.filesystemobject")
set file = fs.GetFile(ascfile)
set stream = file.OpenAsTextStream
stream.skip file.size
line = stream.line
stream.close 
set stream = file.OpenAsTextStream
for i=1 to line-2
stream.skipline
next
getlastline = stream.readline
if not stream.atendofstream then
getlastline = stream.readline
end if
end function
:
Posted by 커널64

[증상]
기본 서비스 모니터를 이용해 서비스 모니터를 생성하고 '서비스 시작 유형이 자동인 경우에만 경고합니다.'를 False로 설정해도 경고가 뜨지 않는다.

[처리 방법]
해당 관리팩을 Export해 메모장으로 연 후 <CheckStartupType>true</CheckStartupType>을 추가한다.

<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<ServiceName>서비스 이름</ServiceName>
<CheckStartupType>true</CheckStartupType>
</Configuration>
</UnitMonitor>

:
Posted by 커널64

Rule > New > Probe based > Script(performance)

Object, Counter, Instance 적당한 값
Value: $Data/Property[@Name='% Used Memory']$

--------------------------------------------------------------------------------

UsedMemoryPercent.vbs

Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

dim hostName,strComputer
dim tMemoryKB,FreeMemoryKB,MemoryUsage

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
tMemoryKB = 0
Set colItems = objWMIService.ExecQuery("select * from Win32_OperatingSystem")

For Each objItem in colItems
tMemoryKB = objItem.TotalVisibleMemorySize
next

Set colItems = objWMIService.ExecQuery("select FreePhysicalMemory from Win32_OperatingSystem")
For Each objItem in colItems
FreeMemoryKB= objItem.FreePhysicalMemory
next

MemoryUsage = ((tMemoryKB - FreeMemoryKB)/tMemoryKB) * 100

Call oBag.AddValue("% Used Memory",MemoryUsage)
Call oAPI.Return(oBag)

:
Posted by 커널64

Monitor -> New -> Scripting -> Timed Script Two State Monitor

Parameters
[ProcessName.exe] [WorkingSetLimit(MB)]

State Expression
For Unhealthy Expression Property[@Name='State'] Equals Good
For Healthy Expresion Property[@Name='State'] Equals Bad

Alert Description
$Data/Context/Property[@Name='Message']$

----------------------------------------------------------------------------------------------

 'Parameter [ProcessName.exe] [WorkingSetLimit(MB)]

    Dim oAPI, oBag
    Set oAPI = CreateObject("MOM.ScriptAPI")
    Set oBag = oAPI.CreatePropertyBag()

    Set oArgs  = WScript.Arguments
    strTaskName = oArgs(0)
    strWorkingSet = oArgs(1)

    Set oArgs = nothing
    Set shellobj = WScript.CreateObject("WScript.Shell")
    State = "Good"

    Const wbemFlagReturnImmediately = &h10
    Const wbemFlagForwardOnly = &h20

    strComputer = "."

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process where name ='" & strTaskName & "'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

    For Each objItem In colItems
    if clng(objItem.WorkingSetSize/(1024*1024)) > clng(strWorkingSet) then


    strMsg = objItem.Name & "(이)가 WorkingSet 임계치(" & strWorkingSet & "MB)를 초과합니다. " & objItem.Name & "의 현재 WorkingSet은 " & clng(objItem.WorkingSetSize/(1024*1024)) & "MB 입니다."
    State = "Bad"
    end if
    Next

    Set shellobj = nothing

    Call oBag.AddValue("State",State)
    Call oBag.AddValue("Message",strMsg)
    Call oAPI.Return(oBag)

:
Posted by 커널64

[증상]
Windows 2000을 SCVMM으로 P2V 진행 후 SCVMM 관리 콘솔에서 확인 시 CPU 사용량이 매우 높고(90% 가량) 시스템의 성능이 잘 나오지 않는 경우

[원인]
원본 머신이 다중 프로세서를 가지는 Windows 2000 이었던 경우 시스템 종류가  'ACPI 다중 프로세서 PC'인데 P2V 수행 후 가상화된 상황에서는 CPU를 하나만 지원하게 되나 여전히 시스템 종류가 'ACPI 다중 프로세서 PC'로 되어 있기 때문이다.

[해결]
시스템 종류를 'ACPI 단일 프로세서 PC'로 변경한다.

:
Posted by 커널64

Task Scheduler를 이용해 VMWare와 비슷한 기능을 구현해보세~!
1. VM 종료
2. 메모리 크기/CPU 개수 수정
   (밤 시간 대에 특정 작업에 리소스를 더 준다던지...)
3. VM 이동
   (리소스 적은 서버로 몰고...)
4. VM 가동

머... 중간 중간에 제대로 넘어 갔는지... 혹시 넘어가다 실패했는지..에 대해 체크하는 부분이
더 필요하겠지만 괜찮은(?) 시도인 듯...

Powershell 실행
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft System Center Virtual Machine Manager 2008\bin\cli.psc1" -NoExit -Command <Script File Full Path>

###Script###
$VMMServer = Get-VMMServer -ComputerName <VMM Server Name>
$VMHost = Get-VMHost -ComputerName <Destination Hyper-V Host Name>
$VM = Get-VM -Name <VM Name>
Shutdown-VM -VM $VM
Set-VM -VM $VM -MemoryMB <Memory Size(MB)>
Move-VM -VMHost $VMHost -VM $VM
Start-VM -VM $VM
EXIT

:
Posted by 커널64

Service Level Tracking reporting
서비스 수준 모니터링을 위한 보고서 추가. 보고서를 생성하기 전에 먼저 모니터링할 개체를 생성하여야 한다.
서비스 수준을 모니터링할 개체를 생성하면 이후에 수집되는 데이터를 기준으로 보고서가 생성되는 것이 아니라 기존에 수집된 상태와 성능 정보를 이용해 보고서를 생성하게 된다.

관리팩에 보고서 저장
즐겨찾기에만 추가가 가능했던 보고서를 이제 관리팩에 저장할 수 있게 된다. 이 기능을 통해 사용자 또는 관리자가 생성한 보고서를 모든 사용자가 공유할 수 있게 된다. 관리팩에 저장된 보고서는 SSRS를 통해 자동으로 보고 서버에 배포되며 삭제 기능도 포함한다.

MP Authoring Console에 보고서 제작 기능 포함
Authoring Console에 보고서 제작을 위한 Reporting 탭이 추가되었으며 보고서 제작을 위한 모든 기능을 제공한다.

보고서의 개체 선택의 클래스 필터링 기능 추가
Add Objects와 Add Group 버튼 옆의 Options 버튼을 클릭해 특정 클래스만을 검색하도록 할 수 있는 기능이 추가되었다.

성능 규칙에서 동일한 이름을 가지는 여러 규칙을 구분하기 위한 향상된 검색 기능 추가
성능 수집 규칙 뿐만아니라 성능 카운터로도 검색이 가능해졌다.

Most Common Events 보고서에 다중으로 선택할 수 있는 파라미터 기능 추가 (Event Log, Source, Type)

:
Posted by 커널64
2009. 6. 13. 09:49

SCVMM 2008 R2의 새로운 기능 정리 Virtualization2009. 6. 13. 09:49

SCVMM 2008 R2의 새로운 기능

Storage Migration
Windows Server 2008 R2로 업그레이드를 수행하면서 기존 LUN 당 한 개의 VM으로 매핑되어 있는 것을 CSV(clustered shared volume) LUN으로 마이그레이션하는 과정이 필수적으로 필요하게 되는데 SCVMM 2008 R2에서는 Quick Storage Migration이라는 기능을 제공한다.
동일 호스트 또는 다른 호스트의 저장소로 최소의 다운타임으로 이동을 가능하게 한다. VM의 사용 정도에 따라 달라지겠지만 일반적으로 2분 이내의 다운타임을 가진다.
또한, VMWare의 동일 호스트 내에서 다운타임 없이 저장소를 이동하는 Storage vMotion 기능을 지원한다.

Queuing of Live Migration
Windows Server 2008 R2의 새로운 기능인 Live Migration을 지원한다. Live Migration은 원본 및 대상 호스트에서 동시에 한 작업만 수행할 수 있는 제한을 가진다.
SCVMM 2008 R2는 Live Migration이 진행 중일 때 또 다른 Live Migration을 수행하면 이에 대한 작업 실패 상태를 감지하고 Queue에 넣고 자동으로 주기적으로 재시작하게 된다. 이 기능을 통해 관리자는 하나의 Live Migration이 끝나기를 기다렸다가 다음 Live Migration을 수행할 필요가 없어지며 SCVMM 2008 R2가 자동으로 Queuing을 해주게 된다.

Rapid Provisioning
SCVMM 2008에서 새로운 가상 머신을 배포하기 위해서는 라이브러리로부터 VHD 파일을 대상 호스트로 BITS를 이용해 네트워크로 복사하는 방법 밖에 없었다. 배포할 VHD 파일의 크기에 따라 수 분에서 수 시간이 소요되기도 한다.
SCVMM 2008 R2에서는 VHD가 보관된 LUN을 호스트로 복제하는 SAN 장비를 보유하고 있는 고객의 경우 이러한 기능을 이용해 더 빠르게 가상 머신을 배포할 수 있게한다. 하지만 여전히 가상 머신에 대한 템플릿과 ICs 설치 과정을 필요로 하므로 네트워크를 이용한 파일 복사를 제외한 나머지 작업만을 수행하는 방법이 필요하게 된다.  이는 -UseLocalVirtualHardDisk 스위치를 통해 가능하다. 예제 스크립트 (GUI는 제공하지 않는다.)
Get-VMMServer -ComputerName "VMMServer1.Contoso.com"
$JobGroupID = [Guid]::NewGuid().ToString()
$Template = Get-Template | where {$_.Name -eq MyTemplate"}
$VMHost = Get-VMHost | where {$_.Name -eq "VMHost.Contoso.com"}
Move-VirtualHardDisk -IDE -BUS 0 -LUN 0 -Path "L:\OS.VHD" -JobGroup $JobGroupID
New-VM -Name "VM06" -Path "L:\" -Template $Template -VMHost $VMHost -JobGroup -$JobGroupID -UseLocalVirtualHardDisks

Host Compatibility Check
가상 머신의 마이그레이션은 CPU 기능과 같은 호스트 하드웨어가 호환되어야 가능하다.
SCVMM 2008 R2에서는 Hyper-V and VMWare compat check API를 이용해 심도있는 호환성 체크가 가능하다. 이를 이용해 관리자는 마이그레이션을 직접 수행해 가상 머신의 마이그레이션 가능 여부를 판단하지 않아도 된다.

3rd Party CFS에 대한 지원
다중 호스트가 공유 디스크에 대해 동시에 접근할 수 있도록 하는 CSV와 비슷한 기능을 하는 CFS(Clustered File System)를 만드는 회사들이 있다. SCVMM 2008 R2에서는 이러한 파일 시스템에 대해 CFS 디스크임을 감지하고 LUN 당 다수의 가상 머신을 배포할 수 있도록 지원한다. 이 기능을 통해 이미 이러한 파일 시스템을 보유하고 있는 고객이 새로운 기능에 대한 이점을 활용할 수 있도록 한다.

Veritas Volume Manager에 대한 지원
SCVMM 2008 R2에서는 Veritas Volume Manager 디스크를 클러스터 디스크 리소스로 사용할 수 있도록 지원한다.

:
Posted by 커널64
SCCM 스키마 확장

1. Schema Admins 그룹 구성원 계정으로 로그인
2. \SMSSETUP\BIN\I386\extadsch.exe 실행
3. 시스템 드라이브의 루트 디렉토리의 extadsch.log 확인
4. ADSIEDIT.MSC 실행
5. Domain [Domain FQDN] -> <DN 확장> -> CN=System -> 우클릭 -> New
5. 개체 만들기 -> Container 클래스 선택 -> 다음 -> 값에 System Management 입력 -> 마침
6. dsa.msc 실행 -> 보기 -> '고급 기능' 체크
7. System 컨테이너 확장 -> System Management -> 우클릭 -> 속성
8. 보안 탭으로 이동 -> 추가 -> Site Server의 Computer Account 선택 -> 모든 권한 부여
9. 고급 -> 고급 보안 설정 창에서 Site Server Computer Account 선택 -> 편집
10. 적용 대상 -> 이 개체 및 모든 하위 개체 선택 -> 적용
11. SCCM 관리 콘솔에서 AD 개시 설정
:
Posted by 커널64

cd %Windir%\system32\inetsrv

AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /+[users='*',path='*',access='Read'] /commit:apphost
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowAnonymousPropfind:true /commit:apphost
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowCustomProperties:false /commit:apphost
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowInfinitePropfindDepth:true /commit:apphost
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:true /commit:apphost
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:true /commit:apphost

:
Posted by 커널64