조회 수 6581 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

2016-03-09 21;34;53.PNG


Zabbix는 ps커맨드로 확인해보시면 상당히 많은 프로세스를 굴리면서 돌아갑니다.

보통 일정간격으로 자기 할 일만 처리하기 때문에 이 부분을 생각하지 않으면 어떻게 어떤 순서로 움직이는지 이해하기가 매우 어렵습니다. 

당연한 이야기지만 이런 부분은 매뉴얼도 따로 없는거 같고... 대체로 효율적으로 움직이지만 가끔 들여다보면 너무 독특한 녀석들도 많고... 

결국 복잡해지는 부분은 로그를 읽거나 소스를 읽어봐야 합니다. 


다행히 오픈소스라 어렵지 않게 읽어볼 수 있습니다. 처리가 어려운건 있어도 코멘트는 항상 잘 되어 있습니다.

흔히 볼 수 있는 지옥의 오픈소스들과는 달리 많은 부분에서 관리가 잘되는 편이라고 생각됩니다. 

다만 소스가 버전이 올라가면서 여러 기능을 쑤시다보니 복잡한 분기가 많아져버린 부분은 너무 어렵게 느꺼지는게 문제라면 문제겠죠.


Zabbix는 아래 주소의 svn으로 관리되고 있습니다. 프로세스 부분은 전부 C로 되어 있습니다.


SVN프로젝트 주소 :

svn://svn.zabbix.com/trunk


WebSVN (웹 브라우저로 확인):

https://www.zabbix.org/websvn/wsvn/zabbix.com


솔직히 저는 아직 소스도 덜 읽었고... 애매한 부분이 많아서 그런 부분은 일단 물음표로 ? 적어 둡니다. 

공부하느라 대충 쓰며 시작하는 내용이지만 도움이 되면 좋겠네요.


Zabbix Server

일단 기본적으로 서버 관련 프로세스는 zabbix[process,<type>,<mode>,<state>] 아이템으로 각 프로세스의 사용량이 어떤지 체크가 가능합니다. 운영할시엔 어떻게 될지 모르니 일단은 공식 템플릿으로 제공되는 Template App Zabbix Server는 문제가 생겼을때 추적할 수 있는 중요한 자료가 되니까 기본적으로 붙여놓는게 좋습니다. 


alerter : 메일 송신이나 스크립트를 실행함 - 30초 갱신

configuration syncer : 데이터베이스에 등록된 설정을 서버 메모리에 동기화하는 프로세스. - 1분 갱신

db watchdog : 데이터베이스의 접속 상태를 확인

discoveror : 네트워크 디스커버리. 호스트를 발견하는 네트워크 디스커버리 기능의 처리를 하는 프로세스

icmp pinger : Ping 체크 감시

ipmi poller : IPMI 감시

http poller : 웹 감시 

poller : 주로 일반적인 패시브 체크. poller붙은 다른 전용 감시를 제외한건 다 여기서 함

proxy poller : 프록시(패시브) 데이터를 받음

unreachable poller : 접근이 안되는 상태의 호스트를 감시

java gateway poller : 자바 게이트웨이를 통한 JMX 감시

vmware collector : vmware의 데이터를 모음

trapper : 액티브 체크, 혹은 액티브 타입의 프록시에서 데이터를 수신함 

snmp trapper : SNMP 트랩 감시. 다른 라이브러리의 로그파일을 이용합니다! (트랩 수신은 Zabbix가 하는게 아닙니다.)

history syncer : 수집한 데이터를 데이터베이스에 저장함. 트리거도 여기서 판정함. 발생하는 아이템의 수가 많을수록 여기에 부담이 가해짐

timer : 메인터넌스 설정을 체크해서 1분 간격으로 00초에 갱신함. 그리고 시간 함수가 들어있는 트리거도 30초마다 처리함.

escalator : 이벤트에서 설정된 액션과 알람을 생성함

housekeeper : 오래된 히스토리 데이터를 DB에서 삭제하는 프로세스

self monitoring : Zabbix 프로세스 상태를 확인함. - Zabbix에 필요한 프로세스가 다운당하면 확인해서 다 조지는 역할을 합니다. (정지하는거지 재시동은 아닌듯)

node watcher : 노드라는게 Zabbix에 남아있을때 돌아가던 프로세스. 비효율로 인한 삭제.


(버전마다 다르기도 하니... 아주 믿지는 말아주세요.)


