Zabbix에서 특정 프로세스 상태를 모니터링하는 방법
Zabbix에서 기본적으로 제공하는 proc.num 매크로를 사용하면 프로세스 상태를 커스텀 스크립트 없이 모니터링할 수 있습니다.
proc.num 키 사용법
proc.num[<name>,<user>,<cmdline>,<state>,<exe>]
- name : 프로세스 이름 (예: java)
- user : 프로세스를 실행한 사용자 (옵션)
- cmdline : 프로세스의 명령어 문자열 (옵션, 부분 매칭 가능)
- state : 프로세스 상태 (옵션, run, sleep, zombie 등)
- exe : 실행 파일의 전체 경로 (옵션)
1. 템플릿 생성
설정 → 템플릿 → 템플릿 작성
- 템플릿 이름 : Template Instance Process Monitoring
- 그룹 : Template
- 이름 : Instance 프로세스 모니터링 템플릿
2. 매크로 생성
설정 → 템플릿 → Template Instance Process Monitoring 템플릿 → 매크로
- 매크로
- {$INSTANCE1_CMD}
- {$INSTANCE2_CMD}
- 값
- /app/instance/instance1/demo-0.0.1-SNAPSHOT.jar
- /app/instance/instance2/demo-0.0.1-SNAPSHOT.jar
3. 어플리케이션 생성
설정 → 템플릿 → Template Instance Process Monitoring 템플릿 → 어플리케이션 작성
- 이름 : Instance Processes Monitoring
4. 아이템 생성
proc.num 키를 사용하여 프로세스를 모니터링합니다.
설정 → 템플릿 → Template Instance Process Monitoring 템플릿 → 아이템 → 아이템 작성
Instance1 프로세스 모니터링 아이템
- 이름 : Instance1 프로세스 수
- 종류 : Zabbix agent
- 키 : proc.num[,root,,{$INSTANCE1_CMD}]
- 데이터형 : 수치 (unsigned)
- 갱신 간격 : 60s
- 어플리케이션 : Instance Processes Monitoring
Instance2 프로세스 모니터링 아이템
- 이름 : Instance2 프로세스 수
- 종류 : Zabbix agent
- 키 : proc.num[,root,,{$INSTANCE2_CMD}]
- 데이터형 : 수치 (unsigned)
- 갱신 간격 : 60s
- 어플리케이션 : Instance Processes Monitoring
5. 트리거 생성
프로세스가 실행되지 않을 경우 알림을 발생시킵니다.
설정 → 템플릿 → Template Instance Process Monitoring 템플릿 → 트리거 → 트리거 작성
Instance1 프로세스 중지 트리거
- 이름 : Instance1 프로세스 중지됨
- 심각도 : 중증 장애
- 조건식
{Template Instance Process Monitoring:proc.num[,root,,{$INSTANCE1_CMD}].last()}=0
Instance2 프로세스 중지 트리거
- 이름 : Instance2 프로세스 중지됨
- 심각도 : 중증 장애
- 조건식
{Template Instance Process Monitoring:proc.num[,root,,{$INSTANCE2_CMD}].last()}=0
6. 그래프 생성
두 프로세스의 개수를 시각적으로 표현합니다.
설정 → 템플릿 → Template Instance Process Monitoring 템플릿 → 그래프 → 그래프 작성
- 이름 : Instance Processes Count
7. 템플릿을 호스트에 연결
Template Instance Process Monitoring 추가
8. 모니터링 프로세스
그래프
알림
proc.num 키를 활용하여 Instance1 및 Instance2의 실행 여부를 효과적으로 모니터링할 수 있습니다. 매크로를 사용하여 프로세스 경로를 유연하게 관리하며 템플릿으로 다른 호스트에 쉽게 확장 적용할 수 있습니다.
'리눅스' 카테고리의 다른 글
[draft] Zabbix에서 특정 로그 파일을 모니터링하고 특정 메시지를 감지하는 방법 (0) | 2024.12.18 |
---|---|
[draft] 우분투에서 nvm을 설치하고 이를 사용하여 여러 버전의 nodejs를 관리하는 방법 (0) | 2024.11.27 |
[draft] 우분투 배포판 업그레이드 (0) | 2024.11.26 |
[draft] 우분투에서 NodeSource를 사용하여 nodejs를 설치하고 관리하는 방법 (0) | 2024.11.25 |
[draft] 우분투에서 teleport를 설치하는 방법(3) (0) | 2024.11.24 |