Zabbix 에서 윈도 성능 모니터링 방법
최근 에 windows 성능 에 관 한 책 을 다시 읽 고 있 습 니 다.저 처럼 원래 SCOM 모니터링 을 사용 하 던 게으름뱅이 에 게 Zabbix 에 있 는 windows OS template 의 템 플 릿 은 정말 부족 합 니 다.왜냐하면 예전 에 SCOM 모니터링 백(마이크로소프트 에서 나 온 것 으로 모든 일 을 했 습 니 다.저 는 규칙 과 경고 만 사용 하면 됩 니 다).
기본 적 인 Zabbix 성능 데 이 터 는 Avg Latency 만 있 고 평균 데이터 도 정확 하지 않 습 니 다.디스크 의 Latency 와 IOPS 를 보고 싶 습 니 다.zabbix 에서 windows performance Counter 의 문법 을 보고 약간 움 츠 러 들 었 습 니 다.모두 숫자 로 표 시 된 성능 카운터 의 CounterCategory 와 CounterName 입 니 다.
자체 디스크 와 관련 된 통 계 는 전송 속도 와 평균 지연 만 있다.
Zabbix 에서 Windows 성능 모니터링
다른 성능 계수 기 를 감시 하려 면 이름 이 무엇 이 며 역할 은 무엇 입 니까?빠 른 검색 이 가능 한 목록 이 있 습 니까?
칼 을 써 서 해결 하 다
다행히 powershell 은 쓰기 가 비교적 편 하고 다음 함 수 를 써 서 zabbix 의 성능 카운터 문법 을 통합 시 켰 습 니 다.
function Get-PerfCounterDesc{
[cmdletbinding()]
param(
[switch]$show
)
$Categories = [System.Diagnostics.PerformanceCounterCategory]::GetCategories()
$SingleInstanceCategories = $Categories | Where-Object {$_.CategoryType -eq "SingleInstance"}
$MultiInstanceCategories = $Categories| Where-Object {$_.CategoryType -eq "MultiInstance"}
$SingleInstanceCounters = $SingleInstanceCategories | ForEach-Object {
(new-object System.Diagnostics.PerformanceCounterCategory($_.CategoryName)).GetCounters()
}
$MultiInstanceCounters = $MultiInstanceCategories | ForEach-Object {
$category=new-object System.Diagnostics.PerformanceCounterCategory($_.CategoryName)
if($category.InstanceExists('_Total')){
$category.GetCounters('_Total')
}elseif($category.InstanceExists('Total')){
$category.GetCounters('Total')
}else{
$instanceNames=$category.GetInstanceNames()
if($instanceNames.count -gt 0){
$category.GetCounters($instanceNames[0])
}
}
}
$AllCounters = $MultiInstanceCounters + $SingleInstanceCounters
$key="HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009"
$counters=Get-ItemPropertyValue -Path $key -Name "counter"
$Dict=@{}
for ($i=0;$i -lt $counters.count;$i=$i+2){
if($counters[$i+1] -and -not $Dict.ContainsKey($counters[$i+1])){
$Dict.add($counters[$i+1],$counters[$i])
}
}
Write-Debug $dict.keys.count
$result=$AllCounters | Sort-Object Categoryname,Countername|
Select-Object CategoryName,
Countername,
@{n="zabbixPerfCounter";e={'perf_counter["\{0}({{#ReplaceThis}})\{1}"]' -f $dict[$_.CategoryName],$dict[$_.Countername]}},
@{n="categoryNum";e={$Dict[$_.CategoryName]}},
@{n="CounterNum";e={$Dict[$_.Countername]}},
CategoryHelp,
CounterHelp
if($show){
$result|Out-GridView
}else{
$result
}
}
어떻게 쓰 지?위 함 수 를 개인의 powershell 설정 파일,즉 powershell 콘 솔notepad $profile
에 직접 추가 하고 내용 을 붙 여 저장 한 다음set-executionpolicy remotesigned
을 설정 하여 서명 하지 않 은 스 크 립 트 를 실행 할 수 있 도록 합 니 다.새로 powershell 을 만 들 고 Get-perf Counter Desc-show 를 직접 두 드 리 면 결 과 를 여러 가지 걸 러 낼 수 있 습 니 다.그 중에서 zabbix PerfCounter 열 은 생 성 된 zabbix 에서 사용 하 는 key 입 니 다.그 중의{\#replace This}은 계수기 의 인 스 턴 스 이름 으로 바 꾸 십시오.예 를 들 면total.
그리고 저 는 zabbix 템 플 릿 에 디스크 IOPS 와 Latency 를 표시 하기 위해 아래 계산 기 를 추 가 했 습 니 다.
item prototype
items
그 라 파 나 변경 사항 이 필요 합 니 다.
총결산
위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 Zabbix 의 윈도 성능 모니터링 방법 입 니 다.여러분 께 도움 이 되 셨 으 면 합 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
zabbix3.x.x 업그레이드 자습서1: 실행 중인zabbix 서비스를 정지하고 데이터베이스에 새 데이터가 기록되지 않았는지 확인합니다. 2: 원래zabbix의 데이터베이스 데이터와 관련 파일을 백업한다. 3: 홈페이지 다운로드zabbix 설치팩zab...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.