반응형

 

zabbix windows cannot obtain performance information from collector 에러 해결 방법 (check_counter_path(): cannot make counterpath for "\\":)

자빅스 서버가 어느 순간부터 윈도우 호스트의 일부 리소스 등을 가져오지 못했습니다. 자빅스 대시보드에서 확인할 때 "zabbix windows cannot obtain performance information from collector" 라는 메시지와 윈도우 호스트에서의 zabbix_agentd.log를 확인했을 때 check_counter_path(): cannot make counterpath for "\\": 라는 에러 메시지가 발생하고 있었습니다.

비교적 쉬운 방법으로 해결할 수 있었는데, 방법은 아래와 같습니다.

 

1.  관리자 권한으로 cmd 실행 → lodctr /r 입력

 

2. 다른 cmd 창을 관리자 권한으로 실행 → Zabbix Agent 재실행

 

3. 확인

이후 다시 확인했을 때 정상적으로 수집중인것을 확인할 수 있었습니다.

반응형
반응형
 자빅스 "Zabbix value cache working in low memory mode" 해결 방법

자빅스에서 "Zabbix value cache working in low memory mode" 알람이 발생 한다면 Cache 값을 증설할 필요성이 있습니다. 일반적으로 /etc/zabbix/zabbix_server.conf 에서 ValueCacheSize, CacheSize 두 값을 변경 후 zabbix-server를 재실행 해주어 적용시킨 후 해결할 수 있었습니다.

저의 경우 약 5천여개의 아이템과 3500여개의 트리거가 있는 상황에서 ValueCacheSize, CacheSize 두 값을 512M으로 변경해주었고 매우 넉넉하게 사용중인 내용을 확인할 수 있었습니다. (저같은 경우 규모가 큰 환경이 아니고 리소스도 여유가 많기 때문에 넉넉히 주었습니다.)

 

zabbix forum 어떤 유저의 케이스를 보면 26만여개의 아이템, 20만여개의 트리거가 실행중인 상황에서 100MB로 변경하여 해결했다는 케이스도 있으니, ValueCacheSize와 CacheSize를 서서히 증가 시키며 최적값을 확인하는 방법으로 진행 하시는게 좋을 것 같습니다.

반응형
반응형
자빅스 윈도우 CPU/GPU 온도 모니터링 설정 하기 (zabbix windows cpu/gpu temperature)

자빅스로 윈도우 CPU/GPU 온도 모니터링 설정하는 방법 입니다. 이 방법에는 Python39 + WMI + OpenHardwareMonitor를 같이 사용 됩니다.

※ 해당 모니터링 설정은 자빅스 버전에 영향을 받지 않습니다. 단, 설정 방법 또는 트리거 문법 차이 등이 있을 수 있으니 이 부분은 버전에 맞게 수정하여 사용하시면 됩니다.

 

 

1-1. 사전 작업 (Agent Server)

C드라이브에 zabbix 폴더를 생성하신 후 아래 링크를 참고하여 Python39 + WMI + OpenHardwareMonitor를 설치하고 3-3 코드를 참고하여 C:\zabbix\script\temperature.pyw 으로 저장 해주세요. 

파이썬으로 윈도우 CPU/GPU 온도 가져오기 : https://nirsa.tistory.com/327

※ 백그라운드 실행을 위해 pyw 확장자로 진행 합니다. py 확장자로 할 경우 프롬프트가 매번 깜빡이는 현상이 발생하니 참고 해주세요.

 

 

1-2. 사전 작업 (Agent Server)
※ 자빅스 에이전트 버전은 영향이 없을것으로 보이며 이미 에이전트가 설치된 경우 이 과정은 패스 하셔도 됩니다. 자빅스 호스트 등록까지 작성하면 글이 너무 길어져버리기 때문에 생략 합니다.

에이전트를 설치할 윈도우 서버에서 https://cdn.zabbix.com/zabbix/binaries/stable/5.4/5.4.1/zabbix_agent-5.4.1-windows-amd64-openssl.zip 에 접속하여 에이전트 파일을 다운로드 받습니다.

C:\zabbix 폴더에 압축풀기를 하신 후 C:\zabbix\conf\zabbix_agentd_conf 파일을 열어 아래 부분들만 설정 후 저장 해주세요.

Server=[자빅스 서버IP]
ServerActive=[자빅스 서버IP]
Hostname=[에이전트(윈도우) 서버 호스트명]

 

cmd 관리자 권한으로 실행하시고 아래 명령어를 입력 해주세요.

c:\zabbix\bin\zabbix_agentd.exe --config c:\zabbix\conf\zabbix_agentd.conf --install
c:\zabbix\bin\zabbix_agentd.exe --config c:\zabbix\conf\zabbix_agentd.conf --start

 

 

2. 방화벽 설정 (Agent Server)

윈도우 방화벽을 사용중일 경우 Ctrl+R → control firewall.cpl → 고급 설정 → 인바운드 규칙 → 새 규칙 → 포트 체크 → 특정 로컬 포트에 10050 입력 후 쭉 다음을 클릭해 10050 포트를 오픈 해주세요.

 

 

3. 스케줄러 설정 (Agent Server)

매 분마다 temperature.pyw 파일을 실행시켜 CPU/GPU 온도를 파일로 떨궈주어야 합니다. (파이썬을 사용하실줄 알 경우 따로 코드 작성하여 진행 하셔도 무방 합니다.)

Ctrl+R → taskchd.msc → 좌측 작업 스케줄러 라이브러리 → 좌측 폴더 Microsoft → 좌측 폴더 Windows → 우측 메뉴의 새 폴더 (폴더명 Zabbix로 생성) → 좌측 Zabbix

※ 작업 스케줄러 경로는 다르게 하셔도 무방 합니다.

 

