zabbix process 모니터링

mhlee·2021년 4월 7일
0

zabbix로 process 모니터링 하기

0. 배경

모니터링의 중요성을 강조할 필요가 있을까?
하지만, 실제 자신의 시스템을 잘(?) 모니터링 하는 조직은 많지 않은것 같다.
클라우드 환경이야 워낙 잘하는 선수들이 많아 알아서 잘하고, devops, noops등 이미 북치고 장구치는 문화가 정착되어 있다.
하지만, 물리 환경은 어떠한가?
이 부분은 할많하않

1. 목표

모니터링의 목표는 아래와 같다.

1. 장애를 고객보다 먼지 감지하자

고객이 나에게 알리면 장애고, 내가 알리면 안내!!

2. 장애의 원인을 찾자

일은 이미 벌어졌다.
왜 그일이 벌어졌는지, 추측보다는 정량적인 근거에 기반한 추론을 하자.

3. 예측

한두번 얻어터지면 감이 생긴다.
이제 펀치가 날라 올만한 징후/패턴을 등록하고 모니터링 하자

2. 모니터링 대상

모니터링 하고자 하는 대상은 sms agent 이다.
명령행으로 실행하고, 데몬방식으로 구동된다.

3. zabbix item 등록

zabbix > Configuration > Hosts 항목으로 이동
해당 데몬이 기동되는 서버를 선택.

화면 상단 Items 항목 클릭 > 우측 상단 "Create Item" 버튼 클릭

Name 항목에 item의 이름을 입력
Key부분에 모니터링 할 항목을 select 버튼을 통해 선택한다.
여기서는 proc.num으로 선택한다. 참고로 proc.num은 프로세스의 갯수를 검사한다.
항목을 보면, proc.num[,,,,]이 있다.
이중 user와 cmdline을 이용해서 모니터링 한다.
예를들어, 프로세스 user가 appuser이고 cmdline에 kct_sms_agent가 들어간 프로세스를 모니터링 한다고 가정하면, 아래와 같다.

proc.num[,appuser,,kct_sms_agent,]

참고 : 버전문제인지 마지막 zone 항목이 있으면 에러가 발생한다. (5.0 사용중)
그래서 필자는 마지막 쉼표를 제거 했음.

4. item test

잘 등록이 되었는지 테스트해보자.
등록한 item을 찾아 내용을 조회하면, 하단에 "Test"버튼이 있다.
해당 버튼을 클릭하면, 작은 팝업창으 뜬다.
"Get value and test"를 클릭하여, 테스트해보자.
value 항목에 프로세스 갯수가 출력된다.
당연히, 실제 서버로 접속해서 프로세스를 종료/기동하며 정상적으로 값을 체크하는지 테스트해야 한다.

5. trigger 등록

이제 화면 상단의 Items 옆에 있는 "Triggers"를 클릭하고, 우측 상단의 "Create trigger" 버튼을 클릭한다.

Name 항목에 trigger 이름을 입력.
Severity 항목 선택. 개인적으로 모니터링 대상은 High를 선택하는게 맞는것 같다.
Expression 항목의 Add 버튼 클릭 > Item > Select 버튼을 클릭하여, 방금 등록한 kct_sms_agent를 선택한다.
이 프로세는 항상 1개만 구동 되어야 하기때문에 Result 항목을 1과 같지 않을때라고 선택했다.

정상적으로 등록되었고, 트리거가 동작한다면(프로세스가 다운되면), 아래처럼 대쉬보드에서 알람을 볼수 있다.

profile
삽질하는 개발자

0개의 댓글