Active는 trapper가 아이템 전송을 받고 -> history syncer가 DB에 저장하면서 -> timer랑 함께 트리거를 판단해 이벤트를 발생 -> 이벤트 발생시 escalator가 액션을 처리하면서 -> alerter로 메일을 날리는 순으로 진행됩니다. 이러한 연계 처리는 각 프로세스 처리 후의 DB 등록 데이터를 기준으로 보기 때문에, 각 프로세스의 갱신 간격에 영향을 받습니다.



Zabbix Proxy (server)


서버에서 alerter, escalator, timer, proxy poller, db watchdog 같은거는 없어지고, 다른 데이터를 뽑는 일과 관련되는 프로세스는 그대로 남아있습니다. 기본적으로 프록시를 구성하는 용도가 데이터만 뽑는 서버를 만드는 것이니 그렇게 이해하시면 됩니다.

추가되는 프로세스는 아래와 같습니다.


data sender : 데이터 송신

heartbeat sender : 하트비트 송신


소스 읽을때 주의하세요. zabbix-server를 copy-paste해서 그냥 글자만 proxy로 바꾸고 모듈만 얹은 듯한 상태라 안쓰는 부분도 많이 서술되어 있습니다. 

기본적으로 구조가 비슷하니 아마도 개발 편의상 그렇게 관리될 겁니다.



Zabbix-Agent


listener : 패시브 모드 처리

active checks : 액티브 모드 사용시 처리

collector : 감시 데이터를 시스템에서 평균을 계산하고 보존하는 수집용 프로세스. 

              (OS나 버전에 따라 처리가 갈라짐. 특히 Windows는 완전 다르다고 보시는게.. )


Active모드(에이전트가 각종 정보를 서버로 전송할 시)를 사용할 시에는 active checks가 제대로 움직이는지 꼭 확인하셔야 됩니다. 

보통은 에이전트의 로그를 확인하면 알 수 있습니다. 참고로 윈도우는 정말 소스부터 완전 다릅니다. 성능 모니터의 아이템도 추가됩니다.





쓰고나서 보니깐 아래 매뉴얼의 내부 아이템에도 서버의 프로세스 내용이 서술되어 있었습니다. 

링크의 zabbix[process,<type>,<mode>,<state>] 에 적힌 내용도 참고하세요.

https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/internal  (영어 현기증 주의)



List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
61 Zabbix Zabbix 아이템의 패시브와 액티브의 이해 JONG 2017.03.22 2157
60 Zabbix Zabbix 3.0에서 3.2로 업데이트하기 JONG 2016.10.03 2927
59 XpressEngine Rhymix에서 설치 화면이 나오지 않을 때 (CentOS7) 1 JONG 2016.03.25 3527
58 Zabbix CentOS7에 Zabbix 3.0.1 설치하기 JONG 2016.03.12 7452
» Zabbix Zabbix의 각 프로세스가 하는 일 file JONG 2016.03.10 6581
56 Web 윈10에서 spartan이 localhost를 씹을때 JONG 2015.06.04 3862
55 Web animate의 속도를 빠르게 해주시는 Velocity.js 소개 1 file JONG 2014.08.27 7713
54 Web jQuery를 이용한 테이블 셀병합 JONG 2013.11.01 18369
53 XpressEngine XE 1.5.4.2 BlogAPI 안되는거 수정하는 코드 2 JONG 2013.10.29 7800
52 Web Youtube 동영상 자동재생으로 퍼담기 & 파라메터 JONG 2013.03.19 11621
51 XpressEngine XE 1.5.4.2 추천 & 비추천 기능을 비회원도 사용가능하게 하기 1 file JONG 2013.03.06 10726
50 Web 문서의 앵커 이동을 Smooth하게 스크롤 해주는 jQuery의 animate함수 사용법 JONG 2012.12.26 18547
49 Web Google Maps API v3에서 기본 infowindow 정보 없애기 (poi) JONG 2012.12.26 11119
48 Web 셀렉트 태그 관련 jQuery코드 정리 1 JONG 2012.11.17 10194
47 Web 화면 최상단으로 움직이는 JS 소스 JONG 2012.10.15 10410
46 XpressEngine XE 모바일에서 유투브 동영상크기 고정하기 3 JONG 2012.09.07 10745
45 Web jQuery와 다른 라이브러리 (prototype 등) 를 함께 쓰는 방법 file JONG 2012.09.02 9712
44 Database MSSQL 스키마 비교 프로그램 Open DBDiff file JONG 2012.08.15 15148
43 XpressEngine Social XE 로그인을 모바일 레이아웃에 추가 file JONG 2012.08.15 9989
42 Web .htaccess 작성을 통한 이미지 펌 방지 file JONG 2012.05.04 13010
Board Pagination Prev 1 2 3 4 Next
/ 4