이제 zabbix 폴더를 클릭하고 우측의 작업 만들기를 눌러 주세요.

 

사용자를 system으로 입력 후 이름 확인을 눌러 한번 체크 해주시고 확인을 눌러 저장 합니다.

 

트리거를 생성 합니다. 매 1분마다 실행시키기 위해 아래와 같이 설정을 진행 해주세요.

 

이제 tempertature.pyw 파일을 실행시키기 위한 동작을 설정 합니다. 아래와 같이 작성하되 [YOUR USER NAME] 부분은 사용중인 윈도우 사용자 계정에 맞게 수정 해주어야 합니다.

# 프로그램/스크립트
C:\Users\[YOUR USER NAME]\AppData\Local\Programs\Python\Python39\pythonw.exe

# 인수 추가(옵션)
C:\Zabbix\script\temperature.pyw

 

이제 스케줄러가 동작하기 시작하면 매 1분마다 C:\zabbix 경로에 아래와 같이 CPU/GPU 온도가 들어가 있는 파일을 떨궈줍니다.

 

 

4. 자빅스 아이템 및 트리거 설정

템플릿은 Configuration → Templates → Create template 에서 임의의 이름으로 생성 해주신 후(저의 경우 temperature) 템플릿을 보면 Items가 있는데 이것을 클릭하여 눌러 이동하시고 우측 상단의 Create item 클릭하신 후 아래와 같이 값을 채워 넣어 주세요.

 

마찬가지로 Triggers로 이동 후 Create trigger를 클릭한 후 아래와 같이 채워 줍니다. 아래 트리거 설정은 최근 5개의 값중 90이 넘어가는 값(온도)이 2개를 초과하여 발생할 경우 Disater 등급의 트리거를 발생 시킵니다.

※ /temperature/ 부분은 임의로 생성한 템플릿명에 맞춰 수정 해주세요.
## 최근 5분간 온도가 90~99도를 2번 초과하여 발생할 경우
count(/temperature/log[C:\zabbix\temperature_CPU0.txt,,,,skip],#5,"regexp","9[0-9]")>2

## 최근 3분간 온도가 90~99도를 1번 초과하여 발생할 경우
count(/temperature/log[C:\zabbix\temperature_CPU0.txt,,,,skip],#3,"regexp","9[0-9]")>1

## 최근 3분간 온도가 80~89도를 1번 초과하여 발생할 경우
count(/temperature/log[C:\zabbix\temperature_CPU0.txt,,,,skip],#3,"regexp","8[0-9]")>1

 

 

5. 기타

이후 테스트는 temperature 파일의 내용을 90도 등으로 변경하여 테스트하고 트리거가 발생 하는지 확인 해보시면 됩니다.

또한 하나의 파일에 텍스트가 너무 많이 쌓이는것을 방지하기 위해 logs 폴더를 만든 후 아래 내용을 윈도우 배치 파일로 만들고 스케줄러에 등록하여 특정 기간마다 비우도록 할 수 있습니다. 또는 파이썬 등 다른 방법을 통해 진행할 수 있으니, 편하신것을 선택하여 활용하면 될 것 같습니다.

move C:\zabbix\temperature_CPU0.txt C:\zabbix\logs\temperature_CPU0_%date%.txt
move C:\zabbix\temperature_CPU1.txt C:\zabbix\logs\temperature_CPU1_%date%.txt
move C:\zabbix\temperature_CPU2.txt C:\zabbix\logs\temperature_CPU2_%date%.txt
move C:\zabbix\temperature_CPU3.txt C:\zabbix\logs\temperature_CPU3_%date%.txt
move C:\zabbix\temperature_GPU0.txt C:\zabbix\logs\temperature_GPU0_%date%.txt
move C:\zabbix\temperature_GPU1.txt C:\zabbix\logs\temperature_GPU1_%date%.txt
반응형
반응형
자빅스 5.4 로그 파일 모니터링 트리거 설정 (zabbix 5.4 log file monitoring trigger example)

자빅스 로그 파일 모니터링 트리거 설정 방법 입니다. 아이템 설정의 경우 자빅스 버전 차이가 크게 없기 때문에 아래 링크로 대신 합니다. (아래 링크의 어플리케이션 부분은 생략하셔도 무관 합니다.)

(참고) 자빅스 로그 파일 아이템 설정 : https://nirsa.tistory.com/205?category=868727

(참고) 자빅스 로그 파일 모니터링 트리거 설정 : https://nirsa.tistory.com/210

 

정확하게 몇버전부터 적용된지는 모르겠으나 아래와 같이 5점대 부터 자빅스 트리거 설정의 문법이 변경 되었습니다. 

  • 자빅스 4점대 트리거 문법 예시 : {템플릿명:아이템값.트리거기능("")}
  • 자빅스 5점대 트리거 문법 예시 : 트리거기능(/템플릿명/아이템값,"")

 

자빅스 5.4 트리거 샘플을 보면 아래와 같습니다.

count(/test_template/log[/var/log/test.log,,,,skip],#5,"regexp","1[0-9]")>2
  • 사용한 트리거 기능 : count
  • 템플릿 이름 : test_template
  • 아이템 : log[/var/log/test.log,,,,skip]
  • 트리거 파라메타 : 최근 5개의 값(#5), 정규 표현식을 사용("regexp"), 10~19의 값("1[0-9]")이 2를 초과할 경우 트리거 발생

 

자빅스 5.2 트리거 매뉴얼 : https://www.zabbix.com/documentation/5.2/manual/appendix/triggers/functions

자빅스 5.4 트리거 매뉴얼 : https://www.zabbix.com/documentation/current/manual/appendix/functions

반응형

+ Recent